Loading...
Loading...
Query Google NotebookLM notebooks for source-grounded, citation-backed answers from user-uploaded documents. Manages notebook library, handles Google authentication, and supports smart discovery. Works standalone via /blog notebooklm or internally from blog-write and blog-researcher for Tier 1 research data. Falls back gracefully when not configured. Use when user says "notebooklm", "notebook", "query notebook", "ask notebook", "notebook research", "source grounded research", "document query", "notebook library".
npx skill4agent add agricidaniel/claude-blog blog-notebooklm| Command | What it does |
|---|---|
| Query a notebook for source-grounded answers |
| Smart-discover notebook content before cataloging |
| List all notebooks in library |
| Add a notebook to library |
| Search notebooks by keyword |
| Remove a notebook from library |
| One-time Google authentication (browser visible) |
| Check authentication status |
| Clean browser state (preserves library) |
run.pypython3 scripts/run.py [script]# CORRECT:
python3 scripts/run.py auth_manager.py status
python3 scripts/run.py ask_question.py --question "..."
# WRONG -- fails without venv:
python3 scripts/auth_manager.py statusrun.py.venvpython3 scripts/run.py auth_manager.py status/blog notebooklm setup/blog notebooklm setup# Opens a visible browser for manual Google login (one-time)
python3 scripts/run.py auth_manager.py setuppython3 scripts/run.py auth_manager.py status # Check auth
python3 scripts/run.py auth_manager.py reauth # Re-authenticate
python3 scripts/run.py auth_manager.py clear # Clear all auth data/blog notebooklm ask <question>--notebook-url--notebook-id# Basic query (uses active notebook)
python3 scripts/run.py ask_question.py --question "Your question here"
# Query specific notebook by ID
python3 scripts/run.py ask_question.py --question "..." --notebook-id notebook-id
# Query by URL directly
python3 scripts/run.py ask_question.py --question "..." --notebook-url "https://..."
# JSON output (for internal/programmatic use)
python3 scripts/run.py ask_question.py --question "..." --json
# Show browser for debugging
python3 scripts/run.py ask_question.py --question "..." --show-browser/blog notebooklm discover <url># Step 1: Discover content
python3 scripts/run.py ask_question.py \
--question "What is the content of this notebook? What topics are covered? Provide a complete overview briefly and concisely" \
--notebook-url "<URL>"
# Step 2: Add with discovered metadata
python3 scripts/run.py notebook_manager.py add \
--url "<URL>" \
--name "<Based on content>" \
--description "<Based on content>" \
--topics "<Extracted topics>"# List all notebooks
python3 scripts/run.py notebook_manager.py list
# Add notebook (all params required -- discover or ask user!)
python3 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"
# Search by keyword
python3 scripts/run.py notebook_manager.py search --query "keyword"
# Set active notebook
python3 scripts/run.py notebook_manager.py activate --id notebook-id
# Remove notebook
python3 scripts/run.py notebook_manager.py remove --id notebook-id
# Library statistics
python3 scripts/run.py notebook_manager.py statsquestionnotebook_idnotebook_urlcontext### NotebookLM Research
- **Source:** [Notebook name]
- **Question:** [What was asked]
- **Answer:** [Source-grounded response from user's documents]
- **Source Quality:** Tier 1 (user-uploaded primary documents)scripts/data/library.jsonscripts/data/auth_info.jsonscripts/data/browser_state/| Error | Resolution |
|---|---|
| Not authenticated | Run |
| ModuleNotFoundError | Always use |
| Browser crash | |
| Rate limit (50/day) | Wait until midnight PST or switch Google account |
| Notebook not found | Check with |
| Query timeout (120s) | Retry with simpler question or |
| MCP unavailable (internal) | Return silently -- writing workflow uses WebSearch |
references/commands.mdreferences/troubleshooting.md