Agent skill

notebooklm

Manage Google NotebookLM notebooks via the nlm CLI. Create notebooks, add sources (URLs, text, files, YouTube, Google Drive), generate audio overviews/podcasts, create video overviews, study materials (flashcards, quizzes), reports, mind maps, slides, query notebooks with AI, research topics, and share notebooks. Use for ANY NotebookLM-related requests.

Stars 4
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/arlenagreer/claude_configuration_docs/tree/main/skills/notebooklm

SKILL.md

NotebookLM Management Skill

Overview

Provide comprehensive Google NotebookLM management through the nlm CLI from the notebooklm-mcp-cli package (v0.3.3). This skill enables full notebook lifecycle management including creating notebooks, adding diverse sources, generating AI-powered audio/video overviews, creating study materials, querying sources with AI, researching topics, and sharing notebooks.

CLI Tool: nlm (installed via uv tool install notebooklm-mcp-cli)

Note: This skill does NOT share authentication with Google OAuth skills (calendar, contacts, drive, docs). It uses its own browser cookie-based authentication method.

When to Use This Skill

Use this skill for ANY Google NotebookLM operations:

  • Notebook Management: Create, list, rename, delete, describe notebooks
  • Source Management: Add URLs, text, files, YouTube videos, Google Drive docs
  • Audio/Podcast Generation: Create audio overviews (podcasts) from notebook sources
  • Video Generation: Create video overviews from notebook sources
  • AI Querying: Ask questions about notebook sources
  • Study Materials: Create flashcards, quizzes from sources
  • Reports & Visuals: Generate reports, mind maps, slides, infographics, data tables
  • Research: Discover and import new sources on topics
  • Sharing: Make notebooks public, invite collaborators
  • Download: Download generated artifacts (audio, video, slides, etc.)

Trigger Keywords: "notebooklm", "notebook lm", "audio overview", "podcast from sources", "create notebook", "add sources to notebook", "study materials", "flashcards from sources", "query notebook", "video overview", "research topic", "mind map"

Authentication

Browser Cookie Authentication

The nlm CLI authenticates by extracting cookies from your browser session with NotebookLM.

Initial Login:

bash
# Default login (opens browser for cookie extraction)
nlm login

# Check if current auth is valid
nlm login --check

Profile Management (for multiple Google accounts):

bash
# Login with a named profile
nlm login --profile work
nlm login --profile personal

# Switch default profile
nlm login switch <profile-name>

# Manage profiles
nlm login profile

Manual Cookie Mode (if browser extraction fails):

bash
nlm login --manual --file cookies.txt

Diagnostics:

bash
nlm doctor

Important: This authentication is completely separate from Google OAuth used by other Google skills (calendar, contacts, drive, docs, sheets). Each system maintains its own credentials.

Core Workflows

1. Notebook Management

List all notebooks:

bash
nlm notebook list

Create a new notebook:

bash
nlm notebook create "Research Project"

Get notebook details:

bash
nlm notebook get <notebook_id>

Get AI-generated notebook summary:

bash
nlm notebook describe <notebook_id>

Rename a notebook:

bash
nlm notebook rename <notebook_id> "New Name"

Delete a notebook:

bash
nlm notebook delete <notebook_id>

2. Source Management

Add a URL source:

bash
nlm source add <notebook_id> --url "https://example.com/article"

Add a URL and wait for processing:

bash
nlm source add <notebook_id> --url "https://example.com/article" --wait

Add text content directly:

bash
nlm source add <notebook_id> --text "Your content here..."

Add a YouTube video:

bash
nlm source add <notebook_id> --youtube "https://youtube.com/watch?v=..."

Add a local file (PDF, etc.):

bash
nlm source add <notebook_id> --file document.pdf --wait

Add a Google Drive document:

bash
nlm source add <notebook_id> --drive <drive_doc_id>
nlm source add <notebook_id> --drive <drive_doc_id> --type slides

Add source with custom title:

bash
nlm source add <notebook_id> --url "https://example.com" --title "My Article"

List sources in a notebook:

bash
nlm source list <notebook_id>

Get source details:

bash
nlm source get <source_id>

Get AI-generated source summary:

bash
nlm source describe <source_id>

Get raw source content:

bash
nlm source content <source_id>

Delete a source:

bash
nlm source delete <source_id>

Sync Drive sources with latest content:

bash
nlm source sync <notebook_id>

Check for stale Drive sources:

bash
nlm source stale <notebook_id>

3. Querying Notebooks (AI Chat)

Ask a question about notebook sources:

bash
nlm notebook query <notebook_id> "What are the key findings?"

Or using the top-level query command:

bash
nlm query notebook <notebook_id> "Summarize the main arguments"

4. Audio Overview (Podcast) Generation

Create audio overview with defaults (deep dive format):

bash
nlm audio create <notebook_id> --confirm

Create with specific format:

bash
# Formats: deep_dive, brief, critique, debate
nlm audio create <notebook_id> --format brief --confirm
nlm audio create <notebook_id> --format debate --confirm
nlm audio create <notebook_id> --format critique --confirm

