AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Notebooklm Research

skill-claude-world-notebooklm-skill-notebooklm-skill · by claude-world

>

No reviews yet
0 installs
21 views
0.0% view→install

Install

$ agentstack add skill-claude-world-notebooklm-skill-notebooklm-skill

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-claude-world-notebooklm-skill-notebooklm-skill)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Notebooklm Research? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

NotebookLM Research Agent

A fully autonomous AI research agent that ingests sources into Google NotebookLM, runs deep web research, synthesizes knowledge through cited Q&A and 9 downloadable artifact types, creates polished content drafts, and optionally publishes to social platforms.

Zero-cost research engine -- NotebookLM is free. No API keys. No per-query charges.

Authentication

NotebookLM uses RPC/HTTP calls after a one-time browser cookie auth. No browser automation per operation -- the session is stored and reused.

~/.notebooklm/storage_state.json

Login once via the built-in CLI:

notebooklm login              # One-time browser auth, saves session
notebooklm login --check      # Verify stored session is still valid

The session persists until Google expires it (typically weeks). All scripts and the MCP server auto-load the stored session. No API keys or environment variables needed.

Architecture Overview

Core Principle: NotebookLM provides cited research, Claude creates content.

NotebookLM handles source ingestion, indexing, deep web research, cited answers, and native artifact generation (9 downloadable types). Claude uses that research output to write original articles, social posts, and reports. The pipeline is zero-cost and produces citation-backed content.

| Component | Role | |---|---| | notebooklm-py (v0.3.4) | Python client for NotebookLM (8 sub-APIs, 50+ methods, built-in CLI) | | notebooklm CLI | Built-in CLI: notebooklm login, notebook, source, chat, generate, download, research, share | | MCP Server (mcp_server/) | FastMCP server exposing 13 tools for Claude Code / Cursor / Gemini CLI | | Wrapper CLI (scripts/) | Our higher-level wrappers: notebooklm_client.py, pipeline.py | | LLM (Claude) | Content creator (writes original text using NotebookLM research) | | trend-pulse (optional) | Trending topic discovery for research-to-content pipelines | | threads-viral-agent (optional) | Social publishing for content distribution |

┌──────────────────────────────────────────────────────────────────────────────────┐
│                          NOTEBOOKLM RESEARCH AGENT                              │
├──────────────┬──────────────┬─────────────────┬─────────────────────────────────┤
│  Phase 1     │  Phase 2     │   Phase 3       │    Phase 4                      │
│  INGEST      │  SYNTHESIZE  │   CREATE        │    PUBLISH (optional)           │
│              │              │                 │                                 │
│ Sources:     │ Chat:        │ Claude writes:  │ threads-viral-agent:            │
│  URL         │  ask()       │  Articles ────→ │  → Threads                      │
│  Text        │  → cited     │  Social posts → │  → Instagram                    │
│  PDF/DOCX    │    answers   │  Newsletters  → │  → Facebook                     │
│  YouTube     │  → follow-up │  Reports ─────→ │                                 │
│  Google Drive│  → citations │                 │ Direct output:                  │
│  File upload │              │ trend-pulse     │  → Markdown file                │
│              │ Artifacts    │  → topic ideas  │  → JSON data                    │
│ Research:    │ (9 types):   │                 │  → Newsletter draft             │
│  web (fast)  │  audio       │ NotebookLM      │  → Podcast MP4                  │
│  web (deep)  │  video       │ artifacts used  │  → Video MP4                    │
│  drive       │  cinematic*  │ directly:       │  → Slide deck PDF               │
│              │  slide_deck  │  → Podcast      │  → Quiz / Flashcards            │
│ Auto-import  │  report      │  → Report       │                                 │
│ discovered   │  quiz        │  → Data table   │                                 │
│ sources      │  flashcards  │  → Infographic   │                                 │
│              │  mind_map    │                 │ * cinematic = Veo 3,            │
│              │  infographic │                 │   AI Ultra only                 │
│              │  data_table  │                 │                                 │
│              │  study_guide │                 │                                 │
└──────────────┴──────────────┴─────────────────┴─────────────────────────────────┘

