This document contains the complete command signatures and all available options for every nlm command.
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
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.
List all authentication profiles with their associated email addresses.
nlm login profile list
Delete an authentication profile and its credentials.
nlm login profile delete <profile>
Rename an authentication profile.
nlm login profile rename <old-name> <new-name>
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
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 |
Create a new notebook.
nlm notebook create <title> [OPTIONS]
| Option | Short | Description |
|---|---|---|
--json |
-j |
Output stable machine-readable result |
--profile |
-p |
Use specific profile |
Get notebook details.
nlm notebook get <notebook-id> [OPTIONS]
| Option | Short | Description |
|---|---|---|
--profile |
-p |
Use specific profile |
Get AI-generated notebook summary with suggested topics.
nlm notebook describe <notebook-id> [OPTIONS]
| Option | Short | Description |
|---|---|---|
--profile |
-p |
Use specific profile |
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 |
Rename a notebook.
nlm notebook rename <notebook-id> <new-title> [OPTIONS]
| Option | Short | Description |
|---|---|---|
--profile |
-p |
Use specific profile |
Delete a notebook permanently.
nlm notebook delete <notebook-id> [OPTIONS]
| Option | Description |
|---|---|
--confirm |
Required to confirm deletion |
--profile |
Use specific profile |
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).
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 |
Get source metadata.
nlm source get <source-id> [OPTIONS]
| Option | Short | Description |
|---|---|---|
--profile |
-p |
Use specific profile |
Get AI-generated source summary with keywords.
nlm source describe <source-id> [OPTIONS]
| Option | Short | Description |
|---|---|---|
--profile |
-p |
Use specific profile |
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 |
List stale (outdated) Drive sources.
nlm source stale <notebook-id> [OPTIONS]
| Option | Short | Description |
|---|---|---|
--profile |
-p |
Use specific profile |
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 |
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 |
Delete a source permanently.
nlm source delete <source-id> [OPTIONS]
| Option | Description |
|---|---|
--confirm |
Required to confirm deletion |
--profile |
Use specific profile |
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 |
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 |
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 |
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 |
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.
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") |
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 |
Generate flashcards.
nlm flashcards create <notebook-id> [OPTIONS]
| Option | Values | Default |
|---|---|---|
--difficulty |
easy, medium, hard |
medium |
--focus |
Focus text/topic |
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>.
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 |
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.
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 |
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.
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.
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.
Delete a generated artifact.
nlm studio delete <notebook-id> <artifact-id> [OPTIONS]
| Option | Description |
|---|---|
--confirm |
Required to confirm deletion |
--profile |
Use specific profile |
| --- |
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 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"
Get current sharing settings for a notebook.
nlm share status <notebook-id> [OPTIONS]
| Option | Description |
|---|---|
--profile |
Use specific profile |
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
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
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 |
List all notes in a notebook.
nlm note list <notebook-id> [OPTIONS]
| Option | Description |
|---|---|
--json |
Output as JSON |
--profile |
Use specific profile |
Update an existing note.
nlm note update <notebook-id> <note-id> [OPTIONS]
| Option | Description |
|---|---|
--content |
New content |
--title |
New title |
--profile |
Use specific profile |
Delete a note permanently.
nlm note delete <notebook-id> <note-id> [OPTIONS]
| Option | Description |
|---|---|
--confirm |
Required to confirm deletion |
--profile |
Use specific profile |
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
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 |
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.
Resolve an alias to its UUID.
nlm alias get <name>
List all aliases.
nlm alias list
Delete an alias.
nlm alias delete <name>
Display current configuration.
nlm config show [OPTIONS]
| Option | Description |
|---|---|
--json |
Output as JSON instead of TOML |
Get a specific configuration value.
nlm config get <key>
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
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.
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
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"
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.
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.