iusztinpaul/ai-research-os-workshop/nlm-skill
Claude Code and agent skill by iusztinpaul/ai-research-os-workshop
- community
Checking that the SKILL.md file is still in the repository.
Expert guide for the NotebookLM CLI (`nlm`) and MCP server - interfaces for Google NotebookLM. Use this skill when users want to interact with NotebookLM programmatically, including: creating/managing notebooks, adding sources (URLs, YouTube, text, Google Drive), generating content (podcasts, reports, quizzes, flashcards, mind maps, slides, infographics, videos, data tables), conducting research, chatting with sources, or automating NotebookLM workflows. Triggers on mentions of \"nlm\", \"notebooklm\", \"notebook lm\", \"podcast generation\", \"audio overview\", or any NotebookLM-related automation task.
Install
npx vskill@latest install iusztinpaul/ai-research-os-workshop/nlm-skillSKILL.md
NotebookLM CLI & MCP Expert
This skill provides comprehensive guidance for using NotebookLM via both the nlm CLI and MCP tools.
Tool Detection (CRITICAL - Read First!)
ALWAYS check which tools are available before proceeding:
- Check for MCP tools: Look for tools starting with
mcp__notebooklm-mcp__*ormcp_notebooklm_* - If BOTH MCP tools AND CLI are available: ASK the user which they prefer to use before proceeding
- If only MCP tools are available: Use them directly (refer to tool docstrings for parameters)
- If only CLI is available: Use
nlmCLI commands via Bash
Decision Logic:
This skill documents BOTH approaches. Choose the appropriate one based on tool availability and user preference.
Quick Reference
Run `nlm --ai` to get comprehensive AI-optimized documentation - this provides a complete view of all CLI capabilities.
Critical Rules (Read First!)
- Always authenticate first: Run
nlm loginbefore any operations - Sessions expire in ~20 minutes: Re-run
nlm loginif commands start failing - ⚠️ ALWAYS ASK USER BEFORE DELETE: Before executing ANY delete command, ask the user for explicit confirmation. Deletions are irreversible. Show what will be deleted and warn about permanent data loss.
- `--confirm` is REQUIRED: All generation and delete commands need
--confirmor-y(CLI) orconfirm=True(MCP) - Research requires `--notebook-id`: The flag is mandatory, not positional
- Capture IDs from output: Create/start commands return IDs needed for subsequent operations
- Use aliases: Simplify long UUIDs with
nlm alias set <name> <uuid> - Check aliases before creating: Run
nlm alias listbefore creating a new alias to avoid conflicts with existing names. - DO NOT launch REPL: Never use
nlm chat start- it opens an interactive REPL that AI tools cannot control. Usenlm notebook queryfor one-shot Q&A instead. - Choose output format wisely: Default output (no flags) is compact and token-efficient—use it for status checks. Use
--quietto capture IDs for piping. Only use--jsonwhen you need to parse specific fields programmatically. - Use `--help` when unsure: Run
nlm <command> --helpto see available options and flags for any command.
Workflow Decision Tree
Use this to determine the right sequence of commands:
Command Categories
1. Authentication
MCP Authentication
If using MCP tools and encountering authentication errors:
Or manually save cookies via MCP (fallback):
nlm login # Launch browser, extract cookies (primary method) nlm login --check # Validate current session nlm login --profile work # Use named profile for multiple accounts nlm login --provider openclaw --cdp-url http://127.0.0.1:18800 # External CDP provider nlm login switch <profile> # Switch the default profile nlm login profile list # List all profiles with email addresses nlm login profile delete <name> # Delete a profile nlm login profile rename <old> <new> # Rename a profile
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
Rename
nlm source rename <source-id> "New Title" --notebook <nb-id> nlm rename source <source-id> "New Title" --notebook <nb-id> # verb-first
Deletion
nlm source delete <source-id> --confirm
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 specific nlm research import <nb-id> <task-id> --timeout 600 # Custom timeout (default: 300s)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/ai-research-os/skills/nlm-skill/SKILL.md
Popularity
- Repository stars
- 178
- Repository forks
- 34
- 7-day trend score
- 26
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/iusztinpaul/ai-research-os-workshop/nlm-skill)