Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

noteboklm

v1.0.0

Complete Google NotebookLM integration — add sources, ask questions, generate all Studio content (podcast, video, slide deck, quiz, flashcards, infographic,...

0· 90·0 current·0 all-time
byNiyazi Sönmez@nikolayco

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for nikolayco/noteboklm.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "noteboklm" (nikolayco/noteboklm) from ClawHub.
Skill page: https://clawhub.ai/nikolayco/noteboklm
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install noteboklm

ClawHub CLI

Package manager switcher

npx clawhub@latest install noteboklm
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The SKILL.md repeatedly instructs use of a 'notebooklm' CLI (create, source add, download, auth/login) and references the upstream library teng-lin/notebooklm-py, but the skill has no install spec, declares no required binaries, and requests no credentials. That is incoherent: a CLI-based integration normally must either bundle an installer or declare the binary dependency. README claims OpenClaw will install the library, but there is no concrete install mechanism here.
!
Instruction Scope
Runtime instructions direct the agent to run commands that read and write data (add local files like ./file.pdf, add Drive docs by ID, download artifacts to local filesystem, save notes), invoke interactive Google login, and manage sharing/permissions. Autonomy rules allow many mutating operations (create notebooks, add sources, ask) to run without user confirmation. The instructions thus permit access to local files and the user's Google Drive/account and the skill gives the agent discretion to import and export data — scope is broader than what the metadata declares and could enable unintended data movement.
Install Mechanism
This is an instruction-only skill (no install spec, no code files). That lowers some risk because nothing is written by the skill itself, but it also creates a gap: the SKILL.md and README expect an external 'notebooklm' CLI/library to exist (and README claims OpenClaw will install it) but no concrete, auditable install steps or trusted release URL are provided. Additionally the upstream library uses undocumented Google APIs (explicitly stated), which increases fragility and audit difficulty.
!
Credentials
The skill requests no environment variables or declared credentials, yet it instructs actions requiring Google account OAuth (login) and access to Drive and sources. While browser-based OAuth may be reasonable, the skill does not declare required OAuth scopes or warn about Drive permission use. The ability to add sources (including local files) and programmatically manage sharing/permissions is high-privilege relative to the lack of declared credentials and scope information.
Persistence & Privilege
always:false (expected) and the skill does not request system-wide config changes or other skills' settings. However, normal autonomous invocation combined with the skill's allowed 'autonomy rules' (create, source add, ask) could let an agent perform uploads/downloads and change NotebookLM content without prompting. This combination of autonomy and wide I/O access increases blast radius even though persistence flags themselves are not elevated.
What to consider before installing
This skill looks plausible as a NotebookLM CLI wrapper, but several things don't add up: there is no install spec for the required 'notebooklm' CLI, no declared OAuth scopes or credential requirements, and the instructions allow the agent to import local files and access Google Drive without clearly asking the user. Before installing or enabling this skill: (1) ask the publisher for a concrete install plan or a trusted upstream release URL (GitHub release) so you can audit what will be installed; (2) request the exact OAuth scopes and review them (especially Drive file read/write and sharing scopes); (3) require the skill to ask for confirmation before any source add/upload/download/share actions (change autonomy rules); (4) inspect teng-lin/notebooklm-py source code yourself or ask for a code review; and (5) avoid granting it access to sensitive local files or broad Drive permissions until you can verify origin and behavior. If you cannot verify who installs the binary or the OAuth scopes, treat this skill as high risk and do not enable it for autonomous use.

Like a lobster shell, security has layers — review code before you run it.

latestvk97fc3fcpt33h8j6tqe4kzb7d583z2ee
90downloads
0stars
1versions
Updated 4w ago
v1.0.0
MIT-0

NotebookLM Skill

Full programmatic access to Google NotebookLM — including features not exposed in the web UI.

Library: teng-lin/notebooklm-py ⚠️ Unofficial — Uses undocumented Google APIs. May break without notice.


Prerequisites

Authentication must be active before any command:

notebooklm login          # Opens browser — log in with Google account
notebooklm list           # Confirm auth works
notebooklm auth check     # Diagnose auth issues
notebooklm auth check --test   # Full validation including network test

Verify readiness before any workflow:

notebooklm status         # Active notebook and session
notebooklm doctor         # Environment health check
notebooklm doctor --fix   # Auto-fix issues

When This Skill Activates

Explicit: /notebooklm, "use notebooklm", "with notebooklm"

Intent detection:

  • "Create a podcast / audio overview about [topic]"
  • "Summarize these URLs / documents"
  • "Generate a quiz from my research"
  • "Make flashcards for studying"
  • "Generate a video explainer"
  • "Build a presentation / slide deck"
  • "Make an infographic"
  • "Create a mind map"
  • "Add these sources to NotebookLM"
  • "Research [topic] and import sources"
  • "Analyze these documents"

Autonomy Rules

Run without confirmation:

  • notebooklm status, list, doctor — read-only
  • notebooklm auth check — diagnostics
  • notebooklm create — create notebook
  • notebooklm use <id> — set context (⚠️ single-agent only; use -n in parallel)
  • notebooklm source add — add sources
  • notebooklm ask "..." — chat (without --save-as-note)
  • notebooklm language list/get/set — language settings
  • notebooklm profile list/create/switch — profile management

Ask user first:

  • notebooklm delete — destructive
  • notebooklm generate * — long-running, may hit rate limits
  • notebooklm download * — writes to filesystem
  • notebooklm ask "..." --save-as-note — writes a note
  • notebooklm history --save — writes a note

Quick Reference

TaskCommand
Log innotebooklm login
List notebooksnotebooklm list
Create notebooknotebooklm create "Title"
Set active notebooknotebooklm use <notebook_id>
Show contextnotebooklm status
Add URLnotebooklm source add "https://..."
Add filenotebooklm source add ./file.pdf
Add YouTubenotebooklm source add "https://youtube.com/..."
Add Drive docnotebooklm source add-drive <file_id> "Title"
List sourcesnotebooklm source list
Web research (fast)notebooklm source add-research "query"
Web research (deep)notebooklm source add-research "query" --mode deep --no-wait
Ask a questionnotebooklm ask "question"
Ask with referencesnotebooklm ask "question" --json
Save answer as notenotebooklm ask "question" --save-as-note
Chat historynotebooklm history
Generate podcastnotebooklm generate audio "instructions"
Generate videonotebooklm generate video
Generate cinematic videonotebooklm generate cinematic-video "description"
Generate slide decknotebooklm generate slide-deck
Generate quiznotebooklm generate quiz
Generate flashcardsnotebooklm generate flashcards
Generate infographicnotebooklm generate infographic
Generate mind mapnotebooklm generate mind-map
Generate data tablenotebooklm generate data-table "description"
Generate reportnotebooklm generate report --format study-guide
Check artifact statusnotebooklm artifact list
Wait for artifactnotebooklm artifact wait <artifact_id>
Download podcastnotebooklm download audio ./podcast.mp3
Download videonotebooklm download video ./video.mp4
Download slides (PDF)notebooklm download slide-deck ./slides.pdf
Download slides (PPTX)notebooklm download slide-deck ./slides.pptx --format pptx
Download quiznotebooklm download quiz quiz.json
Set languagenotebooklm language set en

Sources

Supported Types

URLs, YouTube videos, PDFs, text/Markdown/Word files, Google Drive docs, audio, video, images, pasted text.

notebooklm source add "https://example.com/article"
notebooklm source add ./report.pdf
notebooklm source add "https://www.youtube.com/watch?v=VIDEO_ID"
notebooklm source add-drive <drive_file_id> "Doc Title"

notebooklm source list
notebooklm source fulltext <source_id>     # Get indexed text content
notebooklm source guide <source_id>        # Get source guide
notebooklm source wait <source_id>         # Wait for indexing
notebooklm source delete <source_id>
notebooklm source delete-by-title "Exact Title"

Web Research

# Fast (5–10 sources, seconds)
notebooklm source add-research "AI trends 2025"

# Deep — blocking (20+ sources, waits up to 5 min)
notebooklm source add-research "AI safety" --mode deep --import-all

# Deep — non-blocking (recommended for agents)
notebooklm source add-research "AI safety" --mode deep --no-wait
notebooklm research status               # Check progress
notebooklm research wait --import-all    # Wait and auto-import

# Search Google Drive
notebooklm source add-research "Project Report" --from drive

Source limits by plan: Standard 50 · Plus 100 · Pro 300 · Ultra 600


Chat & Q&A

notebooklm ask "What are the main themes?"

# Use specific sources only
notebooklm ask "Compare these" -s src_id1 -s src_id2

# Get answer with source citations
notebooklm ask "What is X?" --json

# Save answer as note
notebooklm ask "Summarize" --save-as-note
notebooklm ask "Summarize" --save-as-note --note-title "Research Summary"

# Continue a specific conversation
notebooklm ask "Tell me more" -c <conversation_id>

notebooklm history                         # View history
notebooklm history --show-all             # Full Q&A content
notebooklm history --save                 # Save as note
notebooklm history --save --note-title "Session Log"

Content Generation

🎙️ Podcast (Audio Overview)

# Formats: deep-dive | brief | critique | debate
# Lengths:  short | default | long
notebooklm generate audio "Focus on practical applications"
notebooklm generate audio "Compare two viewpoints" --format debate --length long
notebooklm generate audio -s src1 -s src2          # Specific sources
notebooklm generate audio --language en --json     # JSON output → task_id

notebooklm download audio ./podcast.mp3

🎬 Video

# Formats: explainer | brief
# Styles:  auto | classic | whiteboard | kawaii | anime | watercolor | retro-print | heritage | paper-craft
notebooklm generate video "Explain for beginners" --style whiteboard
notebooklm generate cinematic-video "Documentary-style summary"

notebooklm download video ./video.mp4
notebooklm download cinematic-video ./documentary.mp4

📊 Slide Deck

# Formats: detailed | presenter
# Lengths: default | short
notebooklm generate slide-deck --format detailed

notebooklm download slide-deck ./slides.pdf
notebooklm download slide-deck ./slides.pptx --format pptx   # ← not in web UI

# Revise individual slide (zero-indexed)
notebooklm generate revise-slide "Make title more impactful" --artifact <id> --slide 0 --wait
notebooklm generate revise-slide "Remove the table" --artifact <id> --slide 3 --wait

❓ Quiz

# Difficulty: easy | medium | hard
# Quantity:   fewer | standard | more
notebooklm generate quiz --difficulty hard --quantity more

notebooklm download quiz quiz.json                           # JSON ← not in web UI
notebooklm download quiz --format markdown quiz.md
notebooklm download quiz --format html quiz.html

🃏 Flashcards

notebooklm generate flashcards --difficulty medium --quantity more

notebooklm download flashcards cards.json
notebooklm download flashcards --format markdown cards.md

🗺️ Mind Map

notebooklm generate mind-map    # Synchronous — instant, no --wait needed

notebooklm download mind-map ./mindmap.json    # ← not in web UI

📈 Infographic

# Orientation: landscape | portrait | square
# Detail:      concise | standard | detailed
# Style:       auto | sketch-note | professional | bento-grid | editorial |
#              instructional | bricks | clay | anime | kawaii | scientific
notebooklm generate infographic --orientation portrait --style professional --detail detailed

notebooklm download infographic ./infographic.png

📋 Data Table

notebooklm generate data-table "Compare the key concepts"

notebooklm download data-table ./data.csv

📄 Report

# Formats: briefing-doc | study-guide | blog-post | custom
notebooklm generate report --format study-guide
notebooklm generate report --format briefing-doc --append "Keep under 2 pages"
notebooklm generate report "Technical white paper on AI trends"    # → auto custom
notebooklm generate report --format study-guide -s src1 -s src2   # Specific sources

notebooklm download report ./report.md

Generation Types Summary

TypeCommandOptionsDownload
Podcastgenerate audio--format, --length.mp3
Videogenerate video--format, --style.mp4
Cinematic Videogenerate cinematic-videosame as video.mp4
Slide Deckgenerate slide-deck--format, --length.pdf / .pptx
Quizgenerate quiz--difficulty, --quantity.json/.md/.html
Flashcardsgenerate flashcards--difficulty, --quantity.json/.md/.html
Infographicgenerate infographic--orientation, --detail, --style.png
Reportgenerate report--format, --append.md
Mind Mapgenerate mind-map(sync, instant).json
Data Tablegenerate data-tabledescription required.csv

All generate commands also support: -s/--source (specific sources), --language, --json, --retry N


Artifact Management

notebooklm artifact list
notebooklm artifact list --type audio       # Filter by type
notebooklm artifact get <artifact_id>
notebooklm artifact rename <artifact_id> "New Title"
notebooklm artifact delete <artifact_id>
notebooklm artifact wait <artifact_id> --timeout 1200
notebooklm artifact export <artifact_id> --type docs    # → Google Docs
notebooklm artifact export <artifact_id> --type sheets  # → Google Sheets
notebooklm artifact suggestions

# Batch downloads (not in web UI)
notebooklm download audio --all
notebooklm download infographic --all
notebooklm download video --latest
notebooklm download audio --all --dry-run   # Preview only

Notes

notebooklm note list
notebooklm note create "My research notes..."
notebooklm note get <note_id>
notebooklm note save <note_id> --title "New Title" --content "Updated content"
notebooklm note rename <note_id> "New Title"
notebooklm note delete <note_id>

Sharing

notebooklm share status
notebooklm share public --enable
notebooklm share public --disable
notebooklm share view-level full     # Chat + sources + notes
notebooklm share view-level chat     # Chat only
notebooklm share add user@example.com
notebooklm share add user@example.com --permission editor
notebooklm share update user@example.com --permission editor
notebooklm share remove user@example.com

Language Settings

notebooklm language list              # List all 80+ supported languages
notebooklm language get               # Show current setting
notebooklm language set en            # Set globally

# Per-command override
notebooklm generate audio --language de
notebooklm generate video --language fr

Important: Language is a GLOBAL setting affecting all notebooks in your account.

Common codes: en English · de German · fr French · es Spanish · it Italian · pt_BR Portuguese · ja Japanese · ko Korean · zh_Hans Simplified Chinese · ar Arabic


Features Not in the Web UI

FeatureCommand
Batch downloadsdownload <type> --all
Quiz/Flashcard as JSON or Markdowndownload quiz --format json
Mind map JSON exportdownload mind-map
Slide deck as PPTXdownload slide-deck --format pptx
Individual slide revisiongenerate revise-slide "..." --artifact <id> --slide N
Report template appendgenerate report --format study-guide --append "..."
Source full-text accesssource fulltext <id>
Save chat to noteask "..." --save-as-note
Programmatic sharingshare commands

Common Workflows

Research → Podcast

notebooklm create "Research: AI"
notebooklm use <id>
notebooklm source add "https://en.wikipedia.org/wiki/Artificial_intelligence"
notebooklm source add-research "AI trends 2025" --mode deep --import-all
notebooklm generate audio "Focus on breakthroughs and future outlook" --format debate --wait
notebooklm download audio ./ai-podcast.mp3

Documents → Study Materials

notebooklm create "Exam Prep"
notebooklm use <id>
notebooklm source add ./lecture-notes.pdf
notebooklm source add ./textbook-chapter.pdf
notebooklm generate quiz --difficulty hard --wait
notebooklm generate flashcards --wait
notebooklm generate report --format study-guide --wait
notebooklm ask "What are the most important topics?"

YouTube → Notes + Report

notebooklm create "Video Notes"
notebooklm use <id>
notebooklm source add "https://www.youtube.com/watch?v=VIDEO_ID"
notebooklm ask "What are the main points?"
notebooklm generate report --format briefing-doc --wait
notebooklm download report ./notes.md

Full Presentation Workflow

notebooklm create "Presentation: [Topic]"
notebooklm use <id>
notebooklm source add "https://source1.com"
notebooklm source add ./data.pdf
notebooklm generate slide-deck --format detailed --wait
notebooklm download slide-deck ./slides.pptx --format pptx
notebooklm generate revise-slide "Stronger opening title" --artifact <id> --slide 0 --wait

Agent Automation (Non-blocking)

NB_ID=$(notebooklm create "Bulk Research" --json | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
notebooklm use $NB_ID
SRC=$(notebooklm source add "https://url.com" --json | python3 -c "import sys,json; print(json.load(sys.stdin)['source_id'])")
notebooklm source wait $SRC --timeout 120
TASK=$(notebooklm generate audio "Overview" --json | python3 -c "import sys,json; print(json.load(sys.stdin)['task_id'])")
notebooklm artifact wait $TASK --timeout 1200
notebooklm download audio ./podcast.mp3

JSON Output Schemas

// notebooklm list --json
{"notebooks": [{"id": "...", "title": "...", "created_at": "..."}]}

// notebooklm source add "..." --json
{"source_id": "...", "title": "...", "status": "processing"}

// notebooklm generate audio "..." --json
{"task_id": "...", "status": "pending"}

// notebooklm ask "..." --json
{"answer": "...[1]", "conversation_id": "...", "turn_number": 1,
 "references": [{"source_id": "...", "citation_number": 1, "cited_text": "..."}]}

// notebooklm source list --json
{"sources": [{"id": "...", "title": "...", "status": "ready|processing|error"}]}

// notebooklm artifact list --json
{"artifacts": [{"id": "...", "title": "...", "type": "...", "status": "completed|in_progress|pending|unknown"}]}

Error Handling

ErrorCauseFix
Auth/cookie errorSession expirednotebooklm auth checknotebooklm login
"No notebook context"Context not setnotebooklm use <id> or -n <id> flag
"No result found for RPC ID"Rate limitingWait 5–10 min, retry
GENERATION_FAILEDGoogle rate limitWait and retry; use web UI as fallback
Download failsGeneration incompleteCheck notebooklm artifact list
Invalid IDWrong IDnotebooklm list to find correct ID
RPC protocol errorGoogle changed APIUpdate notebooklm-py

On failure, offer the user: retry / skip / investigate.

Exit Codes

CodeMeaning
0Success
1Error (not found, failed)
2Timeout (wait commands only)

Processing Times & Rate Limits

OperationTypical TimeTimeout
Source indexing30s – 10 min600s
Research (fast)30s – 2 min180s
Research (deep)15 – 30+ min1800s
Mind mapinstant
Quiz, flashcards5 – 15 min900s
Report, data table5 – 15 min900s
Audio generation10 – 20 min1200s
Video generation15 – 45 min2700s

Always reliable: Notebook/source management, chat, mind map, report, data table. May hit rate limits: Audio, video, quiz, flashcards, infographic, slide deck — retry after 5–10 min.

For agents, avoid --wait on long operations. Use artifact wait <id> in a background task.


Parallel Agent Safety

notebooklm use <id> writes to a shared file — unsafe in parallel workflows.

Solutions:

  1. Pass -n <notebook_id> directly to each command (recommended)
  2. export NOTEBOOKLM_PROFILE=agent-$ID — per-agent profile isolation
  3. export NOTEBOOKLM_HOME=/tmp/agent-$ID — full isolation
  4. Always use full UUIDs, not partial IDs

Troubleshooting

notebooklm --help
notebooklm auth check --test   # Full auth + network validation
notebooklm doctor --fix        # Auto-fix environment
notebooklm login               # Re-authenticate
notebooklm --version           # Check version

Docs: https://github.com/teng-lin/notebooklm-py/blob/main/docs/troubleshooting.md

Comments

Loading comments...