skills/notebooklm/SKILL.md
This skill should be used when the user asks to "query my NotebookLM notebook", "ask NotebookLM about these sources", "get a citation-backed answer from my documents", or "search my NotebookLM library". Provides browser automation, library management, and persistent auth for querying Google NotebookLM notebooks directly from Claude Code, returning source-grounded answers from Gemini instead of general knowledge.
npx skillsauth add b-open-io/prompts notebooklmInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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
tools
This skill should be used when a Claude Code session needs to keep working after Anthropic usage runs out, or when the user asks to run the Claude Code harness on GPT-5.6 Sol. Trigger phrases include "my Anthropic usage ran out", "I'm out of Claude usage", "usage limit reached, what now", "keep working on another model", "run Claude Code on GPT-5.6 Sol", "use GPT-5.6 Sol as the model", "set up claudex", "claudex isn't working", "route the harness through CLIProxyAPI", or "bill against my ChatGPT/Codex subscription". It stands up a local proxy so the Claude Code CLI runs on OpenAI's Codex backend as an escape hatch, and diagnoses that setup when it drifts. macOS + Homebrew.
testing
This skill should be used when the user asks to "open Visual Wayfinder", "answer a Wayfinder ticket visually", "turn this decision into a configurator", "show Wayfinder choices as a dashboard", "prototype the Wayfinder questionnaire", or wants interactive choice cards, tradeoff controls, rankings, ranges, toggles, and consequence previews for one active Wayfinder decision. It wraps the Wayfinder skill and JSON Render; it never replaces the tracker or resolves more than the active decision.
development
This skill should be used when the user asks to "make a visual proposal", "write this up so I can share it", "present these options visually", "diagram the trade-offs", "turn this plan into something reviewable", or requests a shareable design pitch, architecture proposal, RFC, options comparison, or visual roadmap for work that has not been built. It produces one self-contained, theme-aware HTML page led by grounded diagrams. Use visual-review instead for completed code changes; do not use this skill for internal task tracking.
tools
This skill should be used when the user asks to "add plugin settings", "make a plugin configurable", "store per-project plugin configuration", "use settings.local.json", "create a plugin state file", "expose skill settings in Agent Master", or "add a skill interface". Distinguishes official Claude Code settings from project-owned configuration and documents bOpen Agent Master skill interface discovery.