Skip to content

proyecto26/notebooklm-ai-plugin

v1.1.0MIT

Generate NotebookLM artifacts (slides, audio, video, mind maps, quizzes, flashcards, infographics, reports, data tables) from your notebooks. Use when the user wants to create any NotebookLM Studio output from their uploaded sources.

NotebookLM AI Plugin

License: MIT Claude Code Artifacts TypeScript

Bring the full Google NotebookLM experience to Claude Code, OpenClaw and any other AI agents that execute shell commands. Chat with your notebook AI, generate 9 types of artifacts, manage sources (URLs, YouTube, files), run fast/deep web research, and manage notes — just ask Claude.


Quick Start

Installation

Standards

This plugin follows the Agent Plugins v1.0.0 packaging standard (root plugin.json, validated against the official schema) and its skill follows the Agent Skills spec (skills/notebooklm/SKILL.md). It also ships the Claude Code manifests (.claude-plugin/plugin.json, .claude-plugin/marketplace.json) so it installs natively in Claude Code. The two manifest sets coexist — portable clients read the root plugin.json, Claude Code reads .claude-plugin/.

Option 1: CLI Install (Recommended)

Use npx skills to install skills directly:

# Install the skill
npx skills add proyecto26/notebooklm-ai-plugin

# List available skills
npx skills add proyecto26/notebooklm-ai-plugin --list

This automatically installs to your .claude/skills/ directory.

Option 2: Claude Code Plugin

Install via Claude Code's built-in plugin system:

# Add the marketplace
/plugin marketplace add proyecto26/notebooklm-ai-plugin

# Install the plugin
/plugin install notebooklm-ai-plugin

Option 3: Clone and Copy

Clone the repo and copy the skills folder:

