Creator · AgriciDaniel
Last updated · Sep 2, 2026
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-researc
Creator · AgriciDaniel
Last updated · Sep 2, 2026
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-researc
Creator · AgriciDaniel
Last updated · Sep 2, 2026
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-researc
Creator · AgriciDaniel
Last updated · Sep 2, 2026
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-researc
Sandbox only
Install targets
Codex install prompt
Install the "blog-notebooklm" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/brain/.raw/sources/claude-blog-skill/skills/blog-notebooklm. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: 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 source-grounded research context. 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". After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"agricidaniel-blog-notebooklm","task":"Install blog-notebooklm","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Document processing
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Agent fit
Claude Code + Browser agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Maintenance
fresh
9d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
2.0K
80/100 Quality · 81/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.0K GitHub stars
Repo activity
2.0K stars, 333 forks
Maintenance
9d since push
License
MIT
Install
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklmDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/agricidaniel-blog-notebooklm/install
Agent should check
Copy prompt
Task: Use blog-notebooklm in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/agricidaniel-blog-notebooklm/install
Install command: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/agricidaniel-blog-notebooklm/install
LLM text format
/api/skills/agricidaniel-blog-notebooklm/install?format=text
Find alternatives
/api/skills/search?q=blog-notebooklm&limit=3
Agent prompt
Use blog-notebooklm for this task. Review https://www.openagentskill.com/api/skills/agricidaniel-blog-notebooklm/install, then install with: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklmRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/agricidaniel-blog-notebooklm
LLM text
/api/registry/manifest/agricidaniel-blog-notebooklm?format=text
Install alias
/api/registry/install/agricidaniel-blog-notebooklm
Recommend
/api/registry/recommend?task=Use%20blog-notebooklm%20in%20an%20agent%20workflow&limit=3
Agent fit
Document processing
Use-case tags
Platforms
Claude Code, Browser agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Document processing
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.0K GitHub stars
Stars/forks activity
PASS2.0K stars, 333 forks; issue activity unavailable in current metadata
Recent maintenance
PASS9d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Parse messy files
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Search private knowledge
I need my agent to build a RAG workflow over documents and retrieve reliable context.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Scrape, clean, and reuse web data
A practical workflow for agents that crawl public pages, extract clean content, normalize data, and hand it to downstream research or RAG workflows.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: blog-notebooklm description: > 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 source-grounded research context. 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". user-invokable: true argument-hint: "[ask|discover|library|setup|status|cleanup] [question-or-url]" license: MIT metadata: author: AgriciDaniel version: "1.11.0" source: "https://github.com/PleasePrompto/notebooklm-skill" ---
# Blog NotebookLM: Source-Grounded Research from Your Documents
Query Google NotebookLM notebooks directly from Claude Code for citation-backed answers from Gemini. Each question opens a headless browser session, retrieves the answer from your uploaded documents, and closes. Responses are source-grounded model answers, not proof of truth: uploaded documents may be primary or secondary, and the answer can still omit context.
Answers satisfy the FLOW evidence triple only when the returned citation includes a verifiable underlying source URL plus a publication or retrieval date. Use the underlying source title as the inline citation. Do not cite the private NotebookLM URL as the bibliography entry for public content.
## Quick Reference
| Command | What it does | |---------|-------------| | `/blog notebooklm ask <question>` | Query a notebook for source-grounded answers | | `/blog notebooklm discover <url>` | Smart-discover notebook content before cataloging | | `/blog notebooklm library list` | List all notebooks in library | | `/blog notebooklm library add <url>` | Add a notebook to library | | `/blog notebooklm library search <query>` | Search notebooks by keyword | | `/blog notebooklm library remove <id>` | Remove a notebook from library | | `/blog notebooklm setup` | One-time Google authentication (browser visible) | | `/blog notebooklm status` | Check authentication status | | `/blog notebooklm cleanup` | Clean browser state (preserves library) |
## Prerequisites
- Google account with NotebookLM access - Python 3.11+ (venv managed automatically by `run.py`) - Google Chrome (installed automatically on first run via Patchright) - One-time authentication setup (interactive Google login in visible browser)
## Always Use run.py Wrapper
**NEVER call scripts directly. ALWAYS use `python3 scripts/run.py [script]`:**
```bash # CORRECT: python3 scripts/run.py auth_manager.py status python3 scripts/run.py ask_question.py --question "..."
# Do not call files under scripts/ directly. The wrapper owns venv setup. ```
The `run.py` wrapper automatically creates `.venv`, installs dependencies, sets up Chrome, and executes the target script.
## Auth Check (Gate Pattern)
Before any query operation, check authentication:
```bash python3 scripts/run.py auth_manager.py status ```
- If authenticated: proceed with the query - If not authenticated: inform user and guide to setup: "NotebookLM requires Google login. Run `/blog notebooklm setup` to authenticate." - **When called internally** (from blog-write or blog-researcher): return silently with no error if not authenticated. Never block the writing workflow.
## Setup Workflow
For `/blog notebooklm setup`:
```bash # Opens a visible browser for manual Google login (one-time) python3 scripts/run.py auth_manager.py setup ```
Tell the user: "A browser window will open. Please log in to your Google account." Authentication persists via browser profile + cookie injection (hybrid approach).
Other auth commands: ```bash python3 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 ```
## Query Workflow
For `/blog notebooklm ask <question>`:
### Step 1: Check Auth Run auth check (see gate pattern above). If not authenticated, guide to setup.
### Step 2: Resolve Notebook Determine which notebook to query: - If `--notebook-url` provided: validate it is a NotebookLM notebook URL, then use it - If `--notebook-id` provided: look up in library - If neither: use active notebook from library - If no active notebook: show library and ask user to select
### Step 3: Ask the Question ```bash # 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 ```
### Step 4: Analyze and Follow Up Every response ends with a follow-up prompt. **Required behavior:** 1. **STOP**: do not immediately respond to the user 2. **ANALYZE**: compare the answer to the user's original request 3. **IDENTIFY GAPS**: determine if more information is needed 4. **ASK FOLLOW-UP**: if gaps exist, immediately ask a follow-up question 5. **REPEAT**: continue until information is complete 6. **SYNTHESIZE**: combine all answers before responding to the user
## Smart Discovery Workflow
For `/blog notebooklm discover <url>`:
When adding a notebook without knowing its content, query it first:
```bash # 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>" ```
**NEVER guess or use generic descriptions.** Always discover or ask the user.
## Library Management
```bash # 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 stats ```
## Internal API (for blog-write / blog-researcher)
When invoked as a Task subagent from blog-write or blog-researcher:
**Input** (provided by calling skill): - `question`: Research question relevant to the blog topic - `notebook_id` or `notebook_url`: Which notebook to query - `context`: "internal" (signals graceful fallback mode)
**Process:** 1. Check auth status: if not authenticated, return empty result silently 2. Query the notebook with the research question 3. Parse and return structured response
**Output** (returned to calling skill): ```markdown ### NotebookLM Research - **Source:** [Notebook name] - **Question:** [What was asked] - **Answer:** [Source-grounded response from user's documents] - **Underlying Source:** [Public source URL or document identifier] - **Underlying Source Date:** [Publication date or retrieval date] - **Source Quality:** [Tier 1-3 after classifying the underlying document] ```
**Graceful fallback:** If auth is missing or query fails, return immediately with no error. The calling workflow continues with WebSearch-based research. Never block blog-write or blog-rewrite because NotebookLM is unavailable.
## Data Storage
All data stored inside the skill directory: - `data/library.json`: Notebook metadata and library - `data/auth_info.json`: Authentication status - `data/browser_state/`: Chrome profile with cookies
**Security:** All data directories are gitignored. Never commit auth or browser state.
## Error Handling
| Error | Resolution | |-------|-----------| | Not authenticated | Run `/blog notebooklm setup` | | ModuleNotFoundError | Always use `run.py` wrapper | | Browser crash | `cleanup_manager.py --confirm --preserve-library`, then re-auth | | Rate limit (50/day) | Wait until midnight PST or switch Google account | | Notebook not found | Check with `notebook_manager.py list` | | Query timeout (120s) | Retry with simpler question or `--show-browser` to debug | | MCP unavailable (internal) | Return silently: writing workflow uses WebSearch |
## Limitations
- No session persistence (each question = new browser session) - Rate limits on free Google accounts (50 queries/day) - Manual upload required (user must add docs to NotebookLM web UI) - Browser overhead (few seconds per question for launch + teardown) - Local Claude Code only (not available in web UI)
## Reference Documentation
Load on-demand: do NOT load all at startup: - `references/commands.md`: Full CLI commands, parameters, and workflow patterns - `references/troubleshooting.md`: Error solutions, recovery procedures, debugging
Source provenance
Decision snapshot
2,016 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for blog-notebooklm, ready for a manual X post.
blog-notebooklm: Query Google NotebookLM notebooks for source-grounded, citation-backed answers from user-uplo... 2.0K stars https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=x
Listing + install path for blog-notebooklm: https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=x Install: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to AgriciDaniel but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm/audit)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)AgriciDaniel
@agricidaniel
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsSandbox only
Install targets
Codex install prompt
Install the "blog-notebooklm" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/brain/.raw/sources/claude-blog-skill/skills/blog-notebooklm. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: 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 source-grounded research context. 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". After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"agricidaniel-blog-notebooklm","task":"Install blog-notebooklm","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Document processing
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Agent fit
Claude Code + Browser agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Maintenance
fresh
9d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
2.0K
80/100 Quality · 81/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.0K GitHub stars
Repo activity
2.0K stars, 333 forks
Maintenance
9d since push
License
MIT
Install
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklmDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/agricidaniel-blog-notebooklm/install
Agent should check
Copy prompt
Task: Use blog-notebooklm in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/agricidaniel-blog-notebooklm/install
Install command: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/agricidaniel-blog-notebooklm/install
LLM text format
/api/skills/agricidaniel-blog-notebooklm/install?format=text
Find alternatives
/api/skills/search?q=blog-notebooklm&limit=3
Agent prompt
Use blog-notebooklm for this task. Review https://www.openagentskill.com/api/skills/agricidaniel-blog-notebooklm/install, then install with: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklmRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/agricidaniel-blog-notebooklm
LLM text
/api/registry/manifest/agricidaniel-blog-notebooklm?format=text
Install alias
/api/registry/install/agricidaniel-blog-notebooklm
Recommend
/api/registry/recommend?task=Use%20blog-notebooklm%20in%20an%20agent%20workflow&limit=3
Agent fit
Document processing
Use-case tags
Platforms
Claude Code, Browser agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Document processing
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.0K GitHub stars
Stars/forks activity
PASS2.0K stars, 333 forks; issue activity unavailable in current metadata
Recent maintenance
PASS9d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Parse messy files
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Search private knowledge
I need my agent to build a RAG workflow over documents and retrieve reliable context.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Scrape, clean, and reuse web data
A practical workflow for agents that crawl public pages, extract clean content, normalize data, and hand it to downstream research or RAG workflows.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: blog-notebooklm description: > 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 source-grounded research context. 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". user-invokable: true argument-hint: "[ask|discover|library|setup|status|cleanup] [question-or-url]" license: MIT metadata: author: AgriciDaniel version: "1.11.0" source: "https://github.com/PleasePrompto/notebooklm-skill" ---
# Blog NotebookLM: Source-Grounded Research from Your Documents
Query Google NotebookLM notebooks directly from Claude Code for citation-backed answers from Gemini. Each question opens a headless browser session, retrieves the answer from your uploaded documents, and closes. Responses are source-grounded model answers, not proof of truth: uploaded documents may be primary or secondary, and the answer can still omit context.
Answers satisfy the FLOW evidence triple only when the returned citation includes a verifiable underlying source URL plus a publication or retrieval date. Use the underlying source title as the inline citation. Do not cite the private NotebookLM URL as the bibliography entry for public content.
## Quick Reference
| Command | What it does | |---------|-------------| | `/blog notebooklm ask <question>` | Query a notebook for source-grounded answers | | `/blog notebooklm discover <url>` | Smart-discover notebook content before cataloging | | `/blog notebooklm library list` | List all notebooks in library | | `/blog notebooklm library add <url>` | Add a notebook to library | | `/blog notebooklm library search <query>` | Search notebooks by keyword | | `/blog notebooklm library remove <id>` | Remove a notebook from library | | `/blog notebooklm setup` | One-time Google authentication (browser visible) | | `/blog notebooklm status` | Check authentication status | | `/blog notebooklm cleanup` | Clean browser state (preserves library) |
## Prerequisites
- Google account with NotebookLM access - Python 3.11+ (venv managed automatically by `run.py`) - Google Chrome (installed automatically on first run via Patchright) - One-time authentication setup (interactive Google login in visible browser)
## Always Use run.py Wrapper
**NEVER call scripts directly. ALWAYS use `python3 scripts/run.py [script]`:**
```bash # CORRECT: python3 scripts/run.py auth_manager.py status python3 scripts/run.py ask_question.py --question "..."
# Do not call files under scripts/ directly. The wrapper owns venv setup. ```
The `run.py` wrapper automatically creates `.venv`, installs dependencies, sets up Chrome, and executes the target script.
## Auth Check (Gate Pattern)
Before any query operation, check authentication:
```bash python3 scripts/run.py auth_manager.py status ```
- If authenticated: proceed with the query - If not authenticated: inform user and guide to setup: "NotebookLM requires Google login. Run `/blog notebooklm setup` to authenticate." - **When called internally** (from blog-write or blog-researcher): return silently with no error if not authenticated. Never block the writing workflow.
## Setup Workflow
For `/blog notebooklm setup`:
```bash # Opens a visible browser for manual Google login (one-time) python3 scripts/run.py auth_manager.py setup ```
Tell the user: "A browser window will open. Please log in to your Google account." Authentication persists via browser profile + cookie injection (hybrid approach).
Other auth commands: ```bash python3 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 ```
## Query Workflow
For `/blog notebooklm ask <question>`:
### Step 1: Check Auth Run auth check (see gate pattern above). If not authenticated, guide to setup.
### Step 2: Resolve Notebook Determine which notebook to query: - If `--notebook-url` provided: validate it is a NotebookLM notebook URL, then use it - If `--notebook-id` provided: look up in library - If neither: use active notebook from library - If no active notebook: show library and ask user to select
### Step 3: Ask the Question ```bash # 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 ```
### Step 4: Analyze and Follow Up Every response ends with a follow-up prompt. **Required behavior:** 1. **STOP**: do not immediately respond to the user 2. **ANALYZE**: compare the answer to the user's original request 3. **IDENTIFY GAPS**: determine if more information is needed 4. **ASK FOLLOW-UP**: if gaps exist, immediately ask a follow-up question 5. **REPEAT**: continue until information is complete 6. **SYNTHESIZE**: combine all answers before responding to the user
## Smart Discovery Workflow
For `/blog notebooklm discover <url>`:
When adding a notebook without knowing its content, query it first:
```bash # 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>" ```
**NEVER guess or use generic descriptions.** Always discover or ask the user.
## Library Management
```bash # 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 stats ```
## Internal API (for blog-write / blog-researcher)
When invoked as a Task subagent from blog-write or blog-researcher:
**Input** (provided by calling skill): - `question`: Research question relevant to the blog topic - `notebook_id` or `notebook_url`: Which notebook to query - `context`: "internal" (signals graceful fallback mode)
**Process:** 1. Check auth status: if not authenticated, return empty result silently 2. Query the notebook with the research question 3. Parse and return structured response
**Output** (returned to calling skill): ```markdown ### NotebookLM Research - **Source:** [Notebook name] - **Question:** [What was asked] - **Answer:** [Source-grounded response from user's documents] - **Underlying Source:** [Public source URL or document identifier] - **Underlying Source Date:** [Publication date or retrieval date] - **Source Quality:** [Tier 1-3 after classifying the underlying document] ```
**Graceful fallback:** If auth is missing or query fails, return immediately with no error. The calling workflow continues with WebSearch-based research. Never block blog-write or blog-rewrite because NotebookLM is unavailable.
## Data Storage
All data stored inside the skill directory: - `data/library.json`: Notebook metadata and library - `data/auth_info.json`: Authentication status - `data/browser_state/`: Chrome profile with cookies
**Security:** All data directories are gitignored. Never commit auth or browser state.
## Error Handling
| Error | Resolution | |-------|-----------| | Not authenticated | Run `/blog notebooklm setup` | | ModuleNotFoundError | Always use `run.py` wrapper | | Browser crash | `cleanup_manager.py --confirm --preserve-library`, then re-auth | | Rate limit (50/day) | Wait until midnight PST or switch Google account | | Notebook not found | Check with `notebook_manager.py list` | | Query timeout (120s) | Retry with simpler question or `--show-browser` to debug | | MCP unavailable (internal) | Return silently: writing workflow uses WebSearch |
## Limitations
- No session persistence (each question = new browser session) - Rate limits on free Google accounts (50 queries/day) - Manual upload required (user must add docs to NotebookLM web UI) - Browser overhead (few seconds per question for launch + teardown) - Local Claude Code only (not available in web UI)
## Reference Documentation
Load on-demand: do NOT load all at startup: - `references/commands.md`: Full CLI commands, parameters, and workflow patterns - `references/troubleshooting.md`: Error solutions, recovery procedures, debugging
Source provenance
Decision snapshot
2,016 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for blog-notebooklm, ready for a manual X post.
blog-notebooklm: Query Google NotebookLM notebooks for source-grounded, citation-backed answers from user-uplo... 2.0K stars https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=x
Listing + install path for blog-notebooklm: https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=x Install: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to AgriciDaniel but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm/audit)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)AgriciDaniel
@agricidaniel
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsSandbox only
Install targets
Codex install prompt
Install the "blog-notebooklm" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/brain/.raw/sources/claude-blog-skill/skills/blog-notebooklm. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: 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 source-grounded research context. 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". After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"agricidaniel-blog-notebooklm","task":"Install blog-notebooklm","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Document processing
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Agent fit
Claude Code + Browser agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Maintenance
fresh
9d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
2.0K
80/100 Quality · 81/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.0K GitHub stars
Repo activity
2.0K stars, 333 forks
Maintenance
9d since push
License
MIT
Install
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklmDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/agricidaniel-blog-notebooklm/install
Agent should check
Copy prompt
Task: Use blog-notebooklm in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/agricidaniel-blog-notebooklm/install
Install command: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/agricidaniel-blog-notebooklm/install
LLM text format
/api/skills/agricidaniel-blog-notebooklm/install?format=text
Find alternatives
/api/skills/search?q=blog-notebooklm&limit=3
Agent prompt
Use blog-notebooklm for this task. Review https://www.openagentskill.com/api/skills/agricidaniel-blog-notebooklm/install, then install with: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklmRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/agricidaniel-blog-notebooklm
LLM text
/api/registry/manifest/agricidaniel-blog-notebooklm?format=text
Install alias
/api/registry/install/agricidaniel-blog-notebooklm
Recommend
/api/registry/recommend?task=Use%20blog-notebooklm%20in%20an%20agent%20workflow&limit=3
Agent fit
Document processing
Use-case tags
Platforms
Claude Code, Browser agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Document processing
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.0K GitHub stars
Stars/forks activity
PASS2.0K stars, 333 forks; issue activity unavailable in current metadata
Recent maintenance
PASS9d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Parse messy files
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Search private knowledge
I need my agent to build a RAG workflow over documents and retrieve reliable context.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Scrape, clean, and reuse web data
A practical workflow for agents that crawl public pages, extract clean content, normalize data, and hand it to downstream research or RAG workflows.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: blog-notebooklm description: > 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 source-grounded research context. 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". user-invokable: true argument-hint: "[ask|discover|library|setup|status|cleanup] [question-or-url]" license: MIT metadata: author: AgriciDaniel version: "1.11.0" source: "https://github.com/PleasePrompto/notebooklm-skill" ---
# Blog NotebookLM: Source-Grounded Research from Your Documents
Query Google NotebookLM notebooks directly from Claude Code for citation-backed answers from Gemini. Each question opens a headless browser session, retrieves the answer from your uploaded documents, and closes. Responses are source-grounded model answers, not proof of truth: uploaded documents may be primary or secondary, and the answer can still omit context.
Answers satisfy the FLOW evidence triple only when the returned citation includes a verifiable underlying source URL plus a publication or retrieval date. Use the underlying source title as the inline citation. Do not cite the private NotebookLM URL as the bibliography entry for public content.
## Quick Reference
| Command | What it does | |---------|-------------| | `/blog notebooklm ask <question>` | Query a notebook for source-grounded answers | | `/blog notebooklm discover <url>` | Smart-discover notebook content before cataloging | | `/blog notebooklm library list` | List all notebooks in library | | `/blog notebooklm library add <url>` | Add a notebook to library | | `/blog notebooklm library search <query>` | Search notebooks by keyword | | `/blog notebooklm library remove <id>` | Remove a notebook from library | | `/blog notebooklm setup` | One-time Google authentication (browser visible) | | `/blog notebooklm status` | Check authentication status | | `/blog notebooklm cleanup` | Clean browser state (preserves library) |
## Prerequisites
- Google account with NotebookLM access - Python 3.11+ (venv managed automatically by `run.py`) - Google Chrome (installed automatically on first run via Patchright) - One-time authentication setup (interactive Google login in visible browser)
## Always Use run.py Wrapper
**NEVER call scripts directly. ALWAYS use `python3 scripts/run.py [script]`:**
```bash # CORRECT: python3 scripts/run.py auth_manager.py status python3 scripts/run.py ask_question.py --question "..."
# Do not call files under scripts/ directly. The wrapper owns venv setup. ```
The `run.py` wrapper automatically creates `.venv`, installs dependencies, sets up Chrome, and executes the target script.
## Auth Check (Gate Pattern)
Before any query operation, check authentication:
```bash python3 scripts/run.py auth_manager.py status ```
- If authenticated: proceed with the query - If not authenticated: inform user and guide to setup: "NotebookLM requires Google login. Run `/blog notebooklm setup` to authenticate." - **When called internally** (from blog-write or blog-researcher): return silently with no error if not authenticated. Never block the writing workflow.
## Setup Workflow
For `/blog notebooklm setup`:
```bash # Opens a visible browser for manual Google login (one-time) python3 scripts/run.py auth_manager.py setup ```
Tell the user: "A browser window will open. Please log in to your Google account." Authentication persists via browser profile + cookie injection (hybrid approach).
Other auth commands: ```bash python3 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 ```
## Query Workflow
For `/blog notebooklm ask <question>`:
### Step 1: Check Auth Run auth check (see gate pattern above). If not authenticated, guide to setup.
### Step 2: Resolve Notebook Determine which notebook to query: - If `--notebook-url` provided: validate it is a NotebookLM notebook URL, then use it - If `--notebook-id` provided: look up in library - If neither: use active notebook from library - If no active notebook: show library and ask user to select
### Step 3: Ask the Question ```bash # 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 ```
### Step 4: Analyze and Follow Up Every response ends with a follow-up prompt. **Required behavior:** 1. **STOP**: do not immediately respond to the user 2. **ANALYZE**: compare the answer to the user's original request 3. **IDENTIFY GAPS**: determine if more information is needed 4. **ASK FOLLOW-UP**: if gaps exist, immediately ask a follow-up question 5. **REPEAT**: continue until information is complete 6. **SYNTHESIZE**: combine all answers before responding to the user
## Smart Discovery Workflow
For `/blog notebooklm discover <url>`:
When adding a notebook without knowing its content, query it first:
```bash # 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>" ```
**NEVER guess or use generic descriptions.** Always discover or ask the user.
## Library Management
```bash # 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 stats ```
## Internal API (for blog-write / blog-researcher)
When invoked as a Task subagent from blog-write or blog-researcher:
**Input** (provided by calling skill): - `question`: Research question relevant to the blog topic - `notebook_id` or `notebook_url`: Which notebook to query - `context`: "internal" (signals graceful fallback mode)
**Process:** 1. Check auth status: if not authenticated, return empty result silently 2. Query the notebook with the research question 3. Parse and return structured response
**Output** (returned to calling skill): ```markdown ### NotebookLM Research - **Source:** [Notebook name] - **Question:** [What was asked] - **Answer:** [Source-grounded response from user's documents] - **Underlying Source:** [Public source URL or document identifier] - **Underlying Source Date:** [Publication date or retrieval date] - **Source Quality:** [Tier 1-3 after classifying the underlying document] ```
**Graceful fallback:** If auth is missing or query fails, return immediately with no error. The calling workflow continues with WebSearch-based research. Never block blog-write or blog-rewrite because NotebookLM is unavailable.
## Data Storage
All data stored inside the skill directory: - `data/library.json`: Notebook metadata and library - `data/auth_info.json`: Authentication status - `data/browser_state/`: Chrome profile with cookies
**Security:** All data directories are gitignored. Never commit auth or browser state.
## Error Handling
| Error | Resolution | |-------|-----------| | Not authenticated | Run `/blog notebooklm setup` | | ModuleNotFoundError | Always use `run.py` wrapper | | Browser crash | `cleanup_manager.py --confirm --preserve-library`, then re-auth | | Rate limit (50/day) | Wait until midnight PST or switch Google account | | Notebook not found | Check with `notebook_manager.py list` | | Query timeout (120s) | Retry with simpler question or `--show-browser` to debug | | MCP unavailable (internal) | Return silently: writing workflow uses WebSearch |
## Limitations
- No session persistence (each question = new browser session) - Rate limits on free Google accounts (50 queries/day) - Manual upload required (user must add docs to NotebookLM web UI) - Browser overhead (few seconds per question for launch + teardown) - Local Claude Code only (not available in web UI)
## Reference Documentation
Load on-demand: do NOT load all at startup: - `references/commands.md`: Full CLI commands, parameters, and workflow patterns - `references/troubleshooting.md`: Error solutions, recovery procedures, debugging
Source provenance
Decision snapshot
2,016 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for blog-notebooklm, ready for a manual X post.
blog-notebooklm: Query Google NotebookLM notebooks for source-grounded, citation-backed answers from user-uplo... 2.0K stars https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=x
Listing + install path for blog-notebooklm: https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=x Install: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to AgriciDaniel but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm/audit)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)AgriciDaniel
@agricidaniel
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsSandbox only
Install targets
Codex install prompt
Install the "blog-notebooklm" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/brain/.raw/sources/claude-blog-skill/skills/blog-notebooklm. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: 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 source-grounded research context. 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". After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"agricidaniel-blog-notebooklm","task":"Install blog-notebooklm","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Document processing
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Agent fit
Claude Code + Browser agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Maintenance
fresh
9d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
2.0K
80/100 Quality · 81/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.0K GitHub stars
Repo activity
2.0K stars, 333 forks
Maintenance
9d since push
License
MIT
Install
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add AgriciDaniel/claude-blog --skill blog-notebooklmDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/agricidaniel-blog-notebooklm/install
Agent should check
Copy prompt
Task: Use blog-notebooklm in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20blog-notebooklm%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/agricidaniel-blog-notebooklm/install
Install command: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/agricidaniel-blog-notebooklm/install
LLM text format
/api/skills/agricidaniel-blog-notebooklm/install?format=text
Find alternatives
/api/skills/search?q=blog-notebooklm&limit=3
Agent prompt
Use blog-notebooklm for this task. Review https://www.openagentskill.com/api/skills/agricidaniel-blog-notebooklm/install, then install with: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklmRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/agricidaniel-blog-notebooklm
LLM text
/api/registry/manifest/agricidaniel-blog-notebooklm?format=text
Install alias
/api/registry/install/agricidaniel-blog-notebooklm
Recommend
/api/registry/recommend?task=Use%20blog-notebooklm%20in%20an%20agent%20workflow&limit=3
Agent fit
Document processing
Use-case tags
Platforms
Claude Code, Browser agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Document processing
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.0K GitHub stars
Stars/forks activity
PASS2.0K stars, 333 forks; issue activity unavailable in current metadata
Recent maintenance
PASS9d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Parse messy files
I need my agent to read PDFs, extract tables, and turn documents into structured data.
Search private knowledge
I need my agent to build a RAG workflow over documents and retrieve reliable context.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Scrape, clean, and reuse web data
A practical workflow for agents that crawl public pages, extract clean content, normalize data, and hand it to downstream research or RAG workflows.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: blog-notebooklm description: > 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 source-grounded research context. 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". user-invokable: true argument-hint: "[ask|discover|library|setup|status|cleanup] [question-or-url]" license: MIT metadata: author: AgriciDaniel version: "1.11.0" source: "https://github.com/PleasePrompto/notebooklm-skill" ---
# Blog NotebookLM: Source-Grounded Research from Your Documents
Query Google NotebookLM notebooks directly from Claude Code for citation-backed answers from Gemini. Each question opens a headless browser session, retrieves the answer from your uploaded documents, and closes. Responses are source-grounded model answers, not proof of truth: uploaded documents may be primary or secondary, and the answer can still omit context.
Answers satisfy the FLOW evidence triple only when the returned citation includes a verifiable underlying source URL plus a publication or retrieval date. Use the underlying source title as the inline citation. Do not cite the private NotebookLM URL as the bibliography entry for public content.
## Quick Reference
| Command | What it does | |---------|-------------| | `/blog notebooklm ask <question>` | Query a notebook for source-grounded answers | | `/blog notebooklm discover <url>` | Smart-discover notebook content before cataloging | | `/blog notebooklm library list` | List all notebooks in library | | `/blog notebooklm library add <url>` | Add a notebook to library | | `/blog notebooklm library search <query>` | Search notebooks by keyword | | `/blog notebooklm library remove <id>` | Remove a notebook from library | | `/blog notebooklm setup` | One-time Google authentication (browser visible) | | `/blog notebooklm status` | Check authentication status | | `/blog notebooklm cleanup` | Clean browser state (preserves library) |
## Prerequisites
- Google account with NotebookLM access - Python 3.11+ (venv managed automatically by `run.py`) - Google Chrome (installed automatically on first run via Patchright) - One-time authentication setup (interactive Google login in visible browser)
## Always Use run.py Wrapper
**NEVER call scripts directly. ALWAYS use `python3 scripts/run.py [script]`:**
```bash # CORRECT: python3 scripts/run.py auth_manager.py status python3 scripts/run.py ask_question.py --question "..."
# Do not call files under scripts/ directly. The wrapper owns venv setup. ```
The `run.py` wrapper automatically creates `.venv`, installs dependencies, sets up Chrome, and executes the target script.
## Auth Check (Gate Pattern)
Before any query operation, check authentication:
```bash python3 scripts/run.py auth_manager.py status ```
- If authenticated: proceed with the query - If not authenticated: inform user and guide to setup: "NotebookLM requires Google login. Run `/blog notebooklm setup` to authenticate." - **When called internally** (from blog-write or blog-researcher): return silently with no error if not authenticated. Never block the writing workflow.
## Setup Workflow
For `/blog notebooklm setup`:
```bash # Opens a visible browser for manual Google login (one-time) python3 scripts/run.py auth_manager.py setup ```
Tell the user: "A browser window will open. Please log in to your Google account." Authentication persists via browser profile + cookie injection (hybrid approach).
Other auth commands: ```bash python3 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 ```
## Query Workflow
For `/blog notebooklm ask <question>`:
### Step 1: Check Auth Run auth check (see gate pattern above). If not authenticated, guide to setup.
### Step 2: Resolve Notebook Determine which notebook to query: - If `--notebook-url` provided: validate it is a NotebookLM notebook URL, then use it - If `--notebook-id` provided: look up in library - If neither: use active notebook from library - If no active notebook: show library and ask user to select
### Step 3: Ask the Question ```bash # 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 ```
### Step 4: Analyze and Follow Up Every response ends with a follow-up prompt. **Required behavior:** 1. **STOP**: do not immediately respond to the user 2. **ANALYZE**: compare the answer to the user's original request 3. **IDENTIFY GAPS**: determine if more information is needed 4. **ASK FOLLOW-UP**: if gaps exist, immediately ask a follow-up question 5. **REPEAT**: continue until information is complete 6. **SYNTHESIZE**: combine all answers before responding to the user
## Smart Discovery Workflow
For `/blog notebooklm discover <url>`:
When adding a notebook without knowing its content, query it first:
```bash # 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>" ```
**NEVER guess or use generic descriptions.** Always discover or ask the user.
## Library Management
```bash # 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 stats ```
## Internal API (for blog-write / blog-researcher)
When invoked as a Task subagent from blog-write or blog-researcher:
**Input** (provided by calling skill): - `question`: Research question relevant to the blog topic - `notebook_id` or `notebook_url`: Which notebook to query - `context`: "internal" (signals graceful fallback mode)
**Process:** 1. Check auth status: if not authenticated, return empty result silently 2. Query the notebook with the research question 3. Parse and return structured response
**Output** (returned to calling skill): ```markdown ### NotebookLM Research - **Source:** [Notebook name] - **Question:** [What was asked] - **Answer:** [Source-grounded response from user's documents] - **Underlying Source:** [Public source URL or document identifier] - **Underlying Source Date:** [Publication date or retrieval date] - **Source Quality:** [Tier 1-3 after classifying the underlying document] ```
**Graceful fallback:** If auth is missing or query fails, return immediately with no error. The calling workflow continues with WebSearch-based research. Never block blog-write or blog-rewrite because NotebookLM is unavailable.
## Data Storage
All data stored inside the skill directory: - `data/library.json`: Notebook metadata and library - `data/auth_info.json`: Authentication status - `data/browser_state/`: Chrome profile with cookies
**Security:** All data directories are gitignored. Never commit auth or browser state.
## Error Handling
| Error | Resolution | |-------|-----------| | Not authenticated | Run `/blog notebooklm setup` | | ModuleNotFoundError | Always use `run.py` wrapper | | Browser crash | `cleanup_manager.py --confirm --preserve-library`, then re-auth | | Rate limit (50/day) | Wait until midnight PST or switch Google account | | Notebook not found | Check with `notebook_manager.py list` | | Query timeout (120s) | Retry with simpler question or `--show-browser` to debug | | MCP unavailable (internal) | Return silently: writing workflow uses WebSearch |
## Limitations
- No session persistence (each question = new browser session) - Rate limits on free Google accounts (50 queries/day) - Manual upload required (user must add docs to NotebookLM web UI) - Browser overhead (few seconds per question for launch + teardown) - Local Claude Code only (not available in web UI)
## Reference Documentation
Load on-demand: do NOT load all at startup: - `references/commands.md`: Full CLI commands, parameters, and workflow patterns - `references/troubleshooting.md`: Error solutions, recovery procedures, debugging
Source provenance
Decision snapshot
2,016 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for blog-notebooklm, ready for a manual X post.
blog-notebooklm: Query Google NotebookLM notebooks for source-grounded, citation-backed answers from user-uplo... 2.0K stars https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=x
Listing + install path for blog-notebooklm: https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=x Install: npx skills add AgriciDaniel/claude-blog --skill blog-notebooklm
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to AgriciDaniel but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm/audit)
[](https://www.openagentskill.com/skills/agricidaniel-blog-notebooklm?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)AgriciDaniel
@agricidaniel
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsPermission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness