npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

notebooklm-browser-research-skills

v0.1.0

Published

Unofficial browser-control skill group for logged-in NotebookLM research workflows across Chromium/CDP, Firefox, and Safari.

Downloads

149

Readme

NotebookLM Browser Research Skills

English | Русская версия

This package is a browser-control skill group for running research workflows in the logged-in NotebookLM web app. The main skill is notebooklm-research-orchestrator, which operates NotebookLM through a visible Chromium/CDP browser session. Optional sibling skills cover Firefox and Safari, where CDP is not available and the automation path is different.

Status: production-candidate for the Chromium/CDP route; experimental for Firefox and Safari routes.

This is an unofficial community package. It is not affiliated with, endorsed by, or sponsored by Google or NotebookLM.

What It Does

The skill helps an agent use NotebookLM the way a careful human researcher would:

  • open or create a NotebookLM notebook in a visible logged-in browser session;
  • run NotebookLM Fast Research or monitor Deep Research;
  • review and import relevant web sources;
  • separately search YouTube for practitioner experience when the topic is practical, comparative, workflow-oriented, UI/UX, implementation, software, or product-selection research;
  • import website and YouTube URLs through NotebookLM Add sources -> Websites;
  • verify source count and visible source titles before treating anything as context;
  • ask NotebookLM chat only after sources are imported;
  • extract completed answers through NotebookLM's answer copy button, not raw DOM text;
  • optionally check or generate Studio artifacts such as Mind Map, Data Table, Reports, Slide Deck, Infographic, Audio Overview, Video Overview, Quiz, or Flashcards;
  • write action logs and final reports so a run can be audited later.

Why It Exists

NotebookLM has useful research-side UI features that are not exposed as a normal public API: source import, Fast Research, Deep Research, YouTube transcript ingestion, source-grounded chat, and Studio artifacts. This skill turns that visible UI workflow into a repeatable agent procedure without reading private browser storage or asking the user for Google credentials.

Use it when the user is already logged in to NotebookLM in a browser and wants the agent to collect context, import sources, ask questions, or prepare research artifacts.

Where It Runs

The main route runs in a visible Chromium-based browser with a local Chrome DevTools Protocol endpoint:

  • Comet;
  • Google Chrome;
  • Brave;
  • Microsoft Edge;
  • Vivaldi;
  • Opera;
  • Arc.

The skill does not read cookies, localStorage, browser profile databases, keychain items, session tokens, or hidden credentials. Login is detected only from visible UI state.

What You Provide

Typical inputs:

  • a research question or exact source-discovery query;
  • source mode: fast-research, deep-research, youtube, human-experience-youtube, websites, files, or all;
  • output mode: collect-only, research-answer, or artifact-generation;
  • optional target browser route: auto, comet, chrome, brave, edge, vivaldi, opera, arc, or an explicit CDP port;
  • optional limits: source budget, relevance threshold, maximum query attempts, maximum wait time;
  • optional requested Studio artifacts.

What You Get

A successful run should produce:

  • an imported NotebookLM source inventory;
  • source count before and after each import batch;
  • accepted and rejected source/video candidates with reasons;
  • a YouTube scouting report for experience-based topics;
  • an NDJSON action log;
  • a final JSON or Markdown report;
  • for chat runs: an answer-copy.md extracted through NotebookLM's copy-answer button;
  • for artifact runs: artifact status and visible metadata.

Search results do not count as context until NotebookLM imports them. A copied answer does not count as final unless generation has completed and the answer was copied through the NotebookLM toolbar copy control.

Basic Flow

  1. Verify a visible browser route.
  2. Open or create the target NotebookLM notebook.
  3. Run Fast Research or Deep Research when requested.
  4. Review source cards and import relevant ones.
  5. For practical topics, scout YouTube separately and import selected videos as NotebookLM sources.
  6. Verify source count and source titles.
  7. Ask NotebookLM chat or generate Studio artifacts.
  8. Wait for completion.
  9. Copy answers through the model answer copy button.
  10. Save an audit log and final report.

Example Agent Request

Use NotebookLM to collect context for:
"Where do UI/UX designers find inspiration, modern effects, technologies, and interface patterns for contemporary websites?"

Use Fast Research plus YouTube practitioner sources.
Import relevant sources into NotebookLM.
Ask for a structured context map.
Extract the answer through the copy button and save the action log.

From Source

