Skip to content
Development
Skill

/notebooklm

Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini. Browser automation, library management, persistent auth. Drastically reduced hallucinations through document-only responses.

From plugin
ay-skills
936 skills

Claude Code

$ npx -y skills add walidboulanouar/Ay-Skills --skill notebooklm --agent claude-code

SKILL.md

notebooklm.SKILL.md
name: notebooklm
description: Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini. Browser automation, library management, persistent auth. Drastically reduced hallucinations through document-only responses.

NotebookLM Research Assistant Skill

Interact with Google NotebookLM to query documentation with Gemini's source-grounded answers. Each question opens a fresh browser session, retrieves the answer exclusively from your uploaded documents, and closes.

**Source:** https://github.com/PleasePrompto/notebooklm-skill

Install

git clone https://github.com/PleasePrompto/notebooklm-skill ~/.claude/skills/notebooklm

The `run.py` wrapper auto-creates `.venv`, installs dependencies, and sets up Chromium on first run.

When to Use This Skill

Trigger when user:

  • Mentions NotebookLM explicitly
  • Shares NotebookLM URL (`https://notebooklm.google.com/notebook/...`)
  • Asks to query their notebooks/documentation
  • Wants to add documentation to NotebookLM library
  • Uses phrases like "ask my NotebookLM", "check my docs", "query my notebook"

CRITICAL: Always Use run.py Wrapper

**NEVER call scripts directly. ALWAYS use `python scripts/run.py [script]`:**

# CORRECT
python scripts/run.py auth_manager.py status
python scripts/run.py notebook_manager.py list
python scripts/run.py ask_question.py --question "..."

# WRONG — fails without venv
python scripts/auth_manager.py status

Core Workflow

Step 1: Check Authentication

python scripts/run.py auth_manager.py status

Step 2: Authenticate (One-Time Setup)

# Browser MUST be visible for manual Google login
python scripts/run.py auth_manager.py setup

Tell user: "A browser window will open for Google login."

Step 3: Manage Notebook Library

# List all notebooks
python scripts/run.py notebook_manager.py list

# Add notebook — ALL parameters required
python scripts/run.py notebook_manager.py add \
  --url "https://notebooklm.google.com/notebook/..." \
  --name "Descriptive Name" \
  --description "What this notebook contains" \
  --topics "topic1,topic2,topic3"

# Smart Add (discover content first, then add)
python scripts/run.py ask_question.py --question "What topics are covered in this notebook?" --notebook-url "[URL]"

# Search, activate, remove
python scripts/run.py notebook_manager.py search --query "keyword"
python scripts/run.py notebook_manager.py activate --id notebook-id
python scripts/run.py notebook_manager.py remove --id notebook-id

Step 4: Ask Questions

# Basic query (uses active notebook)
python scripts/run.py ask_question.py --question "Your question here"

# Query specific notebook by ID
python scripts/run.py ask_question.py --question "..." --notebook-id notebook-id

# Query by URL directly
python scripts/run.py ask_question.py --question "..." --notebook-url "https://..."

# Debug mode
python scripts/run.py ask_question.py --question "..." --show-browser

Follow-Up Mechanism (CRITICAL)

Every NotebookLM answer ends with: **"Is that ALL you need to know?"**

Required behavior: 1. STOP — do not immediately respond to user 2. ANALYZE — compare answer to original request 3. IDENTIFY GAPS — determine if more info needed 4. ASK FOLLOW-UP — if gaps exist, query again with context 5. SYNTHESIZE — combine all answers before responding

Script Reference

# Auth
python scripts/run.py auth_manager.py setup|status|reauth|clear

# Notebooks
python scripts/run.py notebook_manager.py add|list|search|activate|remove|stats

# Questions
python scripts/run.py ask_question.py --question "..." [--notebook-id ID] [--notebook-url URL]

# Cleanup
python scripts/run.py cleanup_manager.py [--confirm] [--preserve-library]

Data Storage

All data in `~/.claude/skills/notebooklm/data/`:

  • `library.json` — notebook metadata
  • `auth_info.json` — auth status
  • `browser_state/` — browser cookies/session

Protected by `.gitignore`. Never commit.

Limitations

  • No session persistence (each question = new browser session)
  • Rate limit: ~50 queries/day on free Google accounts
  • Manual upload required (user adds docs to NotebookLM)
  • Requires Python 3.8+

Troubleshooting

| Problem | Solution | |---------|----------| | ModuleNotFoundError | Use `run.py` wrapper, never call scripts directly | | Auth fails | Browser must be visible: `--show-browser` | | Rate limit hit | Wait or switch Google account | | Browser crashes | `python scripts/run.py cleanup_manager.py --preserve-library` |

Read more
@walidboulanouar
Ships withay-skills

A collection of Claude Code skills built and used by AY Automate. Each skill lives in skills// and is plug-and-play with Claude Code.

Stars on GitHub

Momentum

stars in total
93
Star history of walidboulanouar/Ay-Skills on GitHub, a chart by star-history.com

Other skills on ay-skills.

mcp-client

mcp-client

Universal MCP client for connecting to any MCP server with progressive disclosure. Wraps MCP servers as skills to avoid context…

remotion

remotion

Create and edit Remotion videos with domain-specific knowledge. TRIGGERS - Use this skill when: - User mentions "Remotion" in…

skill-creator

skill-creator

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about notebooklm.

Which coding agents can use notebooklm?
notebooklm installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.