Control length:

bash
# Lengths: short, default, long
nlm audio create <notebook_id> --length short --confirm
nlm audio create <notebook_id> --length long --confirm

Specify language:

bash
nlm audio create <notebook_id> --language es --confirm

Focus on specific topic:

bash
nlm audio create <notebook_id> --focus "market trends" --confirm

Use specific sources only:

bash
nlm audio create <notebook_id> --source-ids "src1,src2,src3" --confirm

Download the generated audio:

bash
nlm download audio <notebook_id>

5. Video Overview Generation

Create video overview:

bash
nlm video create <notebook_id>

Download generated video:

bash
nlm download video <notebook_id>

6. Study Materials

Create flashcards:

bash
nlm flashcards create <notebook_id>

Create quizzes:

bash
nlm quiz create <notebook_id>

Download flashcards/quizzes:

bash
nlm download flashcards <notebook_id>
nlm download quiz <notebook_id>

7. Reports, Visuals, and Artifacts

Create a report:

bash
nlm report create <notebook_id>

Create a mind map:

bash
nlm mindmap create <notebook_id>

Create slides:

bash
nlm slides create <notebook_id>

Create an infographic:

bash
nlm infographic create <notebook_id>

Create a data table:

bash
nlm data-table create <notebook_id>

Download artifacts:

bash
nlm download report <notebook_id>      # Markdown
nlm download slide-deck <notebook_id>  # PDF
nlm download infographic <notebook_id> # PNG
nlm download mind-map <notebook_id>    # JSON
nlm download data-table <notebook_id>  # CSV

8. Research and Discovery

Start a research task to find sources on a topic:

bash
nlm research start <notebook_id> "topic description"

Check research progress:

bash
nlm research status <task_id>

Import discovered sources:

bash
nlm research import <task_id>

9. Sharing

Make notebook public (anyone with link can view):

bash
nlm share public <notebook_id>

Make notebook private (restricted to collaborators):

bash
nlm share private <notebook_id>

Invite a collaborator by email:

bash
nlm share invite <notebook_id> --email user@example.com

Check sharing status:

bash
nlm share status <notebook_id>

10. Studio Artifacts

List all studio artifacts and their status:

bash
nlm studio status <notebook_id>

Rename an artifact:

bash
nlm studio rename <artifact_id> "New Name"

Delete an artifact:

bash
nlm studio delete <artifact_id>

11. Export to Google Workspace

Export artifacts to Google Docs/Sheets:

bash
nlm export <artifact_id>

12. Aliases and Configuration

Set an alias for a notebook ID:

bash
nlm alias set myproject <notebook_id>

# Then use alias instead of ID
nlm notebook get myproject

Manage configuration:

bash
nlm config

Natural Language Examples

"Create a podcast about these articles"

bash
# 1. Create a notebook
nlm notebook create "Article Podcast"

# 2. Add URL sources
nlm source add <notebook_id> --url "https://article1.com" --wait
nlm source add <notebook_id> --url "https://article2.com" --wait
nlm source add <notebook_id> --url "https://article3.com" --wait

# 3. Generate audio overview
nlm audio create <notebook_id> --format deep_dive --confirm

# 4. Download the audio file
nlm download audio <notebook_id>

"Summarize this YouTube video"

bash
# 1. Create a notebook
nlm notebook create "Video Summary"

# 2. Add YouTube source
nlm source add <notebook_id> --youtube "https://youtube.com/watch?v=abc123" --wait

# 3. Query for summary
nlm notebook query <notebook_id> "Provide a comprehensive summary of this video"

"Create flashcards from this PDF"

bash
# 1. Create a notebook
nlm notebook create "Study Material"

# 2. Upload the PDF
nlm source add <notebook_id> --file textbook-chapter.pdf --wait

# 3. Generate flashcards
nlm flashcards create <notebook_id>

# 4. Download flashcards
nlm download flashcards <notebook_id>

"Make a quick briefing podcast from these Google Docs"

bash
# 1. Create a notebook
nlm notebook create "Weekly Briefing"

# 2. Add Google Drive docs
nlm source add <notebook_id> --drive <doc_id_1>
nlm source add <notebook_id> --drive <doc_id_2>

# 3. Generate brief audio overview
nlm audio create <notebook_id> --format brief --length short --confirm

# 4. Download audio
nlm download audio <notebook_id>

"Research and create a report on AI trends"

bash
# 1. Create a notebook
nlm notebook create "AI Trends Research"

# 2. Start research
nlm research start <notebook_id> "latest AI trends 2026"

# 3. Check progress
nlm research status <task_id>

# 4. Import discovered sources
nlm research import <task_id>

# 5. Generate a report
nlm report create <notebook_id>

# 6. Download report
nlm download report <notebook_id>

"Share this notebook with my team"

bash
# Check current sharing status
nlm share status <notebook_id>

# Invite team members
nlm share invite <notebook_id> --email alice@company.com
nlm share invite <notebook_id> --email bob@company.com

# Or make it public
nlm share public <notebook_id>

Error Handling

Not Authenticated:

