From 71e212b24a10cb063800fb58dbbeb239d07c70cf Mon Sep 17 00:00:00 2001 From: Tim Evans Date: Thu, 16 Jul 2026 09:14:07 +0100 Subject: [PATCH] Add NotebookLM CLI setup memory (notebooklm-py + launchd keepalive) --- memory/MEMORY.md | 1 + memory/notebooklm-cli-setup.md | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 memory/notebooklm-cli-setup.md diff --git a/memory/MEMORY.md b/memory/MEMORY.md index 6e81645..2d67275 100644 --- a/memory/MEMORY.md +++ b/memory/MEMORY.md @@ -8,3 +8,4 @@ - [MINI-S Docker stacks](infra_minis_docker_stacks.md) — homelab (Portainer/Gitea/Obsidian/Stirling-PDF/Nextcloud) + Seafile cloud drive; ports, data paths, secrets locations - [MINI-S browser automation](infra_minis_browser_automation.md) — Playwright MCP (headless Chromium) lets Claude view/control web pages on the LAN incl. the Zyxel router; restart Claude after adding to load tools - [Local LLM agent stack](local-llm-agent-stack.md) — Hermes Agent + Ollama + Gemma 4 12B on the user's Mac; install gotchas (64K ctx, uv-managed Python 3.11) +- [NotebookLM CLI setup](notebooklm-cli-setup.md) — notebooklm-py on the Mac; pin --python 3.12 (else silent 0.1.1 downgrade), browser login, launchd auth-refresh keepalive diff --git a/memory/notebooklm-cli-setup.md b/memory/notebooklm-cli-setup.md new file mode 100644 index 0000000..f2f96b6 --- /dev/null +++ b/memory/notebooklm-cli-setup.md @@ -0,0 +1,16 @@ +--- +name: notebooklm-cli-setup +description: "NotebookLM CLI (teng-lin/notebooklm-py) installed on the Mac — install gotchas, auth, and the launchd keepalive" +metadata: + node_type: memory + type: project + originSessionId: f102e698-22a7-4706-8063-b599e2bd5fb1 +--- + +Google NotebookLM wired into Claude Code on the **Mac Mini** via `teng-lin/notebooklm-py` (unofficial; no public NotebookLM API exists — Enterprise API is the only official path). Installed 2026-07-16. + +- **Install:** `uv tool install --python 3.12 --force "notebooklm-py[browser]"` → binary at `~/.local/bin/notebooklm` (v0.7.3). **Gotcha:** plain `uv tool install` silently backtracks to the ancient 0.1.1 release (which tracebacks on import) because stock macOS Python is 3.9 and 0.7.3 needs ≥3.10. Always pin `--python 3.12`. `uv` itself came from Homebrew. +- **Skill:** `notebooklm skill install` → `~/.claude/skills/notebooklm/SKILL.md` (+ `~/.agents/skills/` for Codex). It's a skill, NOT an MCP server — won't show in `claude mcp list`, and the [[project_plugin_sync]] repo won't carry it to other machines. Each machine needs its own install + Google auth (creds are per-machine). +- **Auth:** `notebooklm login --browser chrome` (bundled Chromium crashes on macOS 15+/27; use system Chrome). Browser sign-in, auto-saves `~/.notebooklm/profiles/default/storage_state.json`. There is **no "master-token" auth** despite the repo blurb implying one. +- **Durability ("all the time"):** launchd keepalive at `~/Library/LaunchAgents/uk.timevans.notebooklm-refresh.plist` runs `notebooklm auth refresh --quiet` every 1200s, logs to `~/.notebooklm/refresh.log` (empty log = healthy; `--quiet` only writes on error). Loaded via `launchctl load`. Still an unofficial cookie session — a Google-side change or revocation needs a fresh `notebooklm login`; the log is where failure surfaces. +- **Verify:** `notebooklm auth check --test` (live token fetch) and `notebooklm list`. Free tier ~50 queries/day.