A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Browser-automation agent for Chrome — natural-language tasks executed through native tool calling, scoped Skills, CDP ke
Browser-automation agent for Chrome — natural-language tasks executed through native tool calling, scoped Skills, CDP keyboard control, and a sandboxed, prompt-injection-resistant execution model.
English · 简体中文 · 繁體中文 · Español (Latinoamérica) · 日本語 · Português (Brasil)
Install · Configure · Privacy · Changelog · Roadmap · Architecture · Archive
Pie turns Chrome into a browser-automation agent. Describe a task in
natural language; the LLM plans steps and executes them through a typed
tool registry — DOM actions, cross-tab orchestration, and CDP-level
keyboard input for canvas editors that don't honor standard DOM events.
Workflows can be saved as Skills with explicit tool whitelists. Tools
run without per-action approval prompts; page content reaches the model
only inside <untrusted_*> wrappers, tools are split into read vs. write
classes with cross-session locks, and each session is sandboxed — so
automation stays contained. BYOK: paste your own API key from any of eleven
LLM providers — encrypted locally, no Pie backend, no telemetry.
tool_use blocks or OpenAI function_calling to drive a
typed tool registry — DOM actions (click, type, select, scroll,
structured snapshot), cross-tab orchestration (list / activate / close /
group / move / fetch readable content), and opt-in CDP keyboard
injection (Input.dispatchKeyEvent, Input.insertText) for canvas
editors like Lark Docs and Google Docs./skill_name. The agent can author its own
skills too — gated by an 8-guard capability boundary so they cannot
expand their own privileges.<untrusted_*> wrappers (prompt-injection
defense), tools are classified read vs. write with cross-session write
locks, and each session is sandboxed (its own port, pinned tabs, and CDP
owner token). CDP keyboard injection is off until you opt in.Ask questions about the page you're on. Pie extracts visible text (with
hardened scrubbing of credential fields) and sends only that to the LLM.
Page snippets are wrapped in <untrusted_*> markers in the prompt to
defeat prompt-injection attempts from page DOM.
Describe a task in natural language. The LLM plans steps and executes
them through Pie's tool registry, using your provider's native
tool-calling protocol — Anthropic tool_use blocks for Claude, OpenAI
function_calling for everyone else. The built-in toolset covers:
Input.dispatchKeyEvent
and Input.insertText for canvas-based editors like Lark Docs and
Google Docs, where standard DOM events are not honoredThree cross-tab skills ship built-in: auto_group_tabs,
close_duplicate_tabs, close_inactive_tabs.
Skills are saved prompt templates with explicit tool whitelists. Open
Settings → Skills to create, edit, or delete your own — name, prompt
template, parameter JSON schema, and the exact set of tools that skill
is allowed to call. Run any skill from chat by typing /skill_name.
The agent itself can author skills via create_skill / update_skill /
delete_skill meta-tools — useful for capturing a workflow the model
just walked through, so it can be replayed in the next session. An
agent-authored skill is tagged with author='agent' and is bound by the
same capability-grant invariants below — it can only call tools it was
explicitly granted and cannot widen its own privileges.
A skill cannot escape its declared tool whitelist. Eight capability-grant invariants are enforced on every skill mutation — hard size caps (≤8 KB prompt template, ≤2 KB parameter schema), forbidden meta-tool nesting, 1 MB per-installation storage budget, name validation against the live tool registry — so a runaway skill cannot widen its own privileges.
Pie runs tools directly — there is no per-action approval card in the hot path. Safety is layered instead:
<untrusted_*> wrappers, and never
in the system prompt — so text in a page's DOM can't be read as a trusted
instruction.The one approval you'll still see is at resume time: if you pause a task and its pinned tab was closed or navigated to a different origin, Pie shows a drift card before continuing rather than acting on the wrong page.
| Provider | Notes |
|---|---|
| Anthropic Claude | Native API + native tool_use |
| OpenAI | OpenAI function_calling |
| Gemini | Native API |
| OpenRouter | OpenAI-compatible |
| DeepSeek | Anthropic-compatible |
| MiniMax | Anthropic-compatible |
| GLM(Zhipu) | OpenAI-compatible |
| Bailian | OpenAI-compatible |
| Mimo(Xiaomi) | Anthropic-compatible |
| Moonshot(Kimi) | OpenAI-compatible · International api.moonshot.ai / China api.moonshot.cn (pick the matching entry to select region) |
| StepFun | Anthropic-compatible |
Adding a provider is a registry entry plus a host permission. Local Ollama is on the roadmap.
Pie ships in two end-user channels and one source-build channel. Pick whichever fits.
Requires a Chromium-based browser with side-panel support — Chrome 114+, Edge, Brave, Arc, etc.
Install from the Chrome Web Store — click Add to Chrome, then pin Pie to the toolbar. Chrome keeps it up to date automatically.
For users who prefer to install the same artifact without the Web Store (e.g. an offline, self-managed, or policy-restricted setup):
pie-x.y.z.zip from the
Releases pagechrome://extensionsChrome derives the extension ID from the unpacked directory's path, and your sessions / encrypted API keys / Skills are scoped to that extension origin (IndexedDB + local storage). To carry them across releases, upgrade in place — don't unzip the new release to a different folder.
chrome://extensions and find Pie's card. Note the unpacked
directory path (shown under the card, or via Details → "Source")pie-x.y.z.zip into that same directory⚠️ Do not click Remove on the old card. Remove drops the extension's local storage (IndexedDB + chrome.storage) along with the encrypted API keys and chat history. If you already removed it, re-add provider keys from Settings; chat history can't be recovered.
Web Store users (Option 1) skip this section — Chrome auto-updates the extension and storage carries over automatically.
If you want HMR, are sending a PR, or just don't trust prebuilt binaries:
git clone https://github.com/WiseriaAI/pie-ai-agent.git
cd Pie
pnpm install
pnpm build
Then load the generated dist/ directory as an unpacked extension
(steps 3–6 above). For the inner dev loop see Development
below.
Your key is encrypted before it is stored locally (in IndexedDB). The encryption key itself is generated locally on first run and never leaves the device.
Authorization
header on direct provider API calls<untrusted_*> tags,
hardening against prompt injection from page DOMFull policy: PRIVACY.md.
pnpm install
pnpm dev # Vite dev server with HMR
pnpm test # Vitest, single run
pnpm test:watch # Vitest, watch mode
pnpm build # Production build to dist/
When developing, load the unpacked extension from dist/ (after the first
pnpm dev run), and click the Reload button in chrome://extensions
after each service-worker change.
@crxjs/vite-plugin 2.4| Path | Purpose |
|---|---|
src/background/ | Service Worker — message routing, agent loop dispatch, keep-alive |
src/sidepanel/ | React side-panel UI (Chat, Settings, session drawer) |
src/lib/model-router/ | Unified LLM interface; per-provider streaming + tool calling |
src/lib/agent/ | ReAct loop, tool registry, read/write tool classification, untrusted-content wrappers, prompt builder |
src/lib/dom-actions/ | Self-contained DOM action functions injected via executeScript |
src/lib/skills/ | Skill framework: types, storage, built-in skills |
src/lib/sessions/ | Session lifecycle: persistence, archive, multi-session sandbox |
Architectural notes and invariant traces live in docs/solutions/. The
project's compound-engineering notes and contributor guidance are in
CLAUDE.md.
See docs/ROADMAP.md for the deferred-milestone
backlog. Highlights:
Pie follows Semantic Versioning. Release notes live in CHANGELOG.md.
Licensed under the Apache License, Version 2.0 — © 2026 Pie Project Contributors.
Native macOS app to monitor Claude AI usage limits and watch your coding sessions live
干净、强大、属于你的 AI Agent 平台 --AI agents, without the clutter.
npx CLI installing 100+ agents, commands, hooks, and integrations in one command
Pocket Flow: Codebase to Tutorial