git clone https://github.com/proyecto26/notebooklm-ai-plugin.git
cp -r notebooklm-ai-plugin/skills/* .claude/skills/

Option 4: Git Submodule

Add as a submodule for easy updates:

git submodule add https://github.com/proyecto26/notebooklm-ai-plugin.git .claude/notebooklm-ai-plugin

Then reference skills from .claude/notebooklm-ai-plugin/skills/.

Option 5: Fork and Customize

  1. Fork this repository
  2. Customize the skill for your specific needs
  3. Clone your fork into your projects

Authentication

The first time you use the skill, it opens Chrome for Google login. Cookies are cached for subsequent runs. Just tell Claude:

"Log me into NotebookLM"

Generate Your First Artifact

Once authenticated, just describe what you want:

"Add this notebook https://notebook.google.com/notebook/YOUR_ID and generate a study guide from it"

That's it — the skill handles everything: authentication, notebook management, artifact creation, polling, and download.


Features

Chat with Notebook AI

Ask questions and get source-grounded answers with citations — the same AI chat experience from NotebookLM's web UI, now in your terminal.

9 Artifact Types

TypeOutputDescription
Slide DeckPDF / PPTXPresentation slides summarizing your notebook sources
Audio OverviewM4APodcast-style conversation (deep dive, brief, critique, debate)
Video OverviewMP4Animated explainer (classic, whiteboard, kawaii, anime, watercolor)
Mind MapHTMLInteractive concept map of key topics and relationships
FlashcardsHTML / JSONStudy cards generated from source material
QuizHTML / JSONMultiple-choice quiz with answer key and explanations
InfographicPNGVisual summary in landscape, portrait, or square orientation
ReportMarkdownWritten report (briefing doc, study guide, blog post)
Data TableCSV / SheetsStructured data extracted from your sources

Source Management

Add and manage notebook sources directly from Claude Code — no need to switch to the browser.

  • URLs / Websites — Add any web page as a source
  • YouTube — Add video transcripts as sources
  • File Upload — PDF, TXT, MD, DOCX, CSV, EPUB, images, audio, video
  • Pasted Text — Add text content with a custom title
  • List / Delete — View and manage existing sources

Fast & Deep Research

Run web research that feeds directly into your notebook:

  • Fast Research — Quick web search, finds relevant sources in seconds
  • Deep Research — Comprehensive analysis with a full markdown report
  • Auto-Import — Automatically add discovered sources to your notebook

Notes Management

Create, update, and delete notes within your notebooks programmatically.


Usage Examples

Just describe what you need to Claude — the skill triggers automatically:

"What are the main findings in my NotebookLM notebook?"

Chats with the notebook AI and returns source-grounded answers with citations.

"Add this YouTube video to my notebook: https://youtube.com/watch?v=..."

Adds the video transcript as a source to your active notebook.

"Upload my research paper paper.pdf to the notebook and generate a study guide"

Uploads the file, then generates a markdown report in study guide format.

"Run a deep research on 'AI agent frameworks 2026' and import the results"

Starts deep web research, waits for completion, and imports sources into the notebook.

"Generate a slide deck from my NotebookLM notebook about machine learning"

Creates a PDF/PPTX presentation from your notebook sources.

"Create a deep dive audio overview of my research papers"

Generates a long-form podcast-style M4A audio discussion.

"Make a portrait infographic highlighting the key findings"

Produces a PNG infographic in portrait orientation.

"Create a note called 'Key Takeaways' with a summary of the main points"

Creates a new note in the notebook with the specified content.


Configuration

Environment Variables

VariableDescription
NOTEBOOKLM_DATA_DIROverride data directory
NOTEBOOKLM_COOKIE_PATHCustom cookie file path
NOTEBOOKLM_CHROME_PROFILE_DIRChrome profile directory
NOTEBOOKLM_CHROME_PATHChrome executable path
NOTEBOOKLM_OUTPUT_DIRDefault output directory

Rate Limits

NotebookLM free tier limits:

ResourceLimit
Audio / Video overviews3 per day
Reports / Flashcards / Quizzes10 per day
Daily chats50
Total notebooks100
Sources per notebook50

Project Structure

notebooklm-ai-plugin/
├── .claude-plugin/
│   ├── plugin.json                  # Plugin manifest
│   └── marketplace.json             # Marketplace metadata
├── skills/
│   └── notebooklm/
│       ├── SKILL.md                 # Skill definition (triggers + docs)
│       └── scripts/
│           ├── main.ts              # CLI entry point (all commands)
│           ├── auth.ts              # Chrome CDP authentication
│           ├── chat.ts              # Streaming chat with notebook AI
│           ├── rpc-client.ts        # batchexecute protocol client
│           ├── rpc-types.ts         # RPC method IDs + enum codes
│           ├── artifact-generator.ts # Create / poll / download artifacts
│           ├── source-manager.ts    # Add / list / delete sources
│           ├── research-manager.ts  # Fast / deep web research
│           ├── notes-manager.ts     # Notes CRUD
│           ├── notebook-manager.ts  # Notebook library CRUD
│           ├── cookie-store.ts      # Cookie persistence
│           ├── paths.ts             # Platform-aware storage
│           ├── types.ts             # Shared TypeScript types
│           └── get-cookie.ts        # Quick login helper
├── LICENSE
└── README.md

For full CLI commands and script usage details, see skills/notebooklm/SKILL.md.


Architecture

graph TB
    subgraph "Claude Code"
        A["User Prompt"] --> B["NotebookLM Skill"]
    end

    subgraph "Authentication"
        B --> C["Chrome CDP"]
        C --> D["Cookie Extraction"]
        D --> E["Cookie Store"]
    end

    subgraph "NotebookLM API"
        E --> F["batchexecute RPC"]
        E --> F2["Streaming Chat"]
        F --> G["Artifacts"]
        F --> H["Sources"]
        F --> I["Research"]
        F --> I2["Notes"]
        F --> I3["Notebooks"]
    end

    subgraph "Capabilities"
        F2 --> S["AI Chat with Citations"]
        G --> J["Slides / Audio / Video"]
        G --> K["Quiz / Flashcards"]
        G --> L["Infographic / Report"]
        H --> M["URL / YouTube / File / Text"]
        I --> N["Fast & Deep Web Research"]
    end

    style A fill:#7c3aed,color:#fff
    style F fill:#1a73e8,color:#fff
    style F2 fill:#1a73e8,color:#fff
    style S fill:#34a853,color:#fff
    style J fill:#34a853,color:#fff
    style K fill:#34a853,color:#fff
    style L fill:#34a853,color:#fff
    style M fill:#ea4335,color:#fff
    style N fill:#fbbc04,color:#000

Hybrid approach: Chrome DevTools Protocol (CDP) handles Google authentication once, then all operations use direct batchexecute RPC calls — no browser overhead for artifact generation.

How It Works

sequenceDiagram
    participant U as User
    participant C as Claude Code
    participant P as Plugin (Bun/TS)
    participant Ch as Chrome (CDP)
    participant N as NotebookLM API

    U->>C: "Generate a slide deck from my notebook"
    C->>P: Invoke notebooklm skill

    Note over P,Ch: First-time auth only
    P->>Ch: Launch Chrome via CDP
    Ch-->>P: Google session cookies
    P->>P: Cache cookies to disk

    P->>N: LIST_NOTEBOOKS (batchexecute RPC)
    N-->>P: Notebook sources
    P->>N: CREATE_ARTIFACT (type=slide_deck)
    N-->>P: Artifact ID

    loop Poll every 5s
        P->>N: LIST_ARTIFACTS
        N-->>P: Status: processing / completed
    end

    P->>N: Download artifact
    N-->>P: PDF/PNG/M4A/MP4 file
    P-->>C: File saved to disk
    C-->>U: "Slide deck saved to slides.pdf"

batchexecute RPC Protocol

The plugin communicates with NotebookLM via Google's internal batchexecute protocol — the same system used across Google web apps. Each operation maps to an obfuscated RPC method ID:

OperationRPC ID
List NotebookswXbhsf
Create ArtifactR7cb6c
List ArtifactsgArtLc
Generate Mind MapyyryJe
Get Interactive HTMLv9rmvd

All 9 artifact types (except Mind Map) use the unified CREATE_ARTIFACT RPC with different type codes. The plugin handles response parsing, error detection, and the anti-XSSI response format automatically.

Cookie Management

Cookies are stored in a platform-aware location:

PlatformPath
Windows%APPDATA%/notebooklm-ai/cookies.json
macOS~/Library/Application Support/notebooklm-ai/cookies.json
Linux~/.local/share/notebooklm-ai/cookies.json

The plugin captures all Google domain cookies (30+) via Chrome DevTools Protocol — this is required because Google's passive login check validates cookies beyond the standard auth set.


Known Limitations

  • Audio / Video / Slides download: These streaming media types are created successfully on NotebookLM's servers, but auto-download requires browser-level cookie handling. The plugin returns the artifact URL for manual browser download. Static media (infographics, reports) download automatically.
  • Data Table: Parameter structure for type 9 artifacts is still being reverse-engineered.
  • Host: The skill targets notebook.google.com and accepts both notebook.google.com and notebooklm.google.com notebook URLs. Set NOTEBOOKLM_BASE_URL to override the host.
  • RPC method IDs / payloads: Google can change these at any time. The wire shapes are pinned by unit tests (cd skills/notebooklm && npx -y bun test tests/unit) and live tests (npx -y bun test tests/live.test.ts). If a call fails with "method ID may have changed" or INVALID_ARGUMENT, compare scripts/rpc-types.ts with the notebooklm-py and notebooklm-sdk projects.

🌟 Star History

Star History Chart

💜 Sponsors

This project is free and open source. Sponsors help keep it maintained and growing.

Become a Sponsor | Sponsorship Program

🤝 Contribution

When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated ❤️.

You can learn more about how you can contribute to this project in the contribution guide.

⚖️ License

This repository is available under the MIT License.

👍 Credits

Happy vibe coding 💯

Made with ❤️ by Proyecto 26 - Changing the world with small contributions.

One hand can accomplish great things, but many can take you into space and beyond! 🌌

Together we do more, together we are more ❤️