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
.nlmignoreand 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