Use this skill to enable Claude Code to communicate directly with your Google NotebookLM notebooks. Query your uploaded documents and get source-grounded, citat
Use this skill to enable Claude Code to communicate directly with your Google NotebookLM notebooks. Query your uploaded documents and get source-grounded, citat
[!WARNING] This project is no longer maintained. As of September 2026 the repository is archived: no updates, bug fixes or support. It may stop working when the upstream services change. Feel free to fork.
This skill works ONLY with local Claude Code installations, NOT in the web UI.
The web UI runs skills in a sandbox without network access, which this skill requires for browser automation. You must use Claude Code locally on your machine.
When you tell Claude Code to "search through my local documentation", here's what happens:
This Claude Code Skill lets Claude Code chat directly with NotebookLM — Google's source-grounded knowledge base powered by Gemini 2.5 that provides intelligent, synthesized answers exclusively from your uploaded documents.
Your Task → Claude asks NotebookLM → Gemini synthesizes answer → Claude writes correct code
No more copy-paste dance: Claude asks questions directly and gets answers straight back in the CLI. It builds deep understanding through automatic follow-ups, getting specific implementation details, edge cases, and best practices.
# 1. Create skills directory (if it doesn't exist)
mkdir -p ~/.claude/skills
# 2. Clone this repository
cd ~/.claude/skills
git clone https://github.com/PleasePrompto/notebooklm-skill notebooklm
# 3. That's it! Open Claude Code and say:
"What are my skills?"
When you first use the skill, it automatically:
.venv)Note: The setup uses real Chrome instead of Chromium for cross-platform reliability, consistent browser fingerprinting, and better anti-detection with Google services
Say in Claude Code:
"What skills do I have?"
Claude will list your available skills including NotebookLM.
"Set up NotebookLM authentication"
A Chrome window opens → log in with your Google account
Go to notebooklm.google.com → Create notebook → Upload your docs:
Share: ⚙️ Share → Anyone with link → Copy
Option A: Let Claude figure it out (Smart Add)
"Query this notebook about its content and add it to my library: [your-link]"
Claude will automatically query the notebook to discover its content, then add it with appropriate metadata.
Option B: Manual add
"Add this NotebookLM to my library: [your-link]"
Claude will ask for a name and topics, then save it for future use.
"What does my React docs say about hooks?"
Claude automatically selects the right notebook and gets the answer directly from NotebookLM.
This is a Claude Code Skill - a local folder containing instructions and scripts that Claude Code can use when needed. Unlike the MCP server version, this runs directly in Claude Code without needing a separate server.
~/.claude/skills
claude mcp add ...
Sessions
Fresh browser each question
Persistent chat sessions
Compatibility
Claude Code only (local)
Claude Code, Codex, Cursor, etc.
Language
Python
TypeScript
Distribution
Git clone
npm package
~/.claude/skills/notebooklm/
├── SKILL.md # Instructions for Claude
├── scripts/ # Python automation scripts
│ ├── ask_question.py # Query NotebookLM
│ ├── notebook_manager.py # Library management
│ └── auth_manager.py # Google authentication
├── .venv/ # Isolated Python environment (auto-created)
└── data/ # Local notebook library
When you mention NotebookLM or send a notebook URL, Claude:
NotebookLM significantly reduces hallucinations by answering exclusively from your uploaded documents. If information isn't available, it indicates uncertainty rather than inventing content.
No copy-paste between browser and editor. Claude asks and receives answers programmatically.
Save NotebookLM links with tags and descriptions. Claude auto-selects the right notebook for your task.
One-time Google login, then authentication persists across sessions.
Everything runs in the skill folder with an isolated Python environment. No global installations.
Uses realistic typing speeds and interaction patterns to avoid detection.
User asks: "Check my Suzuki GSR 600 workshop manual for brake fluid type, engine oil specs, and rear axle torque."
Claude automatically:
You: "I need to build an n8n workflow for Gmail spam filtering. Use my n8n notebook."
Claude's internal process:
→ Loads NotebookLM skill
→ Activates n8n notebook
→ Asks comprehensive questions with follow-ups
→ Synthesizes complete answer from multiple queries
Result: Working workflow on first try, no debugging hallucinated APIs.
Note: The MCP server uses the same Patchright library but via TypeScript/npm ecosystem.
.venv on first useAll data is stored locally within the skill directory:
~/.claude/skills/notebooklm/data/
├── library.json - Your notebook library with metadata
├── auth_info.json - Authentication status info
└── browser_state/ - Browser cookies and session data
Important Security Note:
data/ directory contains sensitive authentication data and personal notebooks.gitignoredata/ directoryUnlike the MCP server, this skill uses a stateless model:
This means:
For multi-step research, Claude automatically asks follow-up questions when needed.
Why doesn't this work in the Claude web UI? The web UI runs skills in a sandbox without network access. Browser automation requires network access to reach NotebookLM.
How is this different from the MCP server? This is a simpler, Python-based implementation that runs directly as a Claude Skill. The MCP server is more feature-rich with persistent sessions and works with multiple tools (Codex, Cursor, etc.).
Can I use both this skill and the MCP server? Yes! They serve different purposes. Use the skill for quick Claude Code integration, use the MCP server for persistent sessions and multi-tool support.
What if Chrome crashes?
Run: "Clear NotebookLM browser data" and try again.
Is my Google account secure? Chrome runs locally on your machine. Your credentials never leave your computer. Use a dedicated Google account if you're concerned.
# Make sure it's in the right location
ls ~/.claude/skills/notebooklm/
# Should show: SKILL.md, scripts/, etc.
Say: "Reset NotebookLM authentication"
Say: "Clear NotebookLM browser data"
# Manual reinstall if needed
cd ~/.claude/skills/notebooklm
rm -rf .venv
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -r requirements.txt
This tool automates browser interactions with Notebo
No open issues yet, or sync has not completed.