tmc/nlm

a command line interface to NotebookLM

What it solves

nlm provides a way to interact with Google's NotebookLM without using a web browser. It allows developers and power users to manage notebooks, sources, and chats via a command-line interface (CLI), automate workflows in CI/CD pipelines, and integrate NotebookLM's capabilities into other AI agents using the Model Context Protocol (MCP).

How it works

The project is a reverse-engineered client written in Go that implements NotebookLM's private wire protocol. It uses a single static binary to perform operations. For authentication, it headlessly launches a browser to extract session tokens and cookies from an existing signed-in Google profile. It then communicates directly with NotebookLM's backend via RPC calls to manage data and trigger AI generations.

Who it’s for

  • Terminal users who prefer a CLI over a web UI for chatting and document management.
  • DevOps/CI engineers who want to script NotebookLM interactions.
  • AI Agent developers who want to use NotebookLM as a tool via an MCP server.
  • Go developers who want to use the provided Go package to build their own NotebookLM integrations.

Highlights

  • Comprehensive CLI: Supports full notebook management, source uploading (files, URLs, text), and interactive streaming chat.
  • MCP Server: Built-in support for the Model Context Protocol, allowing AI assistants to use NotebookLM tools.
  • Advanced Source Control: Includes idempotent directory synchronization with .nlmignore and the ability to filter sources by regex or labels.
  • Rich Output: Renders notes to Markdown/HTML and resolves citations back to specific local file line numbers.
  • ** uma Generation**: Can trigger the creation of audio deep dives, video walkthroughs, and slide decks.
  • Deep Research: Supports a dedicated research mode that can output self-contained Markdown reports with footnotes.

Related

  • Project
  • Project
  • Project
  • Project
  • Project