8 Sub-APIs (notebooklm-py v0.3.4)

| Sub-API | Accessor | Description | |---|---|---| | Notebooks | client.notebooks | Create, list, get, delete, rename, describe, share | | Sources | client.sources | Add URL/text/file/Drive, list, delete, rename, refresh, guide, fulltext, wait | | Artifacts | client.artifacts | Generate 9 downloadable types, poll status, download, list, delete, rename, revise slides | | Chat | client.chat | Ask with citations, follow-up, conversation history, configure persona | | Research | client.research | Web/Drive research, poll results, import discovered sources | | Notes | client.notes | Create, list, update, delete text notes and mind maps | | Settings | client.settings | User settings (output language) | | Sharing | client.sharing | Public links, user permissions, view levels |

Phase 1: INGEST -- Source Collection

Create a notebook and populate it with sources. NotebookLM accepts 8 source types: URLs, text, PDF, DOCX, Markdown, CSV, YouTube, and Google Drive documents.

Create Notebook and Add Sources

Built-in CLI (notebooklm-py):

# Create a notebook
notebooklm notebook create "AI Agents Research"

# Add sources
notebooklm source add NOTEBOOK_ID --url "https://arxiv.org/abs/2401.12345"
notebooklm source add NOTEBOOK_ID --url "https://youtube.com/watch?v=VIDEO_ID"
notebooklm source add NOTEBOOK_ID --text "Custom Notes" --content "Full text here..."
notebooklm source add NOTEBOOK_ID --file /path/to/document.pdf

Our wrapper CLI (global command or scripts/notebooklm_client.py):

# After pip install ., use global commands:
# notebooklm-skill create --title "AI Agents Research" --sources url1 url2

# Or use scripts directly:
python3 scripts/notebooklm_client.py create \
  --title "AI Agents Research" \
  --sources \
    "https://arxiv.org/abs/2401.12345" \
    "https://blog.example.com/ai-agents-2026"

# Add more sources to existing notebook
python3 scripts/notebooklm_client.py add-source \
  --notebook NOTEBOOK_ID \
  --url "https://another-source.com/article"

# Add text source (pasted content)
python3 scripts/notebooklm_client.py add-source \
  --notebook NOTEBOOK_ID \
  --text "Full text content here..." \
  --text-title "Title of Source"

# Add file (PDF, Markdown, DOCX, CSV)
python3 scripts/notebooklm_client.py add-source \
  --notebook NOTEBOOK_ID \
  --file "/path/to/document.pdf"

# Add YouTube video (auto-extracts transcript)
python3 scripts/notebooklm_client.py add-source \
  --notebook NOTEBOOK_ID \
  --url "https://youtube.com/watch?v=VIDEO_ID"

# Add Google Drive document
python3 scripts/notebooklm_client.py add-source \
  --notebook NOTEBOOK_ID \
  --drive-id "DRIVE_FILE_ID" \
  --drive-title "Document Title"

Deep Web Research (auto-discover sources)

NotebookLM can search the web or Google Drive and auto-import relevant sources. This is one of the most powerful features -- it finds sources you did not know existed.

Built-in CLI:

notebooklm research start NOTEBOOK_ID "latest advances in AI agents"
notebooklm research poll NOTEBOOK_ID

Our wrapper CLI:

# Fast web research (quick scan, returns URLs)
python3 scripts/notebooklm_client.py research \
  --notebook NOTEBOOK_ID \
  --query "latest advances in AI agents" \
  --source web \
  --mode fast

# Deep web research (thorough analysis, returns report + URLs)
python3 scripts/notebooklm_client.py research \
  --notebook NOTEBOOK_ID \
  --query "comparison of agent frameworks" \
  --source web \
  --mode deep

# Google Drive research
python3 scripts/notebooklm_client.py research \
  --notebook NOTEBOOK_ID \
  --query "project notes on agent design" \
  --source drive

