Nlm Skill
iusztinpaul/ai-research-os-workshop
Expert guide for the NotebookLM CLI (nlm) and MCP server - interfaces for Google NotebookLM.
Guides use of the nlm command-line tool to automate Google NotebookLM: notebooks, sources, research, one-shot questions and generated podcasts, reports, quizzes and slides.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add jacob-bd/notebooklm-cli --skill nlm-cli-skill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jacob-bd/notebooklm-cli nlm-cli-skill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jacob-bd/notebooklm-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/nlm-cli-skill .claude/skills/nlm-cli-skill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "nlm-cli-skill" agent skill from https://github.com/jacob-bd/notebooklm-cli/tree/main/nlm-cli-skill into .claude/skills/nlm-cli-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nlm-cli-skill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jacob-bd/notebooklm-cli/tree/main/nlm-cli-skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jacob-bd/notebooklm-cli --skill nlm-cli-skill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jacob-bd/notebooklm-cli nlm-cli-skill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jacob-bd/notebooklm-cli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/nlm-cli-skill .agents/skills/nlm-cli-skill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nlm-cli-skill" agent skill from https://github.com/jacob-bd/notebooklm-cli/tree/main/nlm-cli-skill into .agents/skills/nlm-cli-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nlm-cli-skill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jacob-bd/notebooklm-cli --skill nlm-cli-skill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jacob-bd/notebooklm-cli nlm-cli-skill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jacob-bd/notebooklm-cli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/nlm-cli-skill .cursor/skills/nlm-cli-skill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "nlm-cli-skill" agent skill from https://github.com/jacob-bd/notebooklm-cli/tree/main/nlm-cli-skill into .cursor/skills/nlm-cli-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nlm-cli-skill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jacob-bd/notebooklm-cli.git --path nlm-cli-skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jacob-bd/notebooklm-cli --skill nlm-cli-skill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jacob-bd/notebooklm-cli nlm-cli-skill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jacob-bd/notebooklm-cli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/nlm-cli-skill .gemini/skills/nlm-cli-skill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "nlm-cli-skill" agent skill from https://github.com/jacob-bd/notebooklm-cli/tree/main/nlm-cli-skill into .gemini/skills/nlm-cli-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nlm-cli-skill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jacob-bd/notebooklm-cli nlm-cli-skillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jacob-bd/notebooklm-cli --skill nlm-cli-skill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jacob-bd/notebooklm-cli.git skills-src && mkdir -p .github/skills && cp -r skills-src/nlm-cli-skill .github/skills/nlm-cli-skill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "nlm-cli-skill" agent skill from https://github.com/jacob-bd/notebooklm-cli/tree/main/nlm-cli-skill into .github/skills/nlm-cli-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nlm-cli-skill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jacob-bd/notebooklm-cli --skill nlm-cli-skill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jacob-bd/notebooklm-cli nlm-cli-skill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jacob-bd/notebooklm-cli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/nlm-cli-skill .opencode/skills/nlm-cli-skill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "nlm-cli-skill" agent skill from https://github.com/jacob-bd/notebooklm-cli/tree/main/nlm-cli-skill into .opencode/skills/nlm-cli-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nlm-cli-skill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
nlm-cli-skillGuides use of the nlm command-line tool to automate Google NotebookLM: notebooks, sources, research, one-shot questions and generated podcasts, reports, quizzes and slides.
The skill opens with ten rules. Log in with `nlm login` first, which launches Chrome and extracts cookies, supports named profiles for several accounts, and lasts about 20 minutes before a new login is needed. Generation and delete commands require `--confirm` or `-y`, research requires the `--notebook-id` flag, and IDs printed by create and start commands should be captured and can be shortened with aliases. The agent must ask you before any delete because deletions cannot be undone, must not start the interactive chat REPL and uses `nlm notebook query` for one-shot questions, and picks default, `--quiet` or `--json` output depending on need.
Command groups cover authentication, notebook management, source management with URLs, YouTube, text and Google Drive, content generation such as podcasts, reports, quizzes, flashcards, mind maps, slides, infographics, videos and data tables, and research. A decision tree picks the command sequence, and three reference files hold the command reference, troubleshooting and workflows.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8852560. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
youtube.comexample1.comexample2.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
NotebookLM CLI Guide loads about 3.4k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 154 tokens; SKILL.md has 557 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
nlm login # Launch Chrome, extract cookies (primary method)Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jacob-bd/notebooklm-cli at commit 8852560, republished under its MIT licence (© jacob-bd). 557 words, ~3,359 tokens.
.claude/skills/nlm-cli-skill/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.This skill provides comprehensive guidance for using the nlm CLI to automate Google NotebookLM workflows.
nlm --help # List all commands
nlm <command> --help # Help for specific command
nlm --ai # Full AI-optimized documentation
nlm --version # Check installed versionnlm login before any operationsnlm login if commands start failing--confirm is REQUIRED: All generation and delete commands need --confirm or -y--notebook-id: The flag is mandatory, not positionalnlm alias set <name> <uuid>nlm alias list before creating a new alias to avoid conflicts with existing names.nlm chat start - it opens an interactive REPL that AI tools cannot control. Use nlm notebook query for one-shot Q&A instead.--quiet to capture IDs for piping. Only use --json when you need to parse specific fields programmatically.Use this to determine the right sequence of commands:
User wants to...
│
├─► Work with NotebookLM for the first time
│ └─► nlm login → nlm notebook create "Title"
│
├─► Add content to a notebook
│ ├─► From a URL/webpage → nlm source add <nb-id> --url "https://..."
│ ├─► From YouTube → nlm source add <nb-id> --url "https://youtube.com/..."
│ ├─► From pasted text → nlm source add <nb-id> --text "content" --title "Title"
│ ├─► From Google Drive → nlm source add <nb-id> --drive <doc-id> --type doc
│ └─► Discover new sources → nlm research start "query" --notebook-id <nb-id>
│
├─► Generate content from sources
│ ├─► Podcast/Audio → nlm audio create <nb-id> --confirm
│ ├─► Written summary → nlm report create <nb-id> --confirm
│ ├─► Study materials → nlm quiz/flashcards create <nb-id> --confirm
│ ├─► Visual content → nlm mindmap/slides/infographic create <nb-id> --confirm
│ ├─► Video → nlm video create <nb-id> --confirm
│ └─► Extract data → nlm data-table create <nb-id> "description" --confirm
│
├─► Ask questions about sources
│ └─► nlm notebook query <nb-id> "question"
│ (Use --conversation-id for follow-ups)
│ ⚠️ Do NOT use `nlm chat start` - it's a REPL for humans only
│
├─► Check generation status
│ └─► nlm studio status <nb-id>
│
└─► Manage/cleanup
├─► List notebooks → nlm notebook list
├─► List sources → nlm source list <nb-id>
├─► Delete source → nlm source delete <source-id> --confirm
└─► Delete notebook → nlm notebook delete <nb-id> --confirmnlm login # Launch Chrome, extract cookies (primary method)
nlm login --check # Validate current session
nlm login --profile work # Use named profile for multiple accounts
nlm auth status # Check if authenticated
nlm auth list # List all profilesSession lifetime: ~20 minutes. Re-authenticate when commands fail with auth errors.
nlm notebook list # List all notebooks
nlm notebook list --json # JSON output for parsing
nlm notebook list --quiet # IDs only (for scripting)
nlm notebook create "Title" # Create notebook, returns ID
nlm notebook get <id> # Get notebook details
nlm notebook describe <id> # AI-generated summary + suggested topics
nlm notebook query <id> "question" # One-shot Q&A with sources
nlm notebook rename <id> "New Title" # Rename notebook
nlm notebook delete <id> --confirm # PERMANENT deletion# Adding sources
nlm source add <nb-id> --url "https://..." # Web page
nlm source add <nb-id> --url "https://youtube.com/..." # YouTube video
nlm source add <nb-id> --text "content" --title "X" # Pasted text
nlm source add <nb-id> --drive <doc-id> # Drive doc (auto-detect type)
nlm source add <nb-id> --drive <doc-id> --type slides # Explicit type
# Listing and viewing
nlm source list <nb-id> # Table of sources
nlm source list <nb-id> --drive # Show Drive sources with freshness
nlm source list <nb-id> --drive -S # Skip freshness checks (faster)
nlm source get <source-id> # Source metadata
nlm source describe <source-id> # AI summary + keywords
nlm source content <source-id> # Raw text content
nlm source content <source-id> -o file.txt # Export to file
# Drive sync (for stale sources)
nlm source stale <nb-id> # List outdated Drive sources
nlm source sync <nb-id> --confirm # Sync all stale sources
nlm source sync <nb-id> --source-ids <ids> --confirm # Sync specific
# Deletion
nlm source delete <source-id> --confirmDrive types: doc, slides, sheets, pdf
Research finds NEW sources from the web or Google Drive:
# Start research (--notebook-id is REQUIRED)
nlm research start "query" --notebook-id <id> # Fast web (~30s)
nlm research start "query" --notebook-id <id> --mode deep # Deep web (~5min)
nlm research start "query" --notebook-id <id> --source drive # Drive search
# Check progress
nlm research status <nb-id> # Poll until done (5min max)
nlm research status <nb-id> --max-wait 0 # Single check, no waiting
nlm research status <nb-id> --task-id <tid> # Check specific task
nlm research status <nb-id> --full # Full details
# Import discovered sources
nlm research import <nb-id> <task-id> # Import all
nlm research import <nb-id> <task-id> --indices 0,2,5 # Import specificModes: fast (~30s, ~10 sources) | deep (~5min, ~40+ sources, web only)
All generation commands share these flags:
--confirm or -y: REQUIRED to execute--source-ids <id1,id2>: Limit to specific sources--language <code>: BCP-47 code (en, es, fr, de, ja)# Audio (Podcast)
nlm audio create <id> --confirm
nlm audio create <id> --format deep_dive --length default --confirm
nlm audio create <id> --format brief --focus "key topic" --confirm
# Formats: deep_dive, brief, critique, debate
# Lengths: short, default, long
# Report
nlm report create <id> --confirm
nlm report create <id> --format "Study Guide" --confirm
nlm report create <id> --format "Create Your Own" --prompt "Custom..." --confirm
# Formats: "Briefing Doc", "Study Guide", "Blog Post", "Create Your Own"
# Quiz
nlm quiz create <id> --confirm
nlm quiz create <id> --count 5 --difficulty 3 --confirm
# Count: number of questions (default: 2)
# Difficulty: 1-5 (1=easy, 5=hard)
# Flashcards
nlm flashcards create <id> --confirm
nlm flashcards create <id> --difficulty hard --confirm
# Difficulty: easy, medium, hard
# Mind Map
nlm mindmap create <id> --confirm
nlm mindmap create <id> --title "Topic Overview" --confirm
nlm mindmap list <id> # List existing mind maps
# Slides
nlm slides create <id> --confirm
nlm slides create <id> --format presenter --length short --confirm
# Formats: detailed, presenter | Lengths: short, default
# Infographic
nlm infographic create <id> --confirm
nlm infographic create <id> --orientation portrait --detail detailed --confirm
# Orientations: landscape, portrait, square
# Detail: concise, standard, detailed
# Video
nlm video create <id> --confirm
nlm video create <id> --format brief --style whiteboard --confirm
# Formats: explainer, brief
# Styles: auto_select, classic, whiteboard, kawaii, anime, watercolor, retro_print, heritage, paper_craft
# Data Table
nlm data-table create <id> "Extract all dates and events" --confirm
# DESCRIPTION is required as second argumentCheck and manage generated content:
nlm studio status <nb-id> # List all artifacts
nlm studio status <nb-id> --json # JSON output
nlm studio delete <nb-id> <artifact-id> --confirm # Delete artifactStatus values: completed (✓), in_progress (●), failed (✗)
⚠️ AI TOOLS: DO NOT USE
nlm chat start- It launches an interactive REPL that cannot be controlled programmatically. Usenlm notebook queryfor one-shot Q&A instead.
For human users at a terminal:
nlm chat start <nb-id> # Launch interactive REPLREPL Commands:
/sources - List available sources/clear - Reset conversation context/help - Show commands/exit - Exit REPLConfigure chat behavior (works for both REPL and query):
nlm chat configure <id> --goal default
nlm chat configure <id> --goal learning_guide
nlm chat configure <id> --goal custom --prompt "Act as a tutor..."
nlm chat configure <id> --response-length longer # longer, default, shorterSimplify long UUIDs:
nlm alias set myproject abc123-def456... # Create alias (auto-detects type)
nlm alias get myproject # Resolve to UUID
nlm alias list # List all aliases
nlm alias delete myproject # Remove alias
# Use aliases anywhere
nlm notebook get myproject
nlm source list myproject
nlm audio create myproject --confirmnlm config show # Show current config
nlm config get <key> # Get specific setting
nlm config set <key> <value> # Update settingMost list commands support multiple formats:
| Flag | Description |
|---|---|
| (none) | Rich table (human-readable) |
--json | JSON output (for parsing) |
--quiet | IDs only (for piping) |
--title | "ID: Title" format |
--url | "ID: URL" format (sources only) |
--full | All columns/details |
nlm notebook create "AI Research 2026" # Capture ID
nlm alias set ai <notebook-id>
nlm research start "agentic AI trends" --notebook-id ai --mode deep
nlm research status ai --max-wait 300 # Wait up to 5 min
nlm research import ai <task-id> # Import all sources
nlm audio create ai --format deep_dive --confirm
nlm studio status ai # Check generation progressnlm source add <id> --url "https://example1.com"
nlm source add <id> --url "https://example2.com"
nlm source add <id> --text "My notes..." --title "Notes"
nlm source list <id>nlm report create <id> --format "Study Guide" --confirm
nlm quiz create <id> --count 10 --difficulty 3 --confirm
nlm flashcards create <id> --difficulty medium --confirmnlm source add <id> --drive 1KQH3eW0hMBp7WK... --type slides
# ... time passes, document is edited ...
nlm source stale <id> # Check freshness
nlm source sync <id> --confirm # Sync if stale| Error | Cause | Solution |
|---|---|---|
| "Cookies have expired" | Session timeout | nlm login |
| "authentication may have expired" | Session timeout | nlm login |
| "Notebook not found" | Invalid ID | nlm notebook list |
| "Source not found" | Invalid ID | nlm source list <nb-id> |
| "Rate limit exceeded" | Too many calls | Wait 30s, retry |
| "Research already in progress" | Pending research | Use --force or import first |
| Chrome doesn't launch | Port conflict | Close Chrome, retry |
Wait between operations to avoid rate limits:
For detailed information, see:
© jacob-bd, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in nlm-cli-skill of jacob-bd/notebooklm-cli.
Open the folder on GitHubat commit 8852560
NotebookLM CLI Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| NotebookLM CLI Guide this skilljacob-bd/notebooklm-cli | 255 | — | ~3.4k | Automated safety check: Warn | MIT | |
| Nlm Skilliusztinpaul/ai-research-os-workshop | 179 | 1 repos | ~6.9k | Automated safety check: Pass | MIT | |
| Multi-Source to NotebookLM Processorjoeseesun/qiaomu-anything-to-notebooklm | 6.2k | — | ~3.6k | Automated safety check: Pass | MIT | |
| NotebooklmMathews-Tom/armory | 327 | — | ~4k | Automated safety check: Pass | MIT | |
| Notebooklmalirezarezvani/claude-skills | 28k | — | ~4k | Automated safety check: Pass | MIT | |
| NotebookLM Research Workflowclaude-world/notebooklm-skill | 463 | — | ~1.8k | Automated safety check: Pass | MIT |
iusztinpaul/ai-research-os-workshop
Expert guide for the NotebookLM CLI (nlm) and MCP server - interfaces for Google NotebookLM.
joeseesun/qiaomu-anything-to-notebooklm
Collects content from WeChat articles, web pages, YouTube, podcasts, documents and more, uploads it to NotebookLM and generates podcasts, slides or mind maps.
Mathews-Tom/armory
Full NotebookLM API via notebooklm-py CLI: create notebooks, add sources, generate podcasts, videos, infographics, slides, quizzes, flashcards, mind maps.
alirezarezvani/claude-skills
Browser automation skill for controlling Google's NotebookLM.
claude-world/notebooklm-skill
Creates NotebookLM notebooks from URLs, text and files, asks cited questions, runs web research and generates audio, slides, quizzes and other artifacts.
SNL-UCSB/literature-survey-skill
Literature survey assistant with four modes: /survey intent (capture student goals, expertise, and success criteria), /survey triage (landscape mapping via NotebookLM), /survey deepen (structured…
Works with
Guides use of the nlm command-line tool to automate Google NotebookLM: notebooks, sources, research, one-shot questions and generated podcasts, reports, quizzes and slides. The skill opens with ten rules. Log in with `nlm login` first, which launches Chrome and extracts cookies, supports named profiles for several accounts, and lasts about 20 minutes before a new login is needed.
NotebookLM CLI Guide fits situations like: creating a notebook and loading sources from the terminal; generating an audio overview, quiz or slide deck from a notebook's sources; asking a notebook a one-off question and scripting the answer; fixing authentication errors after a session expires.
Run `npx skills add jacob-bd/notebooklm-cli --skill nlm-cli-skill -a claude-code`. Or copy the skill folder (nlm-cli-skill in jacob-bd/notebooklm-cli) into .claude/skills/nlm-cli-skill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jacob-bd/notebooklm-cli --skill nlm-cli-skill -a codex`. Or copy the skill folder (nlm-cli-skill in jacob-bd/notebooklm-cli) into .agents/skills/nlm-cli-skill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jacob-bd/notebooklm-cli --skill nlm-cli-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nlm-cli-skill, .gemini/skills/nlm-cli-skill, .github/skills/nlm-cli-skill and .opencode/skills/nlm-cli-skill in your project.
SKILL.md names no scripts, command-line tools or credentials: NotebookLM CLI Guide is instructions for the agent only. Our summary lists: The `nlm` command-line tool; A Google account signed in through Chrome for `nlm login`.
SKILL.md names 3 domains. In commands or code: youtube.com, example1.com and example2.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.
NotebookLM CLI Guide is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with NotebookLM CLI Guide: Nlm Skill (iusztinpaul/ai-research-os-workshop, 179 stars), Multi-Source to NotebookLM Processor (joeseesun/qiaomu-anything-to-notebooklm, 6.2k stars), Notebooklm (Mathews-Tom/armory, 327 stars) and Notebooklm (alirezarezvani/claude-skills, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jacob-bd (a GitHub user) maintains it in jacob-bd/notebooklm-cli, which has 255 GitHub stars. The repository was last updated on June 8, 2026.
Source: jacob-bd/notebooklm-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.