Search and answer questions over documents already uploaded to NotebookLM using the nlm CLI. Use when users ask to find information, summarize sources, or query a specific NotebookLM notebook.
Scanned 9/7/2026
Install to Claude Code
npx -y skills add modbender/skill-library-mcp --skill notebooklm-cli-cookies --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Notebooklm Cli Cookies?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/modbender-notebooklm-cli-cookies)More formats (shields.io, HTML) on the badges page.
---
name: notebooklm-cli
description: Search and answer questions over documents already uploaded to NotebookLM using the nlm CLI. Use when users ask to find information, summarize sources, or query a specific NotebookLM notebook.
metadata: {"openclaw":{"requires":{"bins":["nlm"],"env":["NOTEBOOKLM_MCP_CLI_PATH"]}}}
user-invocable: true
---
# NotebookLM CLI
## Purpose
Use this skill when the user wants to search or ask questions over content that already exists in NotebookLM notebooks.
This skill assumes:
- `nlm` is installed (`notebooklm-mcp-cli` package).
- Auth was pre-injected for headless runtime.
- `NOTEBOOKLM_MCP_CLI_PATH` points to the auth storage directory.
## Hard Rules (avoid wrong tool choices)
When the user mentions any of the following, treat it as a strict request to query NotebookLM:
- "NotebookLM", "notebooklm"
- "notebook alias", "alias"
- a known alias name (for example: `tai_lieu_dien`, `nlm_tai_lieu_dien`)
In these cases:
- Always run `nlm` via Exec to answer. Do not answer from memory.
- Do not switch to web search unless the user explicitly asks for web sources.
- If the answer is not in the notebook, say so (based on the `nlm` output).
Slash command:
- If the user invokes this skill via `/nlm ...` in Telegram, treat the raw text after `/nlm` as the `nlm` arguments.
- Always execute exactly: `nlm <args>` via Exec, and return the relevant stdout.
## Runtime Checks
Before running queries:
1. Verify auth path is configured:
```bash
echo "$NOTEBOOKLM_MCP_CLI_PATH"
```
2. Verify login status:
```bash
nlm login --check
```
If auth check fails, stop and ask for auth refresh workflow (do not run browser login in AWS runtime).
## Query Workflow
1. List notebooks:
```bash
nlm notebook list --json
```
2. Select notebook:
- If user provided notebook id, use it directly.
- If user provided title, resolve it to `notebook_id` from the list output (do not pass raw title into `nlm notebook get/source list/query`).
- If user provided alias, use the alias.
- If ambiguous, ask user to choose one notebook.
3. Query notebook:
```bash
nlm notebook query "<notebook_id_or_alias>" "<user_question>"
```
4. Return answer and include which notebook was queried.
Notes:
- `nlm notebook list` returns titles for display, but many other commands expect a notebook id (UUID) or an alias. Passing a title like `"tài liệu điện"` may return null/empty results.
- If the user will query the same notebook often, create an alias and use it consistently (for example: `tai_lieu_dien`).
## Telegram Prompt Templates (copy/paste)
Prefer one of these formats to reliably trigger this skill:
1) Force CLI query:
```text
Chạy lệnh: nlm notebook query tai_lieu_dien "giá của A9N61500 là bao nhiêu? Nếu notebook không có thông tin giá thì trả lời: không thấy trong NotebookLM."
```
2) Natural language but explicit:
```text
Trong NotebookLM notebook alias tai_lieu_dien: trả lời câu hỏi "giá của A9N61500 là bao nhiêu?". Bắt buộc dùng nlm để truy vấn, không tìm web, không đọc file local.
```
## Output Guidelines
- Be explicit about notebook identity (title + id when available).
- If query result is empty or vague, suggest a refined follow-up query.
- Prefer concise, factual answers grounded in NotebookLM response.
## Common Errors
- `Authentication expired` / `401` / `403`:
- Check `NOTEBOOKLM_MCP_CLI_PATH`.
- Ensure `profiles/default/cookies.json` and `profiles/default/metadata.json` exist.
- Refresh cookies outside AWS (machine with browser), then redeploy secret.
- `nlm: command not found`:
- Install package: `pipx install notebooklm-mcp-cli` (recommended), or `uv tool install notebooklm-mcp-cli`.
## Command Reference
```bash
# List notebooks
nlm notebook list --json
# Query notebook by id or alias
nlm notebook query "<notebook_id_or_alias>" "<question>"
# Check auth status
nlm login --check
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!