Skip to content

proyecto26/notebooklm-ai-plugin

v1.1.1MIT

Generate NotebookLM artifacts (slides, audio, video, mind maps, quizzes, flashcards, infographics, reports, data tables) from your notebooks. Use when the user wants to create any NotebookLM Studio output from their uploaded sources.

Changelog

1.1.1 — 2026-11-04

Fixed

  • Login no longer reports success before you sign in. notebook.google.com ("Gemini Notebook") serves its app shell with HTTP 200 even signed out, so the old check (cookie names plus the tab URL) passed within seconds and saved a signed-out session; every command then failed with "Failed to extract CSRF token (SNlM0e)". Login now verifies each candidate session with a real, time-bounded request (scripts/session.ts) and keeps the window open until the page shows a signed-in account and its CSRF token, then confirms with RPCClient.init() before saving.
  • Clear session errors. init() raises typed SessionErrors: signed_out (run login --force), token_source_changed (Google moved the CSRF token; the skill needs an update), network, unexpected. A cached session only reopens Chrome when it is signed out, so other failures no longer loop. Redirect messages drop query strings and fragments.
  • Removed the unused validateNotebookLMSession.

1.1.0 — 2026-08-28

Fixed

  • NotebookLM host migration. NotebookLM moved to https://notebook.google.com (the old notebooklm.google.com host now 301-redirects), which broke every request and the browser login. All requests, the CDP login flow, and session checks now go through a single configurable origin (scripts/constants.ts, override NOTEBOOKLM_BASE_URL); both hosts are accepted in notebook URLs.
  • login validates the cached session before skipping Chrome, and the cookie map prefers cookies scoped to the app host over stale legacy ones (fixed a real re-login failure).
  • Slide-deck PDF export no longer routes PPTX bytes to a .pdf path.

Changed

  • Realigned the batchexecute RPC payloads and decoder against the notebooklm-py reference (live-verified) and cross-checked with notebooklm-sdk: rewrote the decoder (error frames, status envelopes, method-id drift detection, null results) and the artifact/source/note/chat/ research builders and parsers. Mind map is generated as a Studio artifact; data table exports to CSV.

Added

  • Multi-host packaging. Installs in Claude Code, OpenAI Codex, Cursor, and GitHub Copilot CLI from the same repository:
    • plugin.json (repo root) — Agent Plugins 1.0 portable manifest, read by Cursor and Copilot CLI, validated against the 1.0.0 JSON schema.
    • .codex-plugin/plugin.json + .agents/plugins/marketplace.json — OpenAI Codex manifest and marketplace catalog.
    • Existing .claude-plugin/ files are unchanged apart from the version bump; the plugin keeps strict:true + skill auto-discovery.
  • scripts/check-manifests.sh — release gate. Fails if name, version, or description differ across the host manifests, if plugin.json contains fields outside the Agent Plugins 1.0 closed schema, or if the install wiring drifts; also runs claude plugin validate and the Agent Plugins 1.0.0 schema check.
  • artifacts list and notebooks remote commands.
  • Repo-root test/ harness: offline unit tests (inline real-derived samples in test/samples.ts)
    • live.test.ts against the real service; test/evals.json.
  • CHANGELOG.md (this file).

1.0.0

  • Initial release: chat, artifact generation (slides, audio, video, mind maps, quizzes, flashcards, infographics, reports, data tables), source management, research, and notes for Google NotebookLM via the batchexecute protocol.