# notebooklm-2 > Use the workspace CLI wrapper around NotebookLM. Prefer the script in `scripts/` to avoid manual repo path setup. - Author: 0xturboblitz - Repository: sundial-org/awesome-openclaw-skills - Version: 20260201003509 - Stars: 38 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/sundial-org/awesome-openclaw-skills - Web: https://mule.run/skillshub/@@sundial-org/awesome-openclaw-skills~notebooklm-2:20260201003509 --- --- name: notebooklm-2 description: NotebookLM CLI automation for this workspace: authenticate/login, list/create/use/rename/delete notebooks, ask/configure chat, manage sources/notes/sharing, research status, and generate/download artifacts via `uv run tiangong-workspace notebooklm ...`. Use when tasks involve NotebookLM notebooks, sources, notes, sharing, research, or generated outputs (slide decks, flashcards, reports, etc.). homepage: https://notebooklm.google.com metadata: {"clawdbot":{"emoji":"NLM","requires":{"bins":["node","uv","notebooklm"],"env":[]},"notes":"Requires notebooklm CLI authentication and access to this repo's uv environment."}} --- # NotebookLM Use the workspace CLI wrapper around NotebookLM. Prefer the script in `scripts/` to avoid manual repo path setup. ## Quick start ```bash node {baseDir}/scripts/notebooklm.mjs status node {baseDir}/scripts/notebooklm.mjs login node {baseDir}/scripts/notebooklm.mjs list node {baseDir}/scripts/notebooklm.mjs use node {baseDir}/scripts/notebooklm.mjs ask "Summarize the key takeaways" --notebook ``` ## Session and auth ```bash node {baseDir}/scripts/notebooklm.mjs status node {baseDir}/scripts/notebooklm.mjs login node {baseDir}/scripts/notebooklm.mjs clear node {baseDir}/scripts/notebooklm.mjs auth check --test --json ``` ## Notebooks ```bash node {baseDir}/scripts/notebooklm.mjs list node {baseDir}/scripts/notebooklm.mjs create "Research Notebook" node {baseDir}/scripts/notebooklm.mjs use node {baseDir}/scripts/notebooklm.mjs rename "New Title" --notebook node {baseDir}/scripts/notebooklm.mjs delete --notebook --yes node {baseDir}/scripts/notebooklm.mjs summary --notebook --topics ``` ## Chat ```bash node {baseDir}/scripts/notebooklm.mjs ask "What are the top risks?" --notebook node {baseDir}/scripts/notebooklm.mjs configure --mode concise --notebook node {baseDir}/scripts/notebooklm.mjs history --notebook --limit 20 ``` ## Sources ```bash node {baseDir}/scripts/notebooklm.mjs source add https://example.com --notebook node {baseDir}/scripts/notebooklm.mjs source add "Inline notes" --title "Meeting" --notebook node {baseDir}/scripts/notebooklm.mjs source add-drive "Drive Doc" --notebook node {baseDir}/scripts/notebooklm.mjs source add-research "market analysis" --mode deep --import-all node {baseDir}/scripts/notebooklm.mjs source get node {baseDir}/scripts/notebooklm.mjs source guide --json node {baseDir}/scripts/notebooklm.mjs source fulltext -o ./source.txt node {baseDir}/scripts/notebooklm.mjs source rename "New Title" node {baseDir}/scripts/notebooklm.mjs source delete --yes node {baseDir}/scripts/notebooklm.mjs source refresh node {baseDir}/scripts/notebooklm.mjs source stale node {baseDir}/scripts/notebooklm.mjs source wait --timeout 300 --exec-timeout 600 ``` ## Artifacts ```bash node {baseDir}/scripts/notebooklm.mjs generate slide-deck "Create a 10-slide executive summary" --notebook --wait node {baseDir}/scripts/notebooklm.mjs artifact list --notebook --json node {baseDir}/scripts/notebooklm.mjs artifact get node {baseDir}/scripts/notebooklm.mjs artifact rename "New Title" node {baseDir}/scripts/notebooklm.mjs artifact delete --yes node {baseDir}/scripts/notebooklm.mjs artifact export --title "Exec Summary" --type docs node {baseDir}/scripts/notebooklm.mjs artifact suggestions --json node {baseDir}/scripts/notebooklm.mjs download slide-deck ./slides.pdf --notebook --latest node {baseDir}/scripts/notebooklm.mjs artifact wait --timeout 600 --exec-timeout 900 ``` ## Notes ```bash node {baseDir}/scripts/notebooklm.mjs note create "Key points" --title "Highlights" node {baseDir}/scripts/notebooklm.mjs note list --notebook node {baseDir}/scripts/notebooklm.mjs note get node {baseDir}/scripts/notebooklm.mjs note save --content "Updated notes" node {baseDir}/scripts/notebooklm.mjs note rename "New Title" node {baseDir}/scripts/notebooklm.mjs note delete --yes ``` ## Sharing ```bash node {baseDir}/scripts/notebooklm.mjs share add user@example.com --permission editor node {baseDir}/scripts/notebooklm.mjs share update user@example.com --permission viewer node {baseDir}/scripts/notebooklm.mjs share remove user@example.com --yes node {baseDir}/scripts/notebooklm.mjs share public --enable node {baseDir}/scripts/notebooklm.mjs share view-level full node {baseDir}/scripts/notebooklm.mjs share status --json ``` ## Research ```bash node {baseDir}/scripts/notebooklm.mjs research status --notebook node {baseDir}/scripts/notebooklm.mjs research wait --timeout 600 --interval 5 --exec-timeout 900 ``` ## Language and skill ```bash node {baseDir}/scripts/notebooklm.mjs language list --json node {baseDir}/scripts/notebooklm.mjs language get --json node {baseDir}/scripts/notebooklm.mjs language set zh_Hans node {baseDir}/scripts/notebooklm.mjs skill status node {baseDir}/scripts/notebooklm.mjs skill install ``` ## Notes - Use `--json` for machine-readable output. - Use `--exec-timeout ` when a NotebookLM command might hang; `--timeout` is reserved for NotebookLM wait/poll durations. - The wrapper script searches upward for `pyproject.toml` containing `[tool.tiangong.workspace]`. - Override repo detection with `TIANGONG_WORKSPACE_ROOT=/path/to/repo`. - If the NotebookLM CLI is not authenticated, run `notebooklm login` or `notebooklm status` and follow its login instructions.