Run the helper checks from the skill directory:

cd skills/notebooklm-research-orchestrator
node scripts/notebooklm-cdp.mjs verify --browser auto
python3 scripts/quick_validate.py .
python3 scripts/lint_skill.py .

The npm package name is intentionally not hard-coded in this README. When publishing, wire these scripts through the package bin field and replace this section with the final package name and install command.

How This Differs From MCP

This is not the same thing as an MCP server.

| Dimension | This skill group | MCP server | | --- | --- | --- | | Primary interface | Agent instructions plus local helper scripts | Structured protocol with named tools/resources | | Control surface | Visible NotebookLM browser UI | API/tool calls exposed by a server | | Login model | Uses the user's already logged-in browser session | Usually uses explicit credentials, OAuth, or server-side config | | Stability | Depends on UI labels, selectors, and browser state | Depends on a tool schema/API contract | | Strength | Can use features that exist only in the GUI: Fast/Deep Research, source import, Studio artifacts | Cleaner automation boundary, typed inputs/outputs, easier integration | | Risk | UI changes can break selectors; quota/subscription gates appear as visible UI states | Server/API changes or credential/config failures | | Evidence | Screens, visible DOM state, action logs, source counts, copied answers | Tool responses, resource outputs, logs |

An MCP server is better when a stable API exists and you need structured, programmatic operations. This skill is better when the product capability is only available through the logged-in web UI. They can be combined: an MCP server can expose orchestration commands, while this skill defines the safe UI workflow and evidence gates.

Chromium/CDP Route

The main skill uses Chrome DevTools Protocol against a visible browser that the user controls. It prefers an already-open NotebookLM tab. If no NotebookLM tab exists but a CDP endpoint is reachable, it can open NotebookLM in that browser. It must not restart or close user browser windows without explicit approval.

Important Chromium rules:

  • use --browser auto first;
  • prefer a reachable endpoint that already has a NotebookLM target;
  • do not read browser storage;
  • do not treat CDP access as permission to inspect secrets;
  • if a browser is not logged in, stop with permission_blocked/login_required;
  • if the UI changes, stop with regression_detected after one selector rescan.

Safari Route

Safari is a special path. Safari is not Chromium and does not support CDP.

The sibling skill is notebooklm-safari-browser-control. It has two possible approaches:

  1. safaridriver / WebDriver automation. This requires Safari Remote Automation permission and usually creates a separate automation-controlled Safari window. It cannot attach to a normal already-open Safari window.
  2. Existing logged-in Safari GUI operation. If the user wants the agent to use the Safari window that is already open and logged in, the route must use visible GUI/Accessibility-style interaction, not safaridriver attachment.

Safari-specific expectations:

  • verify Safari and safaridriver before claiming WebDriver support;
  • do not enable Remote Automation or start driver sessions without user approval;
  • do not assume the WebDriver window shares the user's normal logged-in session;
  • when using the normal Safari GUI, operate only visible UI;
  • for URL import, target TEXTAREA aria=Введите URL / placeholder Вставьте ссылки;
  • after pasting URLs, dispatch or simulate real input so Добавить becomes enabled;
  • for chat, target Поле для запросов, not source search;
  • extract answers only through Копировать ответ модели в буфер обмена after generation completes.

The Safari route has been validated as a practical GUI route in local live tests, but it should remain marked experimental until packaged with repeatable cross-machine smoke evidence.

Firefox Route

Firefox is also a special path. Firefox is not Chromium and does not support CDP.

The sibling skill is notebooklm-firefox-browser-control. It uses WebDriver BiDi/Marionette through geckodriver or an already-running WebDriver endpoint.

Firefox-specific expectations:

  • verify Firefox.app, geckodriver, and the endpoint before automation;
  • do not launch or restart Firefox without approval;
  • do not read Firefox profile files, cookies, localStorage, keychain, or session tokens;
  • treat default temporary WebDriver profiles as unauthenticated unless visible NotebookLM UI proves otherwise;
  • for repeatable logged-in work, use a separate persistent Firefox profile that the user logs into manually;
  • preserve the same NotebookLM gates as Chromium: sources first, YouTube for human experience, correct input target, source-count verification, and copy-button extraction.

Firefox is useful when a user wants browser diversity or has an authenticated Firefox profile, but it should not be described as CDP-compatible.

Failure Modes

