skill
notebooklm-skill
NotebookLM skill for AI coding assistants — query notebooks, manage sources, batch questions, multi-notebook comparison via Playwright automation
Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/sanjay3290/notebooklm-skill itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
README
synced Oct 17, 2026NotebookLM Skill
Query and manage Google NotebookLM notebooks from your AI coding assistant.
Supported AI Clients
Features
- Query notebooks with natural language questions
- Batch questions (
q1||q2||q3) and question files - Multi-notebook comparison across notebooks
- Manage notebook library (add, list, search, activate)
- Remote operations: create notebooks, add/delete/sync sources
- Source sync with hash-based deduplication
- Directory uploads with filters (extensions, size, modified date)
- Dry-run mode for all destructive operations
- Multiple auth profiles (work, personal, etc.)
- Exports to JSON or Markdown
- Headless Playwright automation (
--show-browserfor debug)
Quick Install
Claude Code
/plugin marketplace add sanjay3290/notebooklm-skill
Gemini CLI / Cursor / Codex / Goose
npx skills add sanjay3290/notebooklm-skill
Setup
1. Install dependencies
pip install -r requirements.txt
python -m playwright install chromium
2. Authenticate with a profile
python scripts/auth_manager.py setup --profile work
This opens a browser window for Google sign-in. Your session is stored persistently at ~/.config/claude/notebooklm-skill/ (override with NOTEBOOKLM_DATA_DIR).
3. Register a notebook
python scripts/notebook_manager.py add \
--url "https://notebooklm.google.com/notebook/..." \
--name "My Notebook" \
--description "What this notebook contains" \
--topics "topic1,topic2"
Usage Examples
# Ask a single question against the active notebook
python scripts/ask_question.py --question "What are the key implementation details?"
# Ask by notebook ID or URL
python scripts/ask_question.py --question "Summarize auth flow" --notebook-id notebook-id
python scripts/ask_question.py --question "What is covered here?" --notebook-url "https://notebooklm.google.com/notebook/..."
# Batch questions (pipe-separated)
python scripts/ask_question.py --questions "q1||q2||q3" --notebook-id notebook-id
# Questions from a file (one per line)
python scripts/ask_question.py --questions-file ./questions.txt --notebook-id notebook-id
# Compare one question across multiple notebooks
python scripts/ask_question.py --question "What changed this week?" --compare-notebook-ids "notebook-a,notebook-b"
# Export answer as Markdown
python scripts/ask_question.py --question "Summarize" --notebook-id notebook-id --export-format markdown --save-notes
# Upload a directory of sources with filters
python scripts/remote_manager.py add-source --notebook-id notebook-id --dir ./docs --recursive --include-ext "md,txt" --max-size "10MB"
# Sync local files to notebook (add new, optionally delete removed)
python scripts/remote_manager.py sync-sources --notebook-id notebook-id --dir ./docs --recursive --delete-missing --dry-run
# List all notebooks in your library
python scripts/notebook_manager.py list
Full Command Reference
Authentication
# Check auth status
python scripts/auth_manager.py status --profile default
# Initial setup (opens browser for Google sign-in)
python scripts/auth_manager.py setup --profile work
# Re-authenticate an expired session
python scripts/auth_manager.py reauth --profile work
# Clear a specific profile
python scripts/auth_manager.py clear --profile work
# Clear all profiles
python scripts/auth_manager.py clear --all-profiles
# List all profiles
python scripts/auth_manager.py profiles
Notebook Library
# List all registered notebooks
python scripts/notebook_manager.py list
# Add a notebook to the library
python scripts/notebook_manager.py add \
--url "https://notebooklm.google.com/notebook/..." \
--name "Notebook Name" \
--description "What this notebook contains" \
--topics "topic1,topic2"
# Set active notebook
python scripts/notebook_manager.py activate --id notebook-id
# Search notebooks by keyword
python scripts/notebook_manager.py search --query "keyword"
# Remove a notebook from the library
python scripts/notebook_manager.py remove --id notebook-id
# Show library statistics
python scripts/notebook_manager.py stats
Ask NotebookLM
# Single question (active notebook)
python scripts/ask_question.py --question "What are the key implementation details?"
# Ask by notebook ID or URL
python scripts/ask_question.py --question "Summarize auth flow" --notebook-id notebook-id
python scripts/ask_question.py --question "What is covered here?" --notebook-url "https://notebooklm.google.com/notebook/..."
# Batch questions (pipe-separated)
python scripts/ask_question.py --questions "q1||q2||q3" --notebook-id notebook-id
# Questions from a file
python scripts/ask_question.py --questions-file ./questions.txt --notebook-id notebook-id
# Compare one question across multiple notebooks
python scripts/ask_question.py --question "What changed this week?" --compare-notebook-ids "notebook-a,notebook-b"
# Save structured export
python scripts/ask_question.py --question "Summarize" --notebook-id notebook-id --export-format markdown --save-notes
Remote NotebookLM Operations
# List all notebooks in your Google account
python scripts/remote_manager.py list-remote --profile work
# Create a new notebook remotely
python scripts/remote_manager.py create-remote --name "My Notebook" --description "Description" --topics "topic1,topic2"
python scripts/remote_manager.py create-remote --name "My Notebook" --skip-library
python scripts/remote_manager.py create-remote --name "My Notebook" --dry-run
# List sources in a notebook
python scripts/remote_manager.py list-sources --notebook-id notebook-id
# Add sources (text, URL, file, or directory)
python scripts/remote_manager.py add-source --notebook-id notebook-id --text "Some source text"
python scripts/remote_manager.py add-source --notebook-id notebook-id --url "https://example.com"
python scripts/remote_manager.py add-source --notebook-id notebook-id --file "/path/to/file.pdf"
python scripts/remote_manager.py add-source --notebook-id notebook-id --dir "/path/to/folder" --recursive
python scripts/remote_manager.py add-source --notebook-id notebook-id --dir "/path/to/folder" --include-ext "md,txt" --exclude "*.tmp" --max-size "10MB" --modified-since "7d"
python scripts/remote_manager.py add-source --notebook-id notebook-id --dir "/path/to/folder" --copy-to-temp
python scripts/remote_manager.py add-source --notebook-id notebook-id --dir "/path/to/folder" --dry-run
# Delete sources
python scripts/remote_manager.py delete-source --notebook-id notebook-id --source-title "source title"
python scripts/remote_manager.py delete-source --notebook-id notebook-id --source-title "temp" --contains --all-matches
python scripts/remote_manager.py delete-source --notebook-id notebook-id --source-title "temp" --contains --all-matches --dry-run
# Sync local directory to notebook (add new, optionally remove deleted)
python scripts/remote_manager.py sync-sources --notebook-id notebook-id --dir "/path/to/folder" --recursive
python scripts/remote_manager.py sync-sources --notebook-id notebook-id --dir "/path/to/folder" --recursive --delete-missing
python scripts/remote_manager.py sync-sources --notebook-id notebook-id --manifest ./source-manifest.json --dry-run
Common Options
These flags work with ask_question.py and remote_manager.py:
--profile work # Named auth profile
--retries 3 # Retry transient browser failures
--artifacts-dir /tmp/x # Screenshot/HTML dump directory
--show-browser # Show browser window for debugging
Part of AI Skills Collection
This skill is also available in the ai-skills collection with 20+ other skills for databases, research, image generation, Google Workspace, and more.
License
Apache-2.0