# Poll results and auto-import top discovered sources
python3 scripts/notebooklm_client.py research-poll \
  --notebook NOTEBOOK_ID \
  --import-top 5

Research modes:

| Mode | Speed | Output | Best For | |---|---|---|---| | fast | 10-30 sec | URL list + brief summary | Quick source discovery | | deep | 1-5 min | Full research report (Markdown) + URLs | Thorough analysis, complex topics |

Deep research returns a comprehensive Markdown report synthesizing findings across all discovered sources -- usable as-is or as input for Claude.

Source Types Reference

| Type | Method | CLI Flag | Notes | |---|---|---|---| | Web URL | add_url(url) | --url | Any web page, auto-indexes content | | YouTube | add_url(youtube_url) | --url | Auto-detects YouTube, extracts transcript | | PDF | add_file(path) | --file | Resumable upload, large files OK | | DOCX | add_file(path) | --file | Word documents | | Markdown | add_file(path) | --file | .md files | | CSV | add_file(path) | --file | Spreadsheet data | | Text | add_text(title, content) | --text --content | Pasted/copied content | | Google Docs | add_drive(file_id, title) | --drive-id --drive-title | Requires Drive access | | Google Slides | add_drive(file_id, title, mime) | --drive-id --drive-title | Presentation content | | Google Sheets | add_drive(file_id, title, mime) | --drive-id --drive-title | Spreadsheet data | | Image | add_file(path) | --file | Image content (OCR) |

Source Limits and Wait Behavior

  • Max 50 sources per notebook
  • Sources require processing time (5-60 seconds depending on size/type)
  • Use --wait flag to block until source is ready
  • Use wait_for_sources() for batch operations
  • Source statuses: 1=processing, 2=ready, 3=error, 4=preparing

Python API (for custom scripts)

from notebooklm import NotebookLMClient

async with await NotebookLMClient.from_storage() as client:
    # Create notebook
    nb = await client.notebooks.create("AI Research")

    # Add sources
    src1 = await client.sources.add_url(nb.id, "https://example.com", wait=True)
    src2 = await client.sources.add_text(nb.id, "Notes", "Content...", wait=True)
    src3 = await client.sources.add_file(nb.id, "/path/to/doc.pdf", wait=True)

    # Deep web research
    task = await client.research.start(nb.id, "AI agents 2026", mode="deep")
    results = await client.research.poll(nb.id)  # Poll until complete
    imported = await client.research.import_sources(nb.id, task["task_id"], results["sources"][:5])

Phase 2: SYNTHESIZE -- Research & Analysis

Once sources are ingested, use NotebookLM to extract knowledge through cited Q&A and generate 9 types of downloadable native artifacts.

Ask Questions (Cited Answers)

Every answer includes source citations with exact passage references.

Built-in CLI:

notebooklm chat NOTEBOOK_ID "What are the key differences between ReAct and Reflexion?"
notebooklm chat NOTEBOOK_ID "Can you elaborate on point 3?" --conversation CONV_ID

Our wrapper CLI:

# Ask a question -- answer includes source citations
python3 scripts/notebooklm_client.py ask \
  --notebook NOTEBOOK_ID \
  --query "What are the key differences between ReAct and Reflexion agents?"

# Ask with specific sources only
python3 scripts/notebooklm_client.py ask \
  --notebook NOTEBOOK_ID \
  --query "Summarize the main findings" \
  --sources SOURCE_ID_1 SOURCE_ID_2

# Follow-up question (maintains conversation context)
python3 scripts/notebooklm_client.py ask \
  --notebook NOTEBOOK_ID \
  --query "Can you elaborate on point 3?" \
  --conversation CONVERSATION_ID

Chat Configuration

NotebookLM's chat can be configured for different interaction styles:

| Mode | Description | Use Case | |---|---|---| | default | Balanced answers | General research | | learning_guide | Socratic, asks follow-up questions | Study, learning | | concise | Short, direct answers | Quick lookups | | detailed | Thorough, comprehensive answers | Deep analysis |

Python API:

from notebooklm.models import ChatMode, ChatResponseLength

