---
name: NotebookLM CLI
slug: notebooklm-cli
category: AI Engineering
description: NotebookLM CLI drives Google NotebookLM from the command line to create notebooks, add sources, ask grounded questions, and generate artifacts like study guides, audio overviews, and slide decks. Use it when you need to manage NotebookLM programmatically and require Google login.
github: "https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/.claude/skills/notebooklm-cli"
language: Python
stars: 215
forks: 45
install: "npx degit https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/.claude/skills/notebooklm-cli ~/.claude/skills/notebooklm-cli"
installs_to: ~/.claude/skills/notebooklm-cli
source_path: .claude/skills/notebooklm-cli/SKILL.md
collection_size: 25
category_size: 2970
collection_url: "https://dirskills.com/collections/ItamarZand88/CLI-Anything-WEB"
added: 2026-09-04T05:25:48.892Z
last_synced: 2026-09-04T05:25:48.892Z
canonical_url: "https://dirskills.com/skills/notebooklm-cli"
---

# NotebookLM CLI

NotebookLM CLI drives Google NotebookLM from the command line to create notebooks, add sources, ask grounded questions, and generate artifacts like study guides, audio overviews, and slide decks. Use it when you need to manage NotebookLM programmatically and require Google login.

**Install:**

```bash
npx degit https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/.claude/skills/notebooklm-cli ~/.claude/skills/notebooklm-cli
```

## README

# cli-web-notebooklm

Manage NotebookLM notebooks, sources, chat, and artifact generation. Requires Google auth (`auth login`).
Install: `pip install "cli-web-notebooklm[auth]"`, then `playwright install chromium`.

## Commands

| Command | Purpose | Key options |
|---------|---------|-------------|
| `notebooks list\|create\|get\|rename\|delete` | Manage notebooks | `--title`, `--emoji`; `delete` needs `--confirm`; IDs may be partial |
| `use NOTEBOOK_ID` / `status` | Set/show persistent notebook context | once set, `--notebook` is optional everywhere |
| `sources list\|get\|delete` | Manage sources | `--notebook ID`, `delete` needs `--confirm` |
| `sources add-url --url URL` | Add a web page as source | |
| `sources add-text --title T --text "..."` | Add pasted text as source | |
| `chat ask --query "..."` | Ask the notebook a question | `--notebook ID` |
| `artifacts generate --type TYPE` | Generate an artifact | types: `audio`, `video`, `mindmap`, `study-guide`, `briefing`, `faq`, `quiz`, `infographic`, `slide-deck`, `data-table`; `--wait` (poll until done), `--retry N`, `-o FILE` |
| `artifacts list` | All artifacts with status | |
| `artifacts download ARTIFACT_ID -o FILE` | Download a completed artifact | briefing/study-guide → .md, audio/video → .mp4, slide-deck → .pdf/.pptx, data-table → .csv, quiz/faq → .json; mindmap content is inline |
| `artifacts generate-notes` / `artifacts list-audio-types` | Study notes; audio overview formats | |
| `whoami` | Current Google account | |

## Examples

```bash
# Build a research notebook end to end
cli-web-notebooklm notebooks create --title "Research" --json
cli-web-notebooklm use <id-from-above>
cli-web-notebooklm sources add-url --url https://example.com/paper --json
sleep 10   # sources need a few seconds of processing

# Ask a grounded question
cli-web-notebooklm chat ask --query "What methodology was used?" --json

# Generate a briefing doc and save it
cli-web-notebooklm artifacts generate --type briefing --wait -o briefing.md --json

# Generate a podcast-style audio overview (5-10 min), then download
cli-web-notebooklm artifacts generate --type audio --wait --json
cli-web-notebooklm artifacts download <artifact-id> -o podcast.mp4 --json
```

## JSON output

Commands accept `--json` and return the data directly (e.g. notebooks list: `[{id, title, emoji, source_count, ...}]`; chat ask: `{notebook_id, query, answer}`). Errors return `{"error": true, "code": "AUTH_EXPIRED", "message": "..."}`.

## Auth

```bash
cli-web-notebooklm auth login                    # browser login with Google account
cli-web-notebooklm auth login --cookies-json f   # import cookies from a file
cli-web-notebooklm auth status --json
cli-web-notebooklm auth refresh                  # re-extract tokens when rotated but cookies still valid
```

For CI, set `CLI_WEB_NOTEBOOKLM_AUTH_JSON` with the cookies JSON. Run `doctor` to diagnose auth setup.

## Utilities

`cli-web-notebooklm doctor [--json]` self-diagnoses the local setup (install, auth, dependencies). `cli-web-notebooklm mcp-serve` serves the commands as MCP tools over stdio.

## Agent tips

- Use `--wait` on `artifacts generate` — audio/video take 5-10 minutes and the CLI polls with backoff. `--retry N` handles rate limits.
- Wait ~10 seconds after adding sources before asking questions or generating artifacts.
- Notebook/source/artifact IDs accept unique prefixes (partial IDs).
