Skip to content

sanjay3290/notebooklm-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NotebookLM Skill

Query and manage Google NotebookLM notebooks from your AI coding assistant.

Supported AI Clients

Claude Code Gemini CLI Google Antigravity Cursor OpenAI Codex Goose

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-browser for 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

About

NotebookLM skill for AI coding assistants — query notebooks, manage sources, batch questions, multi-notebook comparison via Playwright automation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages