From workflows
This skill should be used when the user asks to "create a notebook", "add source to notebook", "generate audio overview", "create podcast", "manage NotebookLM", "nlm", "add PDF to notebook", "list notebooks", "summarize sources", "generate study guide", "create FAQ", "briefing document", "chat with notebook", "generate outline", "research a topic", "deep research", or needs to interact with Google NotebookLM via the nlm CLI tool.
npx claudepluginhub edwinhu/workflows --plugin workflowsThis skill uses the workspace's default tool permissions.
Manage Google NotebookLM notebooks, sources, notes, and audio overviews via the `nlm` command-line tool.
Implements Playwright E2E testing patterns: Page Object Model, test organization, configuration, reporters, artifacts, and CI/CD integration for stable suites.
Guides Next.js 16+ Turbopack for faster dev via incremental bundling, FS caching, and HMR; covers webpack comparison, bundle analysis, and production builds.
Discovers and evaluates Laravel packages via LaraPlugins.io MCP. Searches by keyword/feature, filters by health score, Laravel/PHP compatibility; fetches details, metrics, and version history.
Manage Google NotebookLM notebooks, sources, notes, and audio overviews via the nlm command-line tool.
Requires: nlm on PATH (~/.local/bin/nlm → ~/projects/nlm/nlm)
Check: command -v nlm || echo "MISSING: nlm CLI not installed"
Before first use, authenticate with Google:
nlm auth login -all
This connects to Chrome via CDP (Chrome DevTools Protocol) to extract cookies from an active NotebookLM session. Credentials are stored in ~/.nlm/env.
If nlm auth fails with "no valid profiles found" or "SESSION_COOKIE_INVALID":
Verify Chrome is running with remote debugging:
ps aux | grep -E "chrome.*remote-debugging-port=9400"
If not running, Chrome needs to be started with --remote-debugging-port=9400 flag.
Test CDP connection:
curl http://localhost:9400/json/version
Should return JSON with Chrome version info.
Re-authenticate:
nlm auth login -debug -all
This will show which profiles are checked and why authentication succeeds or fails.
Verify authentication works:
nlm list
Should list notebooks without errors.
If authentication still fails, you may need to:
~/.nlm/env file permissions# List all notebooks
nlm list
# Create a new notebook
nlm create “Research Notes”
# Delete a notebook
nlm rm <notebook-id>
# Get notebook analytics
nlm analytics <notebook-id>
Add sources from URLs, files, or stdin:
# Add URL source
nlm add <notebook-id> https://example.com/article
# Add PDF file
nlm add <notebook-id> document.pdf
# Add from stdin
echo “Some text content” | nlm add <notebook-id> -
# Add with specific MIME type
cat data.json | nlm add <notebook-id> - -mime=”application/json”
# Add YouTube video
nlm add <notebook-id> https://www.youtube.com/watch?v=VIDEO_ID
# List sources in notebook
nlm sources <notebook-id>
# Rename a source
nlm rename-source <source-id> “New Title”
# Remove a source
nlm rm-source <notebook-id> <source-id>
# Refresh source content
nlm refresh-source <source-id>
# List notes in notebook
nlm notes <notebook-id>
# Create new note
nlm new-note <notebook-id> “Note Title”
# Update note content
nlm update-note <notebook-id> <note-id> “New content” “New Title”
# Remove note
nlm rm-note <note-id>
Generate AI podcast-style audio summaries:
# Create audio overview with instructions
nlm audio-create <notebook-id> “Focus on key themes and provide a professional summary”
# List audio overviews
nlm audio-list <notebook-id>
# Get audio overview status/content
nlm audio-get <notebook-id>
# Download audio file (requires --direct-rpc)
nlm audio-download <notebook-id> output.mp3 --direct-rpc
# Share audio (private)
nlm audio-share <notebook-id>
# Share audio (public)
nlm audio-share <notebook-id> --public
# Delete audio
nlm audio-rm <notebook-id>
| Command | Purpose |
|---|---|
video-create | Create video overview |
video-list | List video overviews |
video-download | Download video (requires --direct-rpc) |
See references/commands.md for full syntax.
# Generate notebook guide (short summary)
nlm generate-guide <notebook-id>
# Generate comprehensive content outline
nlm generate-outline <notebook-id>
# Generate new content section
nlm generate-section <notebook-id>
# Free-form chat generation
nlm generate-chat <notebook-id> "What are the main themes?"
# Interactive chat session
nlm chat <notebook-id>
# Generate magic view synthesis from specific sources
nlm generate-magic <notebook-id> <source-id-1> <source-id-2>
Transform sources into different formats. All commands take <notebook-id> <source-id> [source-id...]:
| Command | Purpose |
|---|---|
summarize | Summarize content |
study-guide | Key concepts + review questions |
faq | Generate FAQ |
briefing-doc | Professional briefing |
rephrase / expand | Reword or elaborate |
critique / verify | Critique or fact-check |
brainstorm / explain | Ideate or simplify |
outline / toc | Structured outline or TOC |
mindmap / timeline | Visual mindmap or timeline |
See references/commands.md for full syntax and examples.
Research topics and automatically import sources into a notebook:
# Research a topic and import sources to a notebook
nlm research "quantum computing advances" --notebook <notebook-id>
# Deep research mode for comprehensive investigation
nlm research "climate policy impacts" --notebook <notebook-id> --deep
The research command:
--deep mode performs more comprehensive researchExecute multiple commands in a single request: nlm batch "cmd1" "cmd2" "cmd3"
See references/commands.md for full syntax.
For detailed workflow recipes (research, study materials, content analysis, executive briefing, Readwise→NLM import), read references/workflows.md.
Quick start — automated research:
id=$(nlm create "Topic Research" | grep -o 'notebook [^ ]*' | cut -d' ' -f2)
nlm research "your topic" --notebook $id
nlm generate-chat $id "What are the key findings?"
nlm auth to re-authenticate-debug flag for detailed API interactions--profile “Profile Name” to specify browser profileNLM_AUTH_TOKEN: Authentication token (managed by auth command)NLM_COOKIES: Authentication cookies (managed by auth command)NLM_BROWSER_PROFILE: Chrome/Brave profile to use (default: “Default”)