notebooklm-bridge
Grounded, cited answers from your NotebookLM notebooks inside Claude Code, Codex, Cursor, and pi. Your agent stops guessing — it asks your sources.
Package details
Install notebooklm-bridge from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:notebooklm-bridge- Package
notebooklm-bridge- Version
0.4.1- Published
- Aug 5, 2026
- Downloads
- 156/mo · 18/wk
- Author
- marktripoli
- License
- MIT
- Types
- skill
- Size
- 34.4 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"skills": [
"./skills"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
Before / after
You ask: "Should our sync protocol batch operations before gossip, per the CRDT papers I collected?"
Without — free association from training data. Confident. Uncited. Maybe wrong.
With:
Delta-state CRDTs batch naturally; op-based CRDTs require causal ordering,
so batching windows must respect happens-before [1][3].
Sources: "Delta State CRDTs" (Almeida et al.), "Local-first software" (Ink & Switch)
Verify: https://notebooklm.google.com/notebook/c528aa1c-...
Grounded in papers you curated. Citations you can click. A link another agent can audit.
Install
Quick — skill only, any agent (interactive multi-select):
npx skills add Triippz/notebooklm-bridge
Full — dependencies, auth, registry, all harnesses:
git clone https://github.com/Triippz/notebooklm-bridge && cd notebooklm-bridge
./install.sh
The installer handles everything, interactively: dependencies (uv, notebooklm-py[browser,cookies], Playwright Chromium — manifest printed up front), Google auth (browser or Chrome-cookie reuse), registry bootstrap (per-notebook consent), and harness wiring:
| harness | mechanism |
|---|---|
| Claude Code | full plugin — skill + /nlm commands + SessionStart hook |
| Codex | skill at ~/.agents/skills/ (agentskills spec) |
| Cursor | skill at ~/.cursor/skills/ |
| pi | skill at ~/.pi/agent/skills/ |
Claude Code direct: /plugin marketplace add Triippz/notebooklm-bridge → /plugin install notebooklm-bridge@notebooklm-bridge
Usage
Plain English works everywhere — no commands to memorize:
| you say | the agent does |
|---|---|
| "what do my notebooks say about X?" | queries matching notebooks, cites sources |
| "save this to notebooklm to reference later" | adds content as a source to the right notebook |
| "create a video explaining why you chose this design" | generates a NotebookLM artifact from the change |
| "make a repo-memory notebook for this project" | creates + seeds + registers (with your approval) |
| "unregister notebook X" | removes the registry row — notebook untouched |
Claude Code slash commands: /nlm (query) · /nlm-new (create) · /nlm-artifact (generate) · /nlm-sync (reconcile).
How it works
your question
│
▼
registry ── domain match? ──no──▶ agent answers normally
│
yes
▼
notebooklm ask --notebook <id> grounded retrieval, real sources
│
▼
answer + citations + verify link combined with local code truth
| mode | what happens |
|---|---|
| always-on | skill auto-triggers when a question hits a registered domain |
| session-start | hook injects the registry — agent knows your notebooks from turn one |
| adhoc | /nlm <notebook> <question> or plain English |
The registry
One markdown table rules everything: ~/.config/notebooklm-kb/registry.md
| notebook id | name | knows about | query when |
|-------------|-------------|-----------------------------------|---------------------|
| c528aa1c-… | CRDT papers | CRDTs, op logs, sync, local-first | distributed sync Qs |
- Registration is always explicit — agents never add a notebook without per-notebook approval. Unregistered is a choice.
- Topics changed? Edit the file, or say "notebook X also covers Y."
- Drift?
scripts/registry-sync.shflags deleted notebooks (--pruneremoves rows); agents self-heal on query 404s. - Cross-repo by design — user-level registry, shared by every repo and session.
Artifacts
NotebookLM Studio, driven by your agent: reports (briefing-doc · study-guide · blog-post), podcast-style audio, video, slide decks, quizzes, flashcards, mind maps, infographics.
The killer recipe — explain an agent's code change: agent summarizes what it changed and why → adds it as a source to your repo's notebook → generates a report or audio explainer → hands you the file + notebook link.
Releases
Semantic versioning, Conventional Commits, changelog in CHANGELOG.md.
./scripts/release.sh patch|minor|major # bump plugin.json, update changelog, tag, push
Caveats
- Built on notebooklm-py — unofficial NotebookLM API (cookie auth). Google frontend changes can break it; the bridge stays thin so the transport is swappable.
- Google ships no official query API — the Enterprise API manages notebooks/sources only.
- Keep notebooks focused: one domain per notebook routes best.
License
MIT