skills/notebooklm/SKILL.md
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.
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
development
This skill should be used when the user asks to "design a business card", "make a printable PDF", "render HTML to PDF", "generate a postcard", "build print collateral", "set up an HTML print pipeline", or needs help with bleed, safe areas, font embedding, or QR generation for print. Provides a Playwright-based pipeline with multiple bundled templates and theme variants for business cards (minimal, watercolor light, watercolor dark) and instructions for adding new templates.
tools
Get recent tweets from an X/Twitter user. Use when user asks "what has @username posted", "recent tweets from", "user's X posts", "show timeline for", "what is @user saying". Requires X_BEARER_TOKEN.
data-ai
Get X/Twitter user profile by username. Use when user asks "who is @username", "get X profile", "lookup Twitter user", "find X account", "user details", "follower count for". Requires X_BEARER_TOKEN.
data-ai
Search recent X/Twitter posts by query. Returns RAW TWEETS (last 7 days). Use when user asks "search X for", "find tweets about", "what are people saying about", "Twitter search", "raw tweets about". For AI summaries/sentiment, use x-research instead. Requires X_BEARER_TOKEN.