Player-YN/BrowserKitten

Paw Work - selection-first web agent for Chrome: select on the live page, describe the outcome, take away an editable office file. BYOK, sandboxed, no server.

What it is

PawWork · 爪爪 (the repository Player-YN/BrowserKitten) is a Chrome MV3 extension that turns a logged‑in Chrome browser into a programmable computer. It adds a side‑panel UI that hosts an AI‑driven “agent” capable of issuing commands to the current tab, running arbitrary JavaScript in the page context, and storing small artefacts (e.g., sheet data, HTML snippets) for the session.

How it works

  1. Side‑panel UI – The user opens the extension’s side panel, pastes an OpenAI‑compatible API key (you bring your own key), and types a task.
  2. Service worker – Chrome’s extension service worker receives the request and forwards it to an off‑screen worker called SessionWorkspaceService.
  3. Off‑screen worker – This worker hosts the ToolLoopAgent, the core AI SDK component. It interprets the user’s request, decides which tool to invoke, and calls the appropriate Chrome APIs.
  4. Tools – The agent can:
    • action – drive the active tab (e.g., click, scroll, navigate).
    • sys – execute guest JavaScript on the page (sys.eval) or interact via Chrome DevTools Protocol (sys.cdp).
    • store – keep small data artefacts (sheets, HTML snippets) in the session.
  5. Result – The agent returns a response in the side panel, and any side‑effects (page navigation, DOM changes, stored data) persist for the duration of the Chrome session.

Key features

  • No build step – The extension is unpacked; you load it directly from the source folder.
  • BYOK (Bring‑Your‑Own‑Key) – No hosted model; you supply an OpenAI‑compatible API key, stored locally in Chrome storage.
  • Chrome MV3 compliance – Works on Chrome 135+; on Chrome 138+ you can enable Allow User Scripts to use sys.eval and page‑identity fetches.
  • Tool‑oriented architecture – Clear separation between the UI, service worker, off‑screen workspace, and the AI tool loop (documented in AGENTS.md).
  • Testing – Includes a pure‑Node runtime regression test and a Playwright‑based smoke test that loads the real extension.
  • Packaging script – A small Python helper can zip the unpacked extension for distribution.

Who might use it

  • Power users who want to automate repetitive web tasks (form filling, data extraction, navigation) via natural‑language prompts.
  • Developers experimenting with AI‑augmented browser automation without writing custom scripts.
  • Researchers exploring LLM‑driven agents that interact with a live browser environment.

Getting started

  1. Clone the repo or download a release zip.
  2. In Chrome, go to chrome://extensions, enable Developer mode, click Load unpacked, and select the folder containing manifest.json.
  3. Open the side panel, paste your OpenAI API key, and start issuing tasks on any regular http(s) page.
  4. If you edit the source, hit 重新加载 (Reload) on the extension card.

Limitations

  • Only works on regular web pages; Chrome internal pages (chrome://*) and the Chrome Web Store are blocked.
  • Requires Chrome 135+ (and Chrome 138+ for advanced user‑script features).
  • No built‑in model hosting; you must have a valid OpenAI‑compatible key.
  • Some DevTools interactions need DevTools closed on the target tab to avoid CDP_BUSY errors.

License: MIT (see LICENSE). Third‑party notices: listed in THIRD_PARTY_NOTICES.md.

Related

  • Project
  • Project
  • Project
  • Project