
Security News
/Research
Popular node-ipc npm Package Infected with Credential Stealer
Socket detected malicious node-ipc versions with obfuscated stealer/backdoor behavior in a developing npm supply chain attack.
opencode-plugin-notebooklm
Advanced tools
OpenCode plugin for NotebookLM - access Google NotebookLM from your AI coding assistant
Access Google NotebookLM from OpenCode AI coding assistant.
bun add opencode-plugin-notebooklm
Add to opencode.json:
{
"plugins": ["opencode-plugin-notebooklm"]
}
Copy to .opencode/plugins/notebooklm/:
cp -r opencode-plugin-notebooklm .opencode/plugins/notebooklm
Plugin auto-launches Chrome when auth is needed:
First time setup: Just use any NotebookLM tool - Chrome will open automatically.
If auto-auth fails, save cookies manually:
save_auth_tokens({ cookies: "your-cookie-header-from-devtools" })
To get cookies:
Cookie header value from Request HeadersWhen auth expires, plugin attempts 4-layer recovery:
Auth Error β Refresh CSRF β Reload Disk β CDP Auto-refresh β Manual Auth
~/.notebooklm-mcp/auth.jsonsave_auth_tokens (last resort)| Tool | Description |
|---|---|
notebook_list | List all notebooks |
notebook_create | Create a new notebook |
notebook_get | Get notebook details + AI summary |
notebook_query | Ask AI about sources (multi-turn) |
| Tool | Description |
|---|---|
source_add | Add sources to notebook |
source_add parameters:
urls - URL(s) separated by space/newlinedrive_id - Google Drive document IDtext - Plain text contenttitle - Title (required for text)notebook_id - Target notebook| Tool | Description |
|---|---|
research_start | Start web research (fast/deep mode) |
studio_create | Generate content (audio/report/flashcards/etc) |
| Tool | Description |
|---|---|
save_auth_tokens | Save cookies from browser (fallback) |
Optional workflow guides available in skills/:
| Skill | Description |
|---|---|
nlm-index | Index docs/repos to NotebookLM |
Use with: skill({ name: 'nlm-index' })
Notebook ID is auto-inferred when:
# No need to specify notebook_id if context is set
notebook_query({ query: "What are the main topics?" })
# Add URL(s)
source_add({ urls: "https://example.com/article" })
source_add({ urls: "https://example1.com https://example2.com" })
# Add Google Drive document
source_add({ drive_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs" })
# Add text content (title required)
source_add({ text: "Some text...", title: "My Notes" })
# First query
notebook_query({ query: "What is React?" })
# Follow-up (uses same conversation)
notebook_query({ query: "How about hooks?", conversation_id: "..." })
studio_create supports:
audio - Audio overview/deep divereport - Briefing documentflashcards - Study flashcardsinfographic - Visual infographicslide_deck - Presentation slidesdata_table - Structured data table> Create a notebook about React hooks
> Add the React docs: https://react.dev/reference/react/hooks
> Ask: "What are the best practices for useEffect cleanup?"
> Generate an audio overview of my notebook
> Create flashcards for React hooks
> Research "React Server Components best practices"
# Install dependencies
bun install
# Build
bun run build
# Type check
bun run typecheck
# Test
bun test
src/
βββ index.ts # 8 tools + hooks
βββ errors.ts # AppError with structured errors
βββ config.ts # Configuration
βββ types.ts # TypeScript types
βββ auth/
β βββ manager.ts # AuthManager singleton (in-memory cache, recovery)
β βββ cdp-provider.ts # Chrome DevTools Protocol auth (auto-launch)
β βββ cdp-resolver.ts # Browser detection (Chrome, Edge, Brave)
β βββ cdp-browsers.ts # Browser registry per OS
βββ hooks/
β βββ index.ts # OpenCode hooks (session events)
βββ state/
β βββ session.ts # Session state (active notebook, conversation)
β βββ cache.ts # TTL cache with auto-sweep
βββ client/
βββ index.ts # NotebookLMClient (singleton with refresh mutex)
βββ transport.ts # RPC transport with 4-layer recovery
βββ codec.ts # Request/response encoding
βββ encoding.ts # Data encoding utilities
βββ recovery.ts # Error recovery strategies
βββ conversations.ts # Conversation persistence
βββ services/
βββ notebook.ts # Notebook CRUD operations
βββ source.ts # Source management
βββ query.ts # AI query operations
βββ research.ts # Web research
βββ studio.ts # Content generation
Bun.spawn, Bun.sleep for performanceMIT
Based on notebooklm-mcp by jacob-bd.
FAQs
OpenCode plugin for NotebookLM - access Google NotebookLM from your AI coding assistant
We found that opencode-plugin-notebooklm demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.Β It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
/Research
Socket detected malicious node-ipc versions with obfuscated stealer/backdoor behavior in a developing npm supply chain attack.

Security News
TeamPCP and BreachForums are promoting a Shai-Hulud supply chain attack contest with a $1,000 prize for the biggest package compromise.

Security News
Packagist urges PHP projects to update Composer after a GitHub token format change exposed some GitHub Actions tokens in CI logs.