json
{
  "error": "Not authenticated",
  "action": "Run 'nlm login' to authenticate via browser cookie extraction"
}

Action: Run nlm login to re-authenticate.

Notebook Not Found:

json
{
  "error": "Notebook not found",
  "action": "Verify notebook ID with 'nlm notebook list'"
}

Action: List notebooks to find correct ID with nlm notebook list.

Source Add Failed:

json
{
  "error": "Failed to add source",
  "action": "Check URL accessibility, file path, or Drive permissions"
}

Action: Verify the URL is accessible, the file exists, or Drive document is shared with your account.

Audio Generation Failed:

json
{
  "error": "Audio creation failed",
  "action": "Ensure notebook has at least one processed source"
}

Action: Verify sources are processed with nlm source list <notebook_id>, then retry.

Profile Not Found:

json
{
  "error": "Profile not found",
  "action": "Run 'nlm login --profile <name>' to create a new profile"
}

Action: Create the profile with nlm login --profile <name>.

Best Practices

  1. Create a notebook per topic/project -- keeps sources organized and queries focused
  2. Add multiple diverse sources before generating audio -- richer content produces better overviews
  3. Use --wait when adding sources -- ensures processing completes before querying or generating
  4. Query to verify ingestion -- use nlm notebook query to confirm sources are properly indexed before generating audio/video
  5. Use profiles for work vs personal accounts -- nlm login --profile work / nlm login --profile personal
  6. Use aliases for frequently accessed notebooks -- nlm alias set myproject <id> for convenience
  7. Use --format for audio variety -- deep_dive for comprehensive, brief for quick, debate for contrasting views, critique for analysis
  8. Download artifacts after generation -- use nlm download <type> <notebook_id> to save locally
  9. Sync Drive sources periodically -- nlm source sync to pull latest content changes
  10. Use nlm doctor for diagnostics -- first step when troubleshooting any issue

Troubleshooting

Authentication Issues

bash
# Run diagnostics first
nlm doctor

# Re-authenticate
nlm login

# Check if auth is valid
nlm login --check

# Try manual cookie mode if browser extraction fails
nlm login --manual --file cookies.txt

CLI Not Found

bash
# Check if nlm is on PATH
which nlm

# Common location
ls ~/.local/bin/nlm

# Reinstall if needed
uv tool install notebooklm-mcp-cli

Source Processing Stuck

bash
# Check source status
nlm source list <notebook_id>

# Get details on specific source
nlm source get <source_id>

# Try removing and re-adding
nlm source delete <source_id>
nlm source add <notebook_id> --url "https://..." --wait

Audio/Video Generation Not Starting

bash
# Verify notebook has processed sources
nlm source list <notebook_id>

# Check studio status for existing artifacts
nlm studio status <notebook_id>

# Ensure you have at least one fully processed source before generating

Profile Issues

bash
# List profiles
nlm login profile

# Switch to different profile
nlm login switch <profile-name>

# Re-authenticate a specific profile
nlm login --profile <name>

Version

  • CLI: nlm v0.3.3 (notebooklm-mcp-cli)
  • Skill: 1.0.0
  • Run nlm --version to check installed version

Expand your agent's capabilities with these related and highly-rated skills.

arlenagreer/claude_configuration_docs

email

Send and draft professional emails with seasonal HTML formatting, authentic writing style, contact lookup via Google Contacts, security-first approach, and Google Gmail API via Ruby CLI. This skill should be used for ALL email operations (mandatory per RULES.md).

4 0
Explore
arlenagreer/claude_configuration_docs

commit

Create detailed Git commits and push to GitHub. Use when the user wants to commit changes, save work to Git, or push updates to the repository. Trigger words include "commit", "save changes", "push to git", "update repository". (project, gitignored)

4 0
Explore
arlenagreer/claude_configuration_docs

worklog

Track billable hours for clients. This skill should be used when the user requests to log work hours, record time spent on client projects, view worklog entries, calculate total billable hours, or summarize recent work. Automatically prompts for missing information (client, hours, description) and validates client names against the invoice skill's client database.

4 0
Explore
arlenagreer/claude_configuration_docs

calendar

Manage Google Calendar with full event operations including viewing schedule, creating/editing/deleting events, finding free time, managing attendees via Google Contacts, adding Google Meet links, and timezone handling. This skill should be used for ALL calendar-related requests.

4 0
Explore
arlenagreer/claude_configuration_docs

google-sheets

Manage Google Sheets with comprehensive spreadsheet operations including reading/writing cell values, formulas, formatting, sheet management, and batch operations. Use for spreadsheet data operations, cell ranges, formulas, formatting, batch updates, and data analysis workflows. Shares OAuth token with email, calendar, contacts, drive, and docs skills.

4 0
Explore
arlenagreer/claude_configuration_docs

google-drive

Manage Google Drive files and folders with full CRUD operations via Ruby scripts. Use for file storage operations, folder organization, sharing permissions, searching across Drive, and uploading/downloading files of any type. Works seamlessly with google-sheets and google-docs skills for complete Google Workspace integration.

4 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results