Skill flagged — suspicious patterns detected

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

Notebooklm

v1.0.0

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

0· 97·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for kevinzien1107-ctrl/notebooklm-ksyun.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Notebooklm" (kevinzien1107-ctrl/notebooklm-ksyun) from ClawHub.
Skill page: https://clawhub.ai/kevinzien1107-ctrl/notebooklm-ksyun
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 notebooklm-ksyun

ClawHub CLI

Package manager switcher

npx clawhub@latest install notebooklm-ksyun
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description and SKILL.md consistently describe programmatic Google NotebookLM operations (add sources, ask, generate artifacts). However the skill references installing/using the third‑party library teng-lin/notebooklm-py and claims OpenClaw will install it, yet the package supplies no install spec or declared dependency — an internal inconsistency. Also the skill requires OAuth access to a Google account/Drive in practice but declares no credentials or required scopes.
!
Instruction Scope
The runtime instructions tell the agent to run CLI commands that add sources from URLs, local files (./file.pdf), YouTube, and Google Drive, to create notebooks, save Q&A as notes, and download artifacts. Several of these actions involve reading local files and uploading them to Google or programmatically accessing Drive and sharing permissions. The Autonomy Rules allow many of these commands to run without user confirmation (e.g., 'source add', 'create', 'ask', 'use'), which increases the risk that sensitive local or Drive data could be uploaded or exposed without clear user consent.
!
Install Mechanism
This is an instruction-only skill with no install spec. README/SKILL.md claim OpenClaw will install the notebooklm-py library, but there is no declared install procedure, no pinned package source, and no mention of which account or environment will perform installs. That ambiguity is a coherence issue: if the CLI isn't present, commands will fail; if the platform installs it automatically, that install step is not auditable from the skill bundle.
!
Credentials
The skill declares no required environment variables or primary credential, but its operations require full Google OAuth login and Drive/Docs/Sheets access in practice. Sensitive scopes (access to Drive files, read/write permission, sharing) are implied but not declared. The lack of declared credentials or scopes is disproportionate to the significant account-level privileges the skill needs to function.
!
Persistence & Privilege
always is false (good), but the skill allows autonomous invocation of high-impact commands (adding sources, creating notebooks, saving notes) without confirmation. Combined with implied Google account access and the ability to read/upload local and Drive files, autonomous runs could exfiltrate or publish data. The skill does not request to modify other skills or global configs, so there is no evidence of privilege escalation beyond data access.
Scan Findings in Context
[no-findings] expected: The regex scanner found no matches because this is an instruction-only skill with no code files. That absence is not evidence of safety — the SKILL.md itself contains the runtime behavior to evaluate.
What to consider before installing
This skill appears to implement programmatic access to Google NotebookLM but is missing important details. Before installing, verify the upstream library (teng-lin/notebooklm-py) yourself and confirm how OpenClaw will install it. Expect that using the skill requires logging into a Google account and granting Drive/Docs permissions; sensitive local files (./file.pdf) can be uploaded by the agent. If you have sensitive data, do not enable autonomous runs that can 'source add' or 'create' without confirmation — require manual approval for any upload/download actions. Prefer running this skill only with a dedicated Google account (least privilege) or in an isolated environment, and request the publisher to add an explicit install spec and declared OAuth scopes/requirements.

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

latestvk970j68h74bksrt03gc9ay4c2s852kk3
97downloads
0stars
1versions
Updated 1w 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...