The skill group reports closed failure modes instead of vague errors:

  • tool_unavailable: required browser, driver, endpoint, or helper is missing;
  • permission_blocked: login, browser launch, automation permission, quota, or subscription gate blocks progress;
  • timeout: Deep Research, import, generation, or artifact creation exceeded the configured wait;
  • context_exhausted: additional web or YouTube searches no longer produce relevant context;
  • wrong_input_target: automation filled source search instead of chat, or another wrong field;
  • insert_disabled: URL text exists but the NotebookLM import button stays disabled;
  • copy_button_unavailable: completed answer exists but the copy button cannot be found;
  • copy_button_extract_dirty: copied answer contains UI toolbar noise;
  • regression_detected: visible NotebookLM UI no longer matches expected controls;
  • partial_output: some artifacts exist, but the requested output is incomplete.

Security And Privacy Boundary

This skill group must not:

  • read cookies;
  • read localStorage/sessionStorage;
  • inspect browser profile databases;
  • read keychain entries;
  • automate password entry;
  • bypass CAPTCHA, subscription gates, quota gates, or account restrictions;
  • scrape hidden credentials from the page.

It may inspect visible page text, visible DOM controls, visible URLs, button states, source counts, and copied NotebookLM answers.

Publication Checklist

Before publishing to GitHub or npm, complete the release work:

  • choose the package name and repository layout;
  • add package.json with explicit bin entries for helper scripts;
  • run static checks and lint;
  • run at least one live Chromium/CDP smoke test;
  • keep Safari and Firefox marked experimental unless cross-machine smoke tests pass;
  • add sanitation checks so workbench logs do not leak private notebook IDs or account data;
  • include a platform smoke matrix;
  • include final release review evidence.

NotebookLM Browser Research Skills

Русская версия | English

Это группа skill для управления исследовательскими workflow в залогиненном веб-интерфейсе NotebookLM. Главный skill — notebooklm-research-orchestrator: он работает через видимую Chromium/CDP-сессию браузера. Отдельные sibling skills описывают Firefox и Safari, где CDP недоступен и нужен другой транспорт.

Статус: production-candidate для Chromium/CDP; experimental для Firefox и Safari.

Это неофициальный community package. Он не связан с Google или NotebookLM, не одобрен ими и не спонсируется ими.

Что Делает Skill

Skill помогает агенту пользоваться NotebookLM как аккуратный человек-исследователь:

  • открывает или создает notebook в видимой залогиненной сессии браузера;
  • запускает NotebookLM Fast Research или мониторит Deep Research;
  • проверяет и импортирует релевантные web-источники;
  • отдельно ищет YouTube-ролики с практическим опытом, если тема практическая, сравнительная, workflow-oriented, UI/UX, implementation, software или product-selection;
  • импортирует сайты и YouTube URL через NotebookLM Add sources -> Websites;
  • проверяет счетчик источников и видимые названия источников;
  • задает вопросы в NotebookLM chat только после импорта источников;
  • забирает готовые ответы через кнопку копирования ответа модели, а не через сырой DOM-текст;
  • при необходимости проверяет или создает Studio-артефакты: Mind Map, Data Table, Reports, Slide Deck, Infographic, Audio Overview, Video Overview, Quiz, Flashcards;
  • пишет action log и итоговый отчет, чтобы запуск можно было проверить.

Зачем Он Нужен

У NotebookLM есть полезные UI-функции, которые не доступны как обычное публичное API: импорт источников, Fast Research, Deep Research, YouTube transcript ingestion, source-grounded chat и Studio artifacts. Этот skill превращает видимый UI workflow в повторяемую процедуру для агента, не читая приватное хранилище браузера и не запрашивая у пользователя Google credentials.

Используйте его, когда пользователь уже залогинен в NotebookLM в браузере и хочет, чтобы агент собрал контекст, импортировал источники, задал вопросы или подготовил исследовательские артефакты.

Где Работает

Основной маршрут работает в видимом Chromium-based браузере с локальным Chrome DevTools Protocol endpoint:

  • Comet;
  • Google Chrome;
  • Brave;
  • Microsoft Edge;
  • Vivaldi;
  • Opera;
  • Arc.

Skill не читает cookies, localStorage, базы профиля браузера, keychain, session tokens или скрытые credentials. Логин определяется только по видимому состоянию UI.

Что Нужно Дать На Вход

