# NotebookLM CLI

Manages notebooks, sources and generated content with the nlm CLI and MCP.

- Repository: https://github.com/jacob-bd/gemini-notebook-mcp-cli (6439 stars)
- Category: Documents
- License: MIT
- Last updated: 2026-10-27
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add jacob-bd/gemini-notebook-mcp-cli --skill nlm-skill -g -a claude-code -y`
Codex: `npx skills add jacob-bd/gemini-notebook-mcp-cli --skill nlm-skill -g -a codex -y`
Cursor: `npx skills add jacob-bd/gemini-notebook-mcp-cli --skill nlm-skill -g -a cursor -y`
Gemini CLI: `npx skills add jacob-bd/gemini-notebook-mcp-cli --skill nlm-skill -g -a gemini-cli -y`

## Description

Expert guide for the Gemini Notebook (formerly Google NotebookLM) CLI (`nlm`) and MCP server - interfaces for Gemini Notebook. Use this skill when users want to interact with Gemini Notebook programmatically, including: creating/managing notebooks, checking plan usage and quota windows, adding sources (URLs, YouTube, text, Google Drive), generating content (podcasts, reports, interactive reports, quizzes, flashcards, mind maps, slides, infographics, videos, data tables), conducting research, chatting with sources, or automating Gemini Notebook workflows. Triggers on mentions of "nlm", "notebooklm", "Gemini Notebook", "plan usage", "quota", "podcast generation", "audio overview", "interactive report", "lesson report", "refactor document", "critique draft", or any Gemini Notebook-related automation task.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Gemini Notebook CLI & MCP Expert

This skill provides comprehensive guidance for using Gemini Notebook via both the `nlm` CLI and MCP tools.

## Tool Detection (CRITICAL - Read First!)

**ALWAYS check which tools are available before proceeding:**

1. **Check for MCP tools**: Tool names vary by host; look for `mcp__gemini-notebook-mcp__*`, `mcp__notebooklm_mcp__*`, or `mcp_gemini_notebook_mcp_*`.
2. **Follow an explicit surface choice**: If the user asks for MCP or CLI, use it.
3. **Choose by task when both are available**: Use MCP for notebook operations and downloads inside its configured download directory. Use the CLI for an explicit `--profile` without changing the MCP default account, or for a user-directed output path outside the MCP download directory. Ask only if the choice would materially change the result and the user's preference is unclear.
4. **Use the available surface** when only MCP or only CLI is callable; read its tool docstring or `nlm <command> --help` before supplying unfamiliar options.

**Decision Logic:**

```
has_mcp_tools = check_available_tools()  # Look for any NotebookLM MCP tool name above
has_cli = check_bash_available()  # Can run nlm commands

if user_named_mcp_or_cli:
    use_that_surface()
elif needs_workspace_output_outside_mcp_root or needs_explicit_profile_without_switching_default:
    use_cli()
elif has_mcp_tools:
    use_mcp()
elif has_cli:
    use_cli()
```

The rest: https://github.com/jacob-bd/gemini-notebook-mcp-cli/blob/HEAD/src/notebooklm_tools/data/SKILL.md
