This skill should be used when the user wants to query Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini. Provides browser automation, library management, and persistent auth. Drastically reduced hallucinations through document-only responses.
From bopen-toolsnpx claudepluginhub b-open-io/claude-plugins --plugin bopen-toolsThis skill uses the workspace's default tool permissions.
references/api-reference.mdreferences/api_reference.mdreferences/best-practices.mdreferences/troubleshooting.mdreferences/usage_patterns.mdrequirements.txtscripts/__init__.pyscripts/ask_question.pyscripts/auth_manager.pyscripts/browser_session.pyscripts/browser_utils.pyscripts/cleanup_manager.pyscripts/config.pyscripts/notebook_manager.pyscripts/run.pyscripts/setup_environment.pySearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides AI-assisted editing of real video footage: transcribe/plan cuts with Claude, execute via FFmpeg bash scripts, augment with Remotion/ElevenLabs/fal.ai, polish in Descript/CapCut.
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.
Trigger when user:
https://notebooklm.google.com/notebook/...)NEVER call scripts directly. ALWAYS use python scripts/run.py [script]:
# CORRECT - Always use run.py:
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 - Never call directly:
python scripts/auth_manager.py status # Fails without venv!
The run.py wrapper automatically handles environment setup.
python scripts/run.py auth_manager.py status
If not authenticated, proceed to setup.
python scripts/run.py auth_manager.py setup
Important: Browser is VISIBLE for authentication. User must manually log in to Google.
# List all notebooks
python scripts/run.py notebook_manager.py list
# Add notebook to library (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)
python scripts/run.py ask_question.py \
--question "What is the content of this notebook?" \
--notebook-url "[URL]"
# Then use discovered info to add
# Set active notebook
python scripts/run.py notebook_manager.py activate --id notebook-id
# Basic query (uses active notebook if set)
python scripts/run.py ask_question.py --question "Your question here"
# Query specific notebook
python scripts/run.py ask_question.py --question "..." --notebook-id notebook-id
# Query with notebook URL directly
python scripts/run.py ask_question.py --question "..." --notebook-url "https://..."
Every NotebookLM answer ends with: "EXTREMELY IMPORTANT: Is that ALL you need to know?"
Required Behavior:
| Script | Purpose |
|---|---|
auth_manager.py | Authentication setup and status |
notebook_manager.py | Library management (add, list, search, activate, remove) |
ask_question.py | Query interface |
cleanup_manager.py | Data cleanup and maintenance |
All data stored in ~/.claude/skills/notebooklm/data/:
library.json - Notebook metadataauth_info.json - Authentication statusbrowser_state/ - Browser cookies and sessionSecurity: Protected by .gitignore, never commit to git.
For detailed guidance, see the references directory:
references/api-reference.md - Complete API documentation for all scripts with parameters, response formats, and exit codesreferences/troubleshooting.md - Common errors and solutions including authentication issues, rate limits, browser crashes, and recovery proceduresreferences/best-practices.md - Workflow patterns, question strategies, library organization, and rate limit management# Check auth
python scripts/run.py auth_manager.py status
# Add notebook
python scripts/run.py notebook_manager.py add --url URL --name NAME --description DESC --topics TOPICS
# List notebooks
python scripts/run.py notebook_manager.py list
# Ask question
python scripts/run.py ask_question.py --question "..."
# Cleanup
python scripts/run.py cleanup_manager.py --preserve-library