Skip to main content

notebooklm-cdp

Complete terminal toolkit for Google NotebookLM — Chrome-based auth via CDP, chat, source management, content generation, and Studio note access from the command line.

PyPI Python 3.11+ License: MIT Stars


What it does

notebooklm-cdp is a complete terminal interface for Google NotebookLM. Install it and you get two CLI tools:

nlm — authenticates into NotebookLM using your already-open Chrome Beta browser. One command (nlm login) extracts your active Google session via the Chrome DevTools Protocol — no OAuth popup, no login flow, no stored passwords. nlm also provides convenient index-based access to Studio notes: list, read, and export them to Markdown without knowing their UUIDs.

notebooklm — the full NotebookLM API from the terminal: create and manage notebooks, add sources (URLs, PDFs, YouTube, Google Docs, audio, video), chat with your content, generate podcasts, videos, quizzes, flashcards, slide decks, infographics, reports, and mind maps, then download the results. Complete Studio note CRUD. Multi-account profiles. Clean --json output for every command.


Who it is for

  • AI agent developers who need authenticated, programmatic NotebookLM access without interactive browser sessions
  • Developers using Claude Code, Codex, Cursor, or Windsurf who want to give their agent full NotebookLM access
  • Automation engineers who build NotebookLM workflows — research pipelines, podcast generation, document analysis — from the terminal
  • NotebookLM power users who want to manage notebooks, sources, and notes without touching the web UI

Features

  • CDP auth — reads Google session cookies from your running Chrome Beta; auto-detects the active account from the open NotebookLM tab
  • Notebooks — create, list, rename, delete; switch context with notebooklm use
  • Sources — add URLs, PDFs, YouTube videos, Google Docs, audio, video, images; wait for processing; deep web research mode
  • Chat — ask questions, get answers with source citations, continue conversations, save history as notes
  • Content generation — podcasts, videos, quizzes, flashcards, slide decks (PDF/PPTX), infographics, reports, mind maps, data tables
  • Studio notes — full CRUD via notebooklm note; convenient index-based access via nlm note list/read/export
  • Profiles — multiple Google accounts, isolated environments for parallel agents
  • --json output on every command for scripting and AI agent pipelines
  • CI/CD support — inline auth via NOTEBOOKLM_AUTH_JSON environment variable, no filesystem writes needed

Requirements

  • Chrome Beta with remote debugging enabled (--remote-debugging-port=9222)
  • NotebookLM open in a Chrome Beta tab
  • Python 3.11+

Install

uv tool install notebooklm-cdp

No uv? Run curl -LsSf https://astral.sh/uv/install.sh | sh, or use pip install notebooklm-cdp.


Quick start

# 1. Start Chrome Beta with remote debugging (once per session)
/Applications/Google\ Chrome\ Beta.app/Contents/MacOS/Google\ Chrome\ Beta \
  --remote-debugging-port=9222 --profile-directory=Default

# 2. Open https://notebooklm.google.com in Chrome Beta, then authenticate
nlm login

# 3. Use the full NotebookLM CLI
notebooklm list
notebooklm create "My Research"
notebooklm source add "https://example.com/paper.pdf"
notebooklm ask "What are the key findings?"
notebooklm generate audio "Focus on practical implications"

# 4. Manage Studio notes
nlm note list -n <notebook_id>
nlm note read 1 -n <notebook_id>
nlm note export -n <notebook_id> --output notes.md

Commands

Authentication

Command Description
nlm login Extract Google session from Chrome Beta via CDP
notebooklm login Interactive browser login (fallback)
notebooklm auth check Diagnose auth status
notebooklm status Show active account and notebook context

Notebooks & Sources

Command Description
notebooklm list List all notebooks
notebooklm create "Title" Create a notebook
notebooklm use <id> Set active notebook context
notebooklm source add <url|file> Add a source (URL, PDF, YouTube, etc.)
notebooklm source list List sources in active notebook
notebooklm source add-research "query" Add web research results as sources

Chat

Command Description
notebooklm ask "question" Chat with notebook content
notebooklm ask "question" --json Chat with source citations
notebooklm ask "question" --save-as-note Save answer as a Studio note
notebooklm history Show conversation history

Content Generation

Command Description
notebooklm generate audio "instructions" Generate a podcast (Deep Dive)
notebooklm generate video "instructions" Generate a video explainer
notebooklm generate quiz Generate a quiz
notebooklm generate flashcards Generate flashcards
notebooklm generate slide-deck Generate a slide deck (PDF/PPTX)
notebooklm generate report --format briefing-doc Generate a report
notebooklm generate mind-map Generate a mind map
notebooklm download audio ./output.mp3 Download generated audio
notebooklm artifact list Check generation status

Studio Notes

Command Description
nlm note list -n <id> List notes with sequential index and title
nlm note read <n> -n <id> Read note by 1-based index or UUID
nlm note export -n <id> --output file.md Export all notes to Markdown
notebooklm note list -n <id> Full note list with IDs
notebooklm note create -n <id> --title "T" "content" Create a note
notebooklm note save <note_id> -n <id> Update note content
notebooklm note delete <note_id> -n <id> Delete a note

How auth works

nlm login connects to Chrome Beta's CDP endpoint at http://127.0.0.1:9222, finds the open NotebookLM tab, reads the active Google session cookies, and saves them to ~/.notebooklm/profiles/default/storage_state.json. The Google account index (authuser) is detected automatically from the tab URL and embedded in the session file.

No passwords or credentials are stored — only the session cookies already present in your browser. Re-run nlm login whenever cookies expire.


License

MIT — Nolan Vale

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notebooklm_cdp-0.1.2.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notebooklm_cdp-0.1.2-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file notebooklm_cdp-0.1.2.tar.gz.

File metadata

  • Download URL: notebooklm_cdp-0.1.2.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for notebooklm_cdp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 25fd49e18abae797c37ca387928a0888039b94eb52e3fa0d618728328d059a96
MD5 4e325f23611c73fcf752c6540516800d
BLAKE2b-256 0a524cfad0e91fcc59f0affd4a535f84bdd591d6fa78b89b71e8a90ac7c7ce2b

See more details on using hashes here.

File details

Details for the file notebooklm_cdp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: notebooklm_cdp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for notebooklm_cdp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c9642eb3658ff7b9d507b38ed2578961fd76bb9b1e3068977b70010d13d36bac
MD5 ee52f044cd9ba17889617022b9b56c4f
BLAKE2b-256 936c3240203cd527d49c329e5d1f42cb54030b00f8a6935b76fa7d1fb8ce9628

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page