Обычно нужны:

  • исследовательский вопрос или точный source-discovery запрос;
  • режим источников: fast-research, deep-research, youtube, human-experience-youtube, websites, files, all;
  • режим результата: collect-only, research-answer, artifact-generation;
  • опционально маршрут браузера: auto, comet, chrome, brave, edge, vivaldi, opera, arc или явный CDP port;
  • лимиты: целевое число источников, relevance threshold, максимум query attempts, wait budget;
  • опционально нужные Studio artifacts.

Что Получаем На Выходе

Успешный запуск должен дать:

  • inventory импортированных NotebookLM источников;
  • source count до и после каждого batch import;
  • принятые и отклоненные источники/видео с причинами;
  • YouTube scouting report для тем, где важен человеческий опыт;
  • NDJSON action log;
  • итоговый JSON или Markdown report;
  • для chat runs: answer-copy.md, полученный через кнопку копирования ответа NotebookLM;
  • для artifact runs: статус артефактов и видимую metadata.

Результаты поиска не считаются контекстом, пока NotebookLM их не импортировал. Ответ не считается финальным, пока генерация не завершилась и текст не был скопирован через toolbar copy control NotebookLM.

Базовый Workflow

  1. Проверить видимый browser route.
  2. Открыть или создать NotebookLM notebook.
  3. Запустить Fast Research или Deep Research, если нужно.
  4. Проверить карточки источников и импортировать релевантные.
  5. Для практических тем отдельно собрать YouTube и импортировать выбранные ролики как NotebookLM sources.
  6. Проверить source count и source titles.
  7. Задать вопрос в chat или создать Studio artifacts.
  8. Дождаться завершения.
  9. Скопировать ответ через кнопку copy ответа модели.
  10. Сохранить audit log и final report.

Пример Запроса Агенту

Используй NotebookLM, чтобы собрать контекст по теме:
"Где UI/UX дизайнеры берут вдохновение, современные эффекты, технологии и интерфейсные паттерны для современных сайтов?"

Используй Fast Research и YouTube practitioner sources.
Импортируй релевантные источники в NotebookLM.
Попроси структурированную карту контекста.
Ответ забери через кнопку копирования и сохрани action log.

Запуск Из Исходников

Проверки из папки skill:

cd skills/notebooklm-research-orchestrator
node scripts/notebooklm-cdp.mjs verify --browser auto
python3 scripts/quick_validate.py .
python3 scripts/lint_skill.py .

Имя npm package намеренно не зашито в README. При публикации нужно добавить package.json, прописать bin для helper scripts и заменить этот раздел финальной командой установки.

Чем Это Отличается От MCP

Это не MCP server.

| Измерение | Эта группа skill | MCP server | | --- | --- | --- | | Основной интерфейс | Инструкции агента плюс локальные helper scripts | Структурированный protocol с named tools/resources | | Поверхность управления | Видимый UI NotebookLM в браузере | API/tool calls, которые отдает server | | Логин | Использует уже залогиненную browser session пользователя | Обычно требует credentials, OAuth или server-side config | | Стабильность | Зависит от UI labels, selectors и состояния браузера | Зависит от tool schema/API contract | | Сильная сторона | Можно использовать GUI-only функции: Fast/Deep Research, import sources, Studio artifacts | Чище automation boundary, typed inputs/outputs, проще интеграция | | Риск | UI может измениться; quota/subscription gates появляются как UI states | API/server/credential/config failures | | Evidence | Видимое состояние DOM/UI, action logs, source counts, copied answers | Tool responses, resource outputs, server logs |

MCP лучше, когда есть стабильное API и нужны структурированные программные операции. Этот skill лучше, когда нужная возможность доступна только в залогиненном web UI. Их можно совмещать: MCP может отдавать orchestration commands, а skill задает безопасный UI workflow и evidence gates.

Chromium/CDP Route

Основной skill использует Chrome DevTools Protocol в видимом браузере пользователя. Он предпочитает уже открытую вкладку NotebookLM. Если вкладки нет, но CDP endpoint доступен, skill может открыть NotebookLM в этом браузере. Он не должен перезапускать или закрывать окна пользователя без явного разрешения.

Важные правила Chromium:

  • сначала использовать --browser auto;
  • предпочитать endpoint, где уже есть NotebookLM target;
  • не читать browser storage;
  • не считать CDP доступ разрешением смотреть secrets;
  • если браузер не залогинен, остановиться с permission_blocked/login_required;
  • если UI изменился, остановиться с regression_detected после одного selector rescan.

