Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add medy-gribkov/arcana --skill notebooklm-researchgit clone --depth 1 https://github.com/medy-gribkov/arcanaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/medy-gribkov/arcana/notebooklm-research)<a href="https://agentmods.dev/skills/medy-gribkov/arcana/notebooklm-research"><img src="https://agentmods.dev/badge/skills/medy-gribkov/arcana/notebooklm-research/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/medy-gribkov/arcana/notebooklm-research"><img src="https://agentmods.dev/badge/skills/medy-gribkov/arcana/notebooklm-research.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00053 | $0.01202 |
| Opus 5 | $0.00026 | $0.00601 |
| Sonnet 5 | $0.00011 | $0.00240 |
| Haiku 4.5 | $0.00005 | $0.00120 |
Grade A, and why
notebooklm-research scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.
NotebookLM Research Automation
Turn Claude Code into a research agent by automating Google NotebookLM. NotebookLM has no public API. This skill uses Playwright to control a real Chrome browser via CDP (Chrome DevTools Protocol). All commands output JSON to stdout.
Prerequisites
One-time setup (2 minutes):
pip install playwright && playwright install chromium
python scripts/setup_chrome.py
# Log in to Google in the Chrome window that opens
python scripts/notebooklm_client.py status # Verify: "authenticated": true
See references/authentication.md for detailed setup and troubleshooting.
Session Management
BAD: Launching Chromium directly from Playwright. Gets detected as a bot, cannot authenticate with Google.
browser = await playwright.chromium.launch()
page = await browser.new_page()
await page.goto("https://notebooklm.google.com") # Blocked or login fails
GOOD: Connecting to a real Chrome instance via CDP with a persistent profile.
browser = await playwright.chromium.connect_over_cdp("http://localhost:9222")
context = browser.contexts[0] # Reuse authenticated session
page = context.pages[0] # Already on NotebookLM
Interaction Speed
BAD: Instant typing and clicks. Triggers anti-bot detection, actions may be ignored.
await page.fill("textarea", "full text instantly")
await page.click("button")
GOOD: Human-like delays. Random 25-75ms per character, 100-300ms pre-click pause.
for char in question:
await element.type(char, delay=random.uniform(25, 75))
await asyncio.sleep(random.uniform(0.1, 0.3))
await page.click("button")
Command Reference
Always verify connection first with status. All commands return JSON.
| Command | Example | Purpose |
|---|---|---|
status |
python scripts/notebooklm_client.py status |
Check Chrome + auth |
list |
python scripts/notebooklm_client.py list |
List all notebooks |
create |
python scripts/notebooklm_client.py create "Topic" |
Create notebook |
add-source |
...add-source --notebook "Topic" --url "https://..." |
Add URL source |
add-source |
...add-source --notebook "Topic" --file "/path/to.pdf" |
Add file source |
add-source |
...add-source --notebook "Topic" --youtube "https://..." |
Add YouTube source |
add-source |
...add-source --notebook "Topic" --text "raw content" |
Add text source |
query |
...query --notebook "Topic" --question "Key findings?" |
Query with citations |
generate |
...generate --notebook "Topic" --type slides |
Generate artifact |
generate |
...generate --notebook "Topic" --type infographic --instructions "Focus on stats" |
Generate with instructions |
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 117 lines · 53 tokens per session scan A 92e326328e11
notebooklm-research is a skill published in the GitHub repository medy-gribkov/arcana (1 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 53 tokens to every session and 1,202 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
webapp-testing
Write and run comprehensive web app tests — unit, integration, E2E with Playwright/Cypress, and visual regression.
stealth-browser-mcp
Use this skill when operating stealth-browser-mcp from an AI agent or MCP client for browser automation, page inspection, element interaction, screenshots, file uploads, CDP commands, network debugging, cookies/storage, stealth setup, or reliable multi-step browser workflows. It provides the correct tool order, state…
gemini-deep-research
Run Gemini Deep Research via browser automation. Persistent Chrome on CDP port 9222. Use when user asks to research a topic with.
agent-reach
A set of tools that lets an AI agent search and read information from websites, social networks, developer platforms, career sites, videos, podcasts, and RSS feeds.
manage-apps-and-sounds-headless
Control the pushover.net web dashboard headlessly for things the HTTP API cannot do - log in, list applications, CREATE or DELETE Pushover applications (returning the new app's API token), and ADD or REMOVE custom notification sounds (with a sourcing+loudness pipeline for free MP3 jingles). Drives system Google Chrome…
html-craft
Create and verify single-file interactive HTML pages in the sandbox: build or edit the file, then prove the result with headless-Chromium screenshots, in-page DOM/geometry assertions, and JS-error capture (Playwright). No GPU, no service, no network. Use when the user wants an HTML page, animation, demo, dashboard, or…