NotebookLM Skill
When to use
Use this skill when the user asks to:
- create/manage NotebookLM notebooks
- add URLs/files/YouTube sources
- summarize or query notebook content
- generate/download NotebookLM artifacts
Runtime rules (required)
Always use
shell_cmdwith tokenized arguments:commandmust be one executable token ("notebooklm")- pass all flags/args in
parameters - never pass a full command line string in
command
Prefer structured output whenever IDs are needed:
- use
--jsonforcreate,list, and other parse-sensitive steps.
- use
Do not invent IDs or titles:
- use values only from the most recent successful tool result.
- if a reported ID conflicts with tool output, correct it immediately.
Before any notebook-scoped command, establish context:
notebooklm use <notebook_id>immediately after create/select.- if available, also pass explicit notebook flag (
--notebook <id>/-n <id>).
If output says
No notebook specified, runnotebooklm use <id>and retry once.If auth errors occur, run:
notebooklm auth checknotebooklm loginif needed.
Tool loop contract (required)
- If there are pending sources to add, the assistant MUST emit exactly one
shell_cmdtool call in each continuation turn. - Do not emit progress-only narration between source-add steps.
- Plain-text-only turns are allowed only when:
- all planned source-add steps are complete (final summary), or
- there is a blocker/error that prevents the next tool call.
Forbidden pattern:
I added one source. Now adding the next.without atool_callsaction in the same turn.
Continuation guard (important)
- Do not end with narration-only future intent unless a real
tool_callsaction is emitted in the same assistant turn. - If no tool call can be emitted yet, state the blocker explicitly instead of promising the next step.
Canonical command patterns
notebooklm list --json
notebooklm create "<title>" --json
notebooklm use <notebook_id>
notebooklm source add "<url-or-path>"
notebooklm source list --json
notebooklm ask "<question>" --json
shell_cmd call shape (must follow)
{"command":"notebooklm","parameters":["create","Agent Skills Research","--json"]}
Required workflow: create notebook and add sources
- Run
notebooklm create "<title>" --json. - Parse notebook ID from tool output (
notebook.idor top-levelid). - Run
notebooklm use <id>. - Add each source with
notebooklm source add <url-or-path> --notebook <id>. - For multiple sources, keep the tool loop active and emit the next add call immediately after each successful result.
- Optionally verify using
notebooklm source list --json. - Report concise results (notebook id, successful adds, failures).
Safety
- Ask before destructive operations (delete) or expensive long-running generation when user intent is unclear.
- Do not claim success unless confirmed by tool output.