Safari Route

Safari — отдельный специальный путь. Safari не Chromium и не поддерживает CDP.

Sibling skill: notebooklm-safari-browser-control. Есть два подхода:

  1. safaridriver / WebDriver automation. Нужен Safari Remote Automation permission. Обычно создается отдельное automation-controlled окно Safari. Этот путь не умеет attaching к обычному уже открытому окну Safari.
  2. Existing logged-in Safari GUI operation. Если пользователь хочет работать именно в уже открытом и залогиненном Safari, нужен visible GUI/Accessibility-style route, а не safaridriver attach.

Ожидания для Safari:

  • проверять Safari и safaridriver перед claim о WebDriver support;
  • не включать Remote Automation и не стартовать driver без разрешения пользователя;
  • не предполагать, что WebDriver window использует обычную залогиненную сессию пользователя;
  • при работе через обычный Safari GUI использовать только видимый UI;
  • для URL import целиться в TEXTAREA aria=Введите URL / placeholder Вставьте ссылки;
  • после вставки URL симулировать реальный input так, чтобы Добавить стало enabled;
  • для chat использовать Поле для запросов, не source search;
  • ответы извлекать только через Копировать ответ модели в буфер обмена после завершения генерации.

Safari route подтвержден локальным live GUI-тестом, но должен оставаться experimental, пока не будет упакован с повторяемым cross-machine smoke evidence.

Firefox Route

Firefox — тоже специальный путь. Firefox не Chromium и не поддерживает CDP.

Sibling skill: notebooklm-firefox-browser-control. Он использует WebDriver BiDi/Marionette через geckodriver или уже запущенный WebDriver endpoint.

Ожидания для Firefox:

  • проверять Firefox.app, geckodriver и endpoint до automation;
  • не запускать и не перезапускать Firefox без разрешения;
  • не читать Firefox profile files, cookies, localStorage, keychain или session tokens;
  • считать временные WebDriver profiles незалогиненными, пока видимый UI NotebookLM не докажет обратное;
  • для повторяемой работы использовать отдельный persistent Firefox profile, куда пользователь логинится сам;
  • сохранять те же NotebookLM gates, что и в Chromium: сначала sources, YouTube для человеческого опыта, правильный input target, проверка source count и copy-button extraction.

Firefox полезен для browser diversity или когда у пользователя есть authenticated Firefox profile, но его нельзя описывать как CDP-compatible.

Failure Modes

Skill group сообщает закрытые failure modes вместо расплывчатого "failed":

  • tool_unavailable: нет нужного браузера, driver, endpoint или helper;
  • permission_blocked: нужен login, browser launch, automation permission, quota или subscription;
  • timeout: Deep Research, import, generation или artifact creation превысили wait budget;
  • context_exhausted: web или YouTube searches перестали давать релевантный контекст;
  • wrong_input_target: automation заполнил source search вместо chat или другое неверное поле;
  • insert_disabled: URL text есть, но NotebookLM import button остается disabled;
  • copy_button_unavailable: ответ есть, но copy button не найден;
  • copy_button_extract_dirty: скопированный ответ содержит UI toolbar noise;
  • regression_detected: видимый NotebookLM UI больше не совпадает с ожидаемыми controls;
  • partial_output: часть артефактов есть, но запрошенный результат неполный.

Security And Privacy Boundary

Skill group не должен:

  • читать cookies;
  • читать localStorage/sessionStorage;
  • читать browser profile databases;
  • читать keychain entries;
  • автоматизировать ввод пароля;
  • обходить CAPTCHA, subscription gates, quota gates или account restrictions;
  • вытаскивать скрытые credentials со страницы.

Можно проверять видимый page text, видимые DOM controls, visible URLs, button states, source counts и copied NotebookLM answers.

Publication Checklist

Перед публикацией в GitHub или npm нужно:

  • выбрать package name и repository layout;
  • добавить package.json с явными bin entries для helper scripts;
  • прогнать static checks и lint;
  • прогнать хотя бы один live Chromium/CDP smoke test;
  • держать Safari и Firefox experimental, пока не пройдут cross-machine smoke tests;
  • добавить sanitation checks, чтобы workbench logs не утекали с private notebook IDs или account data;
  • добавить platform smoke matrix;
  • добавить final release review evidence.