← Về thư mục
📄 / / integrations / notebooklm-mcp-cli / src / notebooklm_tools / data / references / command_reference.md

NotebookLM CLI - Complete Command Reference

This document contains the complete command signatures and all available options for every nlm command.

Table of Contents

  1. Global Options
  2. Authentication
  3. Notebook Commands
  4. Source Commands
  5. Research Commands
  6. Generation Commands
  7. Studio Commands
  8. Download Commands
  9. Export Commands
  10. Sharing Commands
  11. Note Commands
  12. Chat Commands
  13. Alias Commands
  14. Config Commands
  15. Organization and Automation
  16. Setup, Skill, and Diagnostics

Global Options

nlm --version, -v      # Show version and exit
nlm --ai               # Output AI-friendly documentation
nlm --install-completion  # Install shell completion
nlm --show-completion  # Show completion script
nlm --help             # Show help and exit

Authentication

nlm login

Authenticate with NotebookLM using the managed browser auth flow.

nlm login [OPTIONS]
Option Short Description
--profile -p Profile name for multiple accounts
--check Validate current credentials without re-authenticating
--provider Auth provider: builtin (default) or openclaw
--cdp-url CDP endpoint URL for external provider mode (default: http://127.0.0.1:18800)
--manual -m Import cookies from file
--file -f Cookie file path for manual mode
--force Replace credentials even if the detected account differs
--clear Clear stored browser/profile state before login
--wsl Use the WSL/Windows-browser authentication path

Note: Each profile gets its own isolated Chrome session, so you can be logged into multiple Google accounts simultaneously.

nlm login profile list

List all authentication profiles with their associated email addresses.

nlm login profile list

nlm login profile delete

Delete an authentication profile and its credentials.

nlm login profile delete <profile>

nlm login profile rename

Rename an authentication profile.

nlm login profile rename <old-name> <new-name>

nlm login switch

Switch the default profile for all commands.

nlm login switch <profile>
Argument Description
<profile> Profile name to switch to

Example:

nlm login switch work
# Output: ✓ Switched default profile to work
#         Account: jsmith@company.com

Notebook Commands

nlm notebook list

List all notebooks.

nlm notebook list [OPTIONS]
Option Short Description
--json Output as JSON
--quiet -q Output IDs only
--title Output as "ID: Title"
--full Show all columns
--profile -p Use specific profile

nlm notebook create

Create a new notebook.

nlm notebook create <title> [OPTIONS]
Option Short Description
--json -j Output stable machine-readable result
--profile -p Use specific profile

nlm notebook get

Get notebook details.

nlm notebook get <notebook-id> [OPTIONS]
Option Short Description
--profile -p Use specific profile

nlm notebook describe

Get AI-generated notebook summary with suggested topics.

nlm notebook describe <notebook-id> [OPTIONS]
Option Short Description
--profile -p Use specific profile

nlm notebook query

Ask a question about notebook sources.

nlm notebook query <notebook-id> <question> [OPTIONS]
Option Short Description
--source-ids Limit to specific sources (comma-separated)
--conversation-id Continue existing conversation
--profile -p Use specific profile

nlm notebook rename

Rename a notebook.

nlm notebook rename <notebook-id> <new-title> [OPTIONS]
Option Short Description
--profile -p Use specific profile

nlm notebook delete

Delete a notebook permanently.

nlm notebook delete <notebook-id> [OPTIONS]
Option Description
--confirm Required to confirm deletion
--profile Use specific profile

Source Commands

nlm source list

List sources in a notebook.

nlm source list <notebook-id> [OPTIONS]
Option Short Description
--json Output as JSON
--quiet -q Output IDs only
--url Output as "ID: URL"
--full Show all columns (wider URL display)
--drive Show Drive sources with freshness status
--skip-freshness -S Skip freshness checks (faster with --drive)
--profile -p Use specific profile

When freshness is skipped, stale/is_stale is null (unknown), not false (fresh).

nlm source add

Add a source to a notebook.

nlm source add <notebook-id> [OPTIONS]

URL Source: | Option | Description | |--------|-------------| | --url | URL to add; repeat for bulk URL add | | --youtube | Explicit YouTube URL |

Text Source: | Option | Description | |--------|-------------| | --text | Text content to add | | --title | Title for text source |

Drive Source: | Option | Description | |--------|-------------| | --drive | Google Drive document ID | | --type | Drive doc type: doc, slides, sheets, pdf | | --title | Display title |

File Source: | Option | Description | |--------|-------------| | --file | Local path on the machine running nlm | | --wait | Wait until NotebookLM finishes processing | | --wait-timeout | Processing timeout in seconds |

Option Short Description
--profile -p Use specific profile

nlm source get

Get source metadata.

nlm source get <source-id> [OPTIONS]
Option Short Description
--profile -p Use specific profile

nlm source describe

Get AI-generated source summary with keywords.

nlm source describe <source-id> [OPTIONS]
Option Short Description
--profile -p Use specific profile

nlm source content

Get raw text content of a source.

nlm source content <source-id> [OPTIONS]
Option Short Description
--output -o Export to file path
--profile -p Use specific profile

nlm source stale

List stale (outdated) Drive sources.

nlm source stale <notebook-id> [OPTIONS]
Option Short Description
--profile -p Use specific profile

nlm source sync

Sync Drive sources with latest content.

nlm source sync <notebook-id> [OPTIONS]
Option Description
--confirm Required to execute sync
--source-ids Specific source IDs to sync (comma-separated)
--profile Use specific profile

nlm source rename

Rename a source.

nlm source rename <source-id> <new-title> [OPTIONS]
nlm rename source <source-id> <new-title> [OPTIONS]  # verb-first alias
Option Description
--notebook Required - Notebook ID containing the source
--profile Use specific profile

nlm source delete

Delete a source permanently.

nlm source delete <source-id> [OPTIONS]
Option Description
--confirm Required to confirm deletion
--profile Use specific profile

Research Commands

nlm research start

Start a research task to discover new sources.

nlm research start <query> [OPTIONS]
Option Description
--notebook-id Existing target notebook ID
--title Create a new destination notebook with this title
--mode fast (default, ~30s) or deep (~5min, web only)
--source web (default) or drive
--force Override pending research
--auto-import Poll every 30 seconds for up to 900 seconds, then import completed results (alias: --wait-and-import)
--profile Use specific profile

nlm research status

Check research task progress.

nlm research status <notebook-id> [OPTIONS]
Option Description
--task-id Check specific task (auto-detected if omitted)
--max-wait Max seconds to wait (default: 300, 0=single check)
--full Show full details
--profile Use specific profile

nlm research import

Import discovered sources into notebook.

nlm research import <notebook-id> <task-id> [OPTIONS]
Option Description
--indices Comma-separated indices of sources to import (default: all)
--cited-only Import only sources cited by the research report (overrides --indices)
--timeout Import timeout in seconds (default: 300)
--profile Use specific profile

Generation Commands

All generation commands share --confirm, --source-ids, and --profile. The --language option is available for audio, report, slides, infographic, video, and data-table.

Option Short Description
--confirm -y Required to execute generation
--source-ids Limit to specific sources (comma-separated)
--language BCP-47 language code where supported, including regional locales such as es-419
--profile -p Use specific profile

nlm audio create

Generate audio overview (podcast).

nlm audio create <notebook-id> [OPTIONS]
Option Values Default
--format deep_dive, brief, critique, debate deep_dive
--length short, default, long default
--focus Focus text/topic

For audio, regional locales can affect the voice accent. NotebookLM has been observed using es/es-ES for Spain Spanish and es-US/es-419 for Latin-American Spanish. NOTEBOOKLM_HL can set the regional default.

nlm report create

Generate written report.

nlm report create <notebook-id> [OPTIONS]
Option Values Default
--format "Briefing Doc", "Study Guide", "Blog Post", "Create Your Own" "Briefing Doc"
--prompt Custom prompt (required for "Create Your Own")

nlm quiz create

Generate quiz questions.

nlm quiz create <notebook-id> [OPTIONS]
Option Values Default
--count Number of questions 2
--difficulty 1-5 (1=easy, 5=hard) 2
--focus Focus text/topic

nlm flashcards create

Generate flashcards.

nlm flashcards create <notebook-id> [OPTIONS]
Option Values Default
--difficulty easy, medium, hard medium
--focus Focus text/topic

nlm mindmap create

Generate mind map.

nlm mindmap create <notebook-id> [OPTIONS]
Option Description
--title Display title for the mind map

List mind maps through nlm studio status <notebook-id>.

nlm slides create

Generate slide deck.

nlm slides create <notebook-id> [OPTIONS]
Option Values Default
--format detailed_deck, presenter_slides detailed_deck
--length short, default default
--focus Focus text/topic

nlm slides revise

Revise one or more slides and create a new deck.

nlm slides revise <artifact-id> --slide "1 Make the title larger" --confirm

--slide is repeatable and uses "<1-based slide number> <instruction>". The original deck is unchanged.

nlm infographic create

Generate infographic.

nlm infographic create <notebook-id> [OPTIONS]
Option Values Default
--orientation landscape, portrait, square landscape
--detail concise, standard, detailed standard
--style auto_select, sketch_note, professional, bento_grid, editorial, instructional, bricks, clay, anime, kawaii, scientific auto_select
--focus Focus text/topic

nlm video create

Generate video overview.

nlm video create <notebook-id> [OPTIONS]
Option Values Default
--format explainer, brief, cinematic, short explainer
--style auto_select, custom, classic, whiteboard, kawaii, anime, watercolor, retro_print, heritage, paper_craft (not for cinematic/short) auto_select
--style-prompt Custom visual style text (requires --style custom, or implies it when --style omitted)
--focus Focus text/topic

short produces a ~60s vertical video with no visual style picker; English-only for now.

nlm data-table create

Extract structured data as a table.

nlm data-table create <notebook-id> <description> [OPTIONS]

Note: <description> is a required positional argument describing what data to extract.


Studio Commands

nlm studio status

List all generated artifacts in a notebook.

nlm studio status <notebook-id> [OPTIONS]
Option Description
--json Output as JSON
--full Show all details
--profile Use specific profile

--json --full includes source_ids, allowing each artifact to be traced to the source set used to generate it.

nlm studio delete

Delete a generated artifact.

nlm studio delete <notebook-id> <artifact-id> [OPTIONS]
Option Description
--confirm Required to confirm deletion
--profile Use specific profile
---

Download Commands

nlm download

Download generated artifacts to local files.

nlm download <type> <notebook-id> [OPTIONS]

Available types: audio, video, report, mind-map, slide-deck, infographic, quiz, flashcards, data-table

Option Description
--id Specific artifact ID (uses latest if omitted)
--format Output format for quiz/flashcards: json, markdown, html
--output Output file path

Examples:

nlm download audio <nb-id> --output podcast.mp3
nlm download video <nb-id> --output video.mp4
nlm download report <nb-id> --output report.md
nlm download quiz <nb-id> --output quiz.html --format html
nlm download flashcards <nb-id> --output cards.json --format json

Export Commands

nlm export

Export artifacts to Google Docs or Sheets.

nlm export <type> <notebook-id> <artifact-id> [OPTIONS]

Available types: docs, sheets

Option Description
--title Title for the exported document
--profile Use specific profile

Examples:

nlm export sheets <nb-id> <artifact-id> --title "Data Table Export"
nlm export docs <nb-id> <artifact-id> --title "My Report"

Sharing Commands

nlm share status

Get current sharing settings for a notebook.

nlm share status <notebook-id> [OPTIONS]
Option Description
--profile Use specific profile

nlm share public

Enable or disable public link sharing.

nlm share public <notebook-id> [OPTIONS]
Option Description
--off Disable public sharing (default: enable)
--profile Use specific profile

Examples:

nlm share public <nb-id>         # Enable public link
nlm share public <nb-id> --off   # Disable public link

nlm share invite

Invite a collaborator by email.

nlm share invite <notebook-id> <email> [OPTIONS]
Option Description
--role viewer (default) or editor
--profile Use specific profile

Examples:

nlm share invite <nb-id> user@example.com
nlm share invite <nb-id> user@example.com --role editor

Note Commands

nlm note create

Create a note in a notebook.

nlm note create <notebook-id> [OPTIONS]
Option Description
--content Note content (required)
--title Note title
--profile Use specific profile

nlm note list

List all notes in a notebook.

nlm note list <notebook-id> [OPTIONS]
Option Description
--json Output as JSON
--profile Use specific profile

nlm note update

Update an existing note.

nlm note update <notebook-id> <note-id> [OPTIONS]
Option Description
--content New content
--title New title
--profile Use specific profile

nlm note delete

Delete a note permanently.

nlm note delete <notebook-id> <note-id> [OPTIONS]
Option Description
--confirm Required to confirm deletion
--profile Use specific profile

Chat Commands

nlm chat start

Start interactive chat REPL session.

nlm chat start <notebook-id> [OPTIONS]
Option Short Description
--profile -p Use specific profile

REPL Commands: - /sources - List available sources - /clear - Reset conversation context - /help - Show available commands - /exit - Exit the REPL

nlm chat configure

Configure chat behavior for a notebook.

nlm chat configure <notebook-id> [OPTIONS]
Option Description
--goal default, learning_guide, custom
--prompt Custom system prompt (required when goal is custom)
--response-length default, longer, shorter
--profile Use specific profile

Alias Commands

nlm alias set

Create or update an alias for a NotebookLM ID.

nlm alias set <name> <id>

Type is auto-detected. Notebook and source IDs are verified automatically.

nlm alias get

Resolve an alias to its UUID.

nlm alias get <name>

nlm alias list

List all aliases.

nlm alias list

nlm alias delete

Delete an alias.

nlm alias delete <name>

Config Commands

nlm config show

Display current configuration.

nlm config show [OPTIONS]
Option Description
--json Output as JSON instead of TOML

nlm config get

Get a specific configuration value.

nlm config get <key>

nlm config set

Set a configuration value.

nlm config set <key> <value>

Available Configuration Keys:

Key Default Description
output.format table Default output format (table, json)
output.color true Enable colored output
output.short_ids true Show shortened IDs
auth.browser auto Preferred browser for login (auto, chrome, arc, brave, edge, chromium, vivaldi, opera). Falls back to auto if preferred browser is not found.
auth.default_profile default Profile to use when --profile not specified. Note: The MCP Server always uses the active default profile. Changing this setting will instantaneously switch the MCP server's Google account.

Example: Set default profile to avoid typing --profile for every command:

# Preferred method (simpler)
nlm login switch work

# Alternative method (via config)
nlm config set auth.default_profile work

Organization and Automation

Labels

nlm label auto <notebook-id>
nlm label list <notebook-id>
nlm label reorganize <notebook-id> --confirm
nlm label create <notebook-id> "Research"
nlm label rename <notebook-id> <label-id> "New Name"
nlm label emoji <notebook-id> <label-id> "📚"
nlm label move <notebook-id> <source-id> <label-id>
nlm label delete <notebook-id> <label-id> --confirm

Full reorganization and deletion are destructive label operations. Sources are preserved when labels are deleted.

Tags and cross-notebook query

nlm tag add <notebook-id> --tags "ai,research"
nlm tag remove <notebook-id> --tags "ai"
nlm tag list
nlm tag select "ai research"
nlm cross query "Compare approaches" --notebooks "id1,id2"
nlm cross query "Summarize" --tags "ai,research"
nlm cross query "Everything" --all

Batch operations

nlm batch query "Summarize" --notebooks "id1,id2"
nlm batch add-source "https://example.com" --notebooks "id1,id2"
nlm batch create "Project A, Project B"
nlm batch delete --notebooks "id1,id2" --confirm
nlm batch studio audio --tags "research"

Pipelines

nlm pipeline list
nlm pipeline run ingest-and-podcast --notebook <id> --input-url "https://..."
nlm pipeline run research-and-report --notebook <id> --input-url "https://..."
nlm pipeline run multi-format --notebook <id>
nlm pipeline create my-pipeline --file pipeline.yaml

Run nlm <family> <command> --help for selector and profile options.


Setup, Skill, and Diagnostics

nlm setup list
nlm setup add <tool>
nlm setup remove <tool>

nlm skill list
nlm skill install <tool> [--level user|project]
nlm skill update [tool]
nlm skill uninstall <tool>
nlm skill show

nlm doctor
nlm doctor --verbose

Verb-first aliases are also available for common operations, including nlm create, nlm list, nlm get, nlm add, nlm rename, nlm delete, nlm status, nlm describe, nlm query, nlm sync, nlm download, nlm install skill, and nlm update skill.