await client.chat.set_mode(nb.id, ChatMode.LEARNING_GUIDE)
await client.chat.configure(nb.id, response_length=ChatResponseLength.LONGER)

Generate Artifacts (10 Types)

NotebookLM natively generates 9 downloadable artifact types from ingested sources. These are generated server-side by Google -- no LLM cost on our end.

> Warning: infographic generation works but download is unreliable (fragile API > structure parsing). Use slides instead for downloadable visual content.

Built-in CLI:

notebooklm generate audio NOTEBOOK_ID
notebooklm generate video NOTEBOOK_ID
notebooklm generate report NOTEBOOK_ID --format briefing_doc
notebooklm generate quiz NOTEBOOK_ID
notebooklm generate flashcards NOTEBOOK_ID
# notebooklm generate infographic NOTEBOOK_ID  # ⚠️ download unreliable
notebooklm generate slide-deck NOTEBOOK_ID
notebooklm generate data-table NOTEBOOK_ID
notebooklm generate mind-map NOTEBOOK_ID

Our wrapper CLI:

# 1. Audio Overview (podcast-style discussion)
python3 scripts/notebooklm_client.py generate audio \
  --notebook NOTEBOOK_ID \
  --language en \
  --format deep_dive \
  --length default \
  --instructions "Focus on practical implications"

# 2. Video Overview
python3 scripts/notebooklm_client.py generate video \
  --notebook NOTEBOOK_ID \
  --format explainer \
  --style whiteboard

# 3. Cinematic Video (Veo 3, requires AI Ultra subscription)
python3 scripts/notebooklm_client.py generate cinematic-video \
  --notebook NOTEBOOK_ID \
  --instructions "Dramatic visual storytelling"

# 4. Slide Deck
python3 scripts/notebooklm_client.py generate slide-deck \
  --notebook NOTEBOOK_ID \
  --format detailed_deck

# 5. Report (Briefing Doc / Study Guide / Blog Post / Custom)
python3 scripts/notebooklm_client.py generate report \
  --notebook NOTEBOOK_ID \
  --format briefing_doc

# 6. Study Guide (convenience shortcut for report format=study_guide)
python3 scripts/notebooklm_client.py generate report \
  --notebook NOTEBOOK_ID \
  --format study_guide

# 7. Quiz
python3 scripts/notebooklm_client.py generate quiz \
  --notebook NOTEBOOK_ID \
  --quantity standard \
  --difficulty medium

# 8. Flashcards
python3 scripts/notebooklm_client.py generate flashcards \
  --notebook NOTEBOOK_ID

# 9. Mind Map
python3 scripts/notebooklm_client.py generate mind-map \
  --notebook NOTEBOOK_ID

# 10. Infographic — ⚠️ download unreliable, use slides instead
# python3 scripts/notebooklm_client.py generate infographic \
#   --notebook NOTEBOOK_ID \
#   --orientation landscape \
#   --detail standard

# 11. Data Table
python3 scripts/notebooklm_client.py generate data-table \
  --notebook NOTEBOOK_ID \
  --instructions "Compare frameworks by features, performance, and community size"

Artifact Generation Options

Audio formats:

| Format | Duration | Style | Best For | |---|---|---|---| | deep_dive | 15-30 min | Thorough exploration | Complex topics | | brief | 3-5 min | Quick overview | News updates | | critique | 10-20 min | Critical analysis | Reviews, evaluations | | debate | 10-20 min | Two opposing views | Controversial topics |

Audio lengths: short (~5 min), default (~10-15 min), long (~20-30 min)

Video formats: explainer, brief, cinematic (AI Ultra only)

Video styles: auto_select, classic, whiteboard, conversational, dynamic

Report formats: briefing_doc, study_guide, blog_post, custom (with --prompt)

Quiz options: quantity (fewer, standard, more), difficulty (easy, medium, hard)

Infographic options: orientation (landscape, portrait, square), detail (concise, standard, detailed)

Slide deck formats: detailed_deck, presenter_slides

D

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.