Help us improve
Share bugs, ideas, or general feedback.
From bopen-tools
Queries Google NotebookLM notebooks for source-grounded, citation-backed Gemini answers via browser automation. Manages authentication, libraries, and persistent sessions for document-only responses.
npx claudepluginhub b-open-io/claude-plugins --plugin bopen-toolsHow this skill is triggered — by the user, by Claude, or both
Slash command
/bopen-tools:notebooklmThe summary Claude sees in its skill listing — used to decide when to auto-load this 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.
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.pyQueries Google NotebookLM notebooks using Gemini for source-grounded answers from uploaded documents. Manages authentication, adds notebooks, and lists library via Python scripts.
Queries Google NotebookLM notebooks for source-grounded, citation-backed Gemini answers. Manages auth, adds/lists notebooks via Python scripts with browser automation.
Queries Google NotebookLM from Claude Code for citation-backed answers from user-uploaded documents. Manages notebook library and Google auth. Used standalone or by blog-write/blog-researcher for Tier 1 research data.
Share bugs, ideas, or general feedback.
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