NotebookLM Source Research
Query NotebookLM in Claude Code for citation-backed answers grounded in your uploaded documents.
The evidence shows an isolated virtual environment, bounded question length, restrictive permissions for browser state and auth files, and preview-plus-confirmation cleanup. However, the skill stores and injects Google cookies, uses an anti-detection browser against an external service, and can navigate to a user-supplied NotebookLM URL. Explicit data-flow disclosure, domain restriction, per-query confirmation, and recovery controls are incomplete, so points are deducted.
The evidence shows a unified run.py wrapper, authentication checks, timeouts, stable-text polling, resource cleanup, and error returns. However, authentication is treated as valid when a state file exists, dependency installation and browser selection are inconsistent, NotebookLM selectors are vulnerable to UI changes, and some failures collapse to None without detailed user guidance. No key-path test coverage is shown, so points are deducted. Static calibration caps this at 10.
The evidence provides fairly clear triggers, commands, parameters, local Claude Code boundaries, and silent fallback for internal use. However, Chinese-language triggering or output is not documented, and the core function depends on Google NotebookLM, Chrome, interactive Google login, and reachable overseas services. Boundary handling for missing active notebooks is also largely limited to CLI guidance, so points are deducted.
The evidence shows layered documentation with quick reference, prerequisites, parameters, troubleshooting, limitations, MIT licensing, author and version metadata, and storage/gitignore notes. However, maintenance ownership, update path, and changelog information are incomplete in the selected skill materials, the metadata source does not match the repository identity, and several installation, dependency, and platform assumptions remain implicit, so points are deducted.
The evidence indicates that the core workflow can query a selected notebook and return text or JSON, manage a notebook library, and fall back silently for internal callers. However, actual execution is not established by the source review; the promised citation format is mostly procedural, while the script does not explicitly extract source titles or produce a bibliography. Browser startup overhead, rate limits, and manual authentication also reduce direct utility, so points are deducted. Static calibration caps this at 7.
The evidence contains auditable Python implementations, argument definitions, failure paths, and storage documentation, but it does not show a test suite, CI result, or third-party reproduction evidence covering this skill's key paths. Repository-level test claims cannot substitute for skill-specific coverage, so points are deducted. Static calibration caps this at 5.
- Authentication state contains Google cookies and browser profile data; users should be warned that these are sensitive and should avoid untrusted notebook URLs.
- “Zero hallucination risk” and Tier 1 citation guarantees are strong claims not sufficiently established by the static evidence; outputs still require human verification.
- Google NotebookLM, Chrome, Patchright, and UI selectors may fail or change; reachability of the core service from mainland-China networks is unproven.
- The --force cleanup option skips confirmation and can delete authentication, session, and library data; the irreversible-risk warning should be prominent.
What does this skill do, and when should you use it?
NotebookLM Source Research is the blog-notebooklm skill in the claude-blog repository. It queries Google NotebookLM notebooks built from user-uploaded documents, manages the notebook library, and handles Google authentication. It can be invoked through /blog notebooklm or used internally by blog-write and blog-researcher as Tier 1 research. When authentication or querying is unavailable internally, it fails silently so the writing workflow can continue with WebSearch.
The skill runs authentication, query, discovery, and notebook-management scripts through scripts/run.py. It checks authentication, resolves a notebook by URL, ID, or active-library selection, submits questions to NotebookLM, and returns answers sourced from uploaded documents. Each question opens a new headless browser session and closes it afterward. Supported operations include notebook discovery, library listing, adding, searching, activation, removal, authentication status, reauthentication, cleanup, and JSON query output. It stores library metadata, authentication information, and browser state inside the skill directory.
- A writer needs research answers grounded in uploaded reports, interviews, or other primary documents before drafting an article.
- A marketing team wants blog-write or blog-researcher to use its own NotebookLM materials as Tier 1 research data.
- A user has a NotebookLM URL but does not yet know its contents and wants to discover and catalog it first.
- A user manages several research notebooks and needs keyword search, active-notebook selection, or removal of outdated entries.
What are this skill's strengths and limitations?
- Answers are restricted to user-uploaded documents and are positioned as Tier 1 research from primary user sources.
- Provides querying, notebook discovery, library management, and authentication workflows.
- Can run directly or serve blog-write and blog-researcher internally.
- Missing authentication or query failure does not block the internal writing workflow; it falls back silently.
- Requires a Google account with NotebookLM access, Python 3.11+, and Google Chrome.
- Requires one-time manual Google login in a visible browser.
- There is no session persistence; each question starts a new browser session and incurs browser overhead.
- Free Google accounts have a stated limit of 50 queries per day, and users must upload documents manually.
- The source limits it to local Claude Code rather than the web UI and does not document standalone installation.
How do you install this skill?
The source identifies the skill at skills/blog-notebooklm/SKILL.md but does not document a standalone installation path. It is installed as part of the claude-blog collection. The README documents collection installation from the public repository with git clone https://github.com/AgriciDaniel/claude-blog followed by inspection and execution of the installer, or installation through the Claude Code plugin marketplace. Restart Claude Code after installation.
How do you use this skill?
Run /blog notebooklm setup once and complete the Google login in the visible browser. Then use /blog notebooklm ask <question> to query the active notebook, /blog notebooklm discover <URL> to inspect and catalog a notebook, /blog notebooklm library list to list notebooks, /blog notebooklm library add <URL> to add one, /blog notebooklm status to check authentication, or /blog notebooklm cleanup to clean browser state. Script calls must use python3 scripts/run.py [script]; the source explicitly says not to run scripts directly.