| Crates.io | nblm-cli |
| lib.rs | nblm-cli |
| version | 0.2.3 |
| created_at | 2025-10-19 15:39:21.270774+00 |
| updated_at | 2025-11-19 17:20:53.501431+00 |
| description | Command-line interface for NotebookLM Enterprise API |
| homepage | https://github.com/K-dash/nblm-rs |
| repository | https://github.com/K-dash/nblm-rs |
| max_upload_size | |
| id | 1890559 |
| size | 195,099 |
Unofficial NotebookLM Enterprise API client
🦀 Rust CLI: Command-line tool for shell scripting and automation
🐍 Python SDK: Python bindings for integration in Python applications
[!IMPORTANT] This project targets the NotebookLM Enterprise API only. Google hasn’t published an API for the consumer edition or general Google Workspace tenants as of 2025-10-25.
In September 2025, Google released the NotebookLM Enterprise API, enabling programmatic access to NotebookLM features for the first time.
While you can interact with the API using simple curl commands, this approach has several limitations that this project addresses:
Authentication complexity
gcloud CLI integration with automatic token caching and refreshManual request construction
Error handling
Repeated operations
Output parsing
--json output in the CLI for easy integration with tools like jqThis project provides production-ready tools that make the NotebookLM API accessible and reliable:
# macOS
brew tap k-dash/nblm https://github.com/K-dash/homebrew-nblm
brew install k-dash/nblm/nblm
# Linux (prebuilt binaries)
# Download from Releases page: https://github.com/K-dash/nblm-rs/releases
# From source
cargo install nblm-cli
pip install nblm
# or
uv add nblm
Prerequisite: a Google Cloud project with the NotebookLM Enterprise API enabled and either
gcloud auth loginor an OAuth token ready forNBLM_ACCESS_TOKEN.
For detailed installation instructions and troubleshooting, see the Installation Guide.
# 1. Authenticate
gcloud auth login
# 2. Set environment variables
export NBLM_PROJECT_NUMBER="123456789012" # Get from GCP console
export NBLM_LOCATION="global"
export NBLM_ENDPOINT_LOCATION="global"
# 3. Create a notebook
nblm notebooks create --title "My Notebook"
# 4. Add a source
nblm sources add \
--notebook-id YOUR_NOTEBOOK_ID \
--web-url "https://example.com" \
--web-name "Example"
from nblm import NblmClient, GcloudTokenProvider, WebSource
# Initialize client
client = NblmClient(
token_provider=GcloudTokenProvider(),
project_number="123456789012"
)
# Create a notebook
notebook = client.create_notebook(title="My Notebook")
# Add sources
response = client.add_sources(
notebook_id=notebook.notebook_id,
web_sources=[WebSource(url="https://example.com", name="Example")]
)
[!NOTE] The NotebookLM API is currently in alpha. Some features may not work as documented due to API limitations. See the complete feature list in the documentation.
nblm-rs supports the following NotebookLM API operations:
For detailed feature status and limitations, see the Features documentation.
Complete guides and API references:
📖 Full Documentation - Complete guides, API references, and examples
[!NOTE] The NotebookLM API is currently in alpha and has several known limitations. See API Limitations for details.
Contributions are welcome! See CONTRIBUTING.md for development setup and guidelines.
MIT