DO NOT SKIP THIS WARNING, DO NOT USE THIS SOFTWARE IF YOU DO NOT READ THIS:
- BROWSER AUTOMATION CAN PUT YOUR SOCIAL MEDIA ACCOUNTS AT RISK
- BROWSER AUTOMATION CAN CAN BE AGAINST TERMS OF SERVICE OF MANY WEBSITES
- THIS CAN LEAD TO PROMPT INJECTION ATTACKS
- THIS CAN LEAD TO LEAKING YOUR PERSONAL INFORMATION
- THIS CAN CAUSE TECHNICAL ISSUES WITH YOUR BROWSER
THIS IS ALL REAL YOU MUST UNDERSTAND THE RISKS OF USING BROWSER AUTOMATION AND TRUSTING AN LLM WITH YOUR BROWSER.
THIS TOOL WAS BUILT BY AND FOR PEOPLE WHO UNDERSTAND AND ACCEPT THESE RISKS.
Your AI-powered browser copilot.
Chat-driven browser automation that lives in your sidebar. Navigate, read, click, extract β all through natural language.
Installation Β· Setup Β· Features Β· Docs Β· Relay CLI
git clone https://github.com/0xSero/parchi.git
cd parchi
npm install
npm run buildThen:
- open
chrome://extensions - enable Developer mode
- click Load unpacked
- select
dist/ - pin and open Parchi from the toolbar
npm run build:firefox- Open
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Select any file inside the
dist/folder
XPI packaging:
npm run build:firefox:xpioutputsdist-firefox/<extension-name>-<version>.xpifor distribution. Requires Developer Edition/Nightly or Mozilla add-on signing for release installs.
Parchi works with any OpenAI-compatible endpoint. Open the Settings panel (gear icon) to configure.
Use your own API key from any supported provider:
| Provider | API URL | Example Models |
|---|---|---|
| OpenAI | https://api.openai.com/v1 |
gpt-5.4, gpt-5-nano, gpt-5.3-codex |
| Anthropic | https://api.anthropic.com/v1 |
claude-sonnet-4-6, claude-opus-4-6 |
| Kimi | https://api.moonshot.cn/v1 |
kimi-for-coding (recommended) |
| OpenRouter | https://openrouter.ai/api/v1 |
Any model on OpenRouter |
| Local (Ollama, LM Studio) | http://localhost:11434/v1 |
qwen, mistral, etc. |
| Any OpenAI-compatible | Your endpoint URL | Your model name |
Steps:
- Open Settings β select your provider or choose Custom
- Paste your API Key
- Set the API URL (auto-filled for known providers)
- Pick a Model from the dropdown (auto-fetched) or type one manually
- Hit Save β start chatting
Sign in with Google or GitHub to use Parchi's hosted proxy. No API keys needed β billing is handled through your Parchi subscription.
- Open Settings β choose Paid account mode
- Sign in via OAuth
- Select a model and start chatting
Already paying for Claude Pro, ChatGPT Plus, Gemini Advanced, or another AI subscription? You can route that subscription through Parchi using CLIProxyAPI.
CLIProxyAPI is an open-source proxy that converts your existing AI subscription access into an OpenAI-compatible API endpoint β no separate API key purchase needed.
- Install CLIProxyAPI β follow the setup guide
- Authenticate with your existing provider (Claude, OpenAI, Gemini, etc.) via OAuth
- Point Parchi at the proxy endpoint:
- Open Settings β provider: Custom
- API URL: your CLIProxyAPI endpoint (e.g.
http://localhost:PORT/v1) - API Key: your proxy token
- Model: the model you want to use
- Chat β requests route through your existing subscription
| Subscription | What you get |
|---|---|
| Claude Pro / Max | Claude models via your Anthropic account |
| ChatGPT Plus / Pro | GPT-4o, o1, etc. via your OpenAI account |
| Gemini Advanced | Gemini models via your Google account |
| Qwen / iFlow | Additional provider access |
CLIProxyAPI supports multi-account round-robin, streaming, function calling, and multimodal inputs. See their documentation for full details.
- Chat + AI β streaming answers, reasoning display, profiles, vision support, context compaction, workflow shortcuts
- Browser tools β navigate, click, clickAt, type, scroll, screenshot, findHtml, tab management, video helpers, planning, subagents
- Session tools β session tabs, floating HUD, saved history, markdown export with tool traces
- Controls β tool permissions, allowlists, confirmations, themes, zoom, custom headers
See docs/agent-pipeline.md for the runtime shape and docs/tab-process-performance-playbook.md for perf triage.
Expose Parchi as a local automation endpoint for scripts and external tools.
# 1. Build with relay token
PARCHI_RELAY_TOKEN=your-secret npm run build
# 2. Start the daemon
PARCHI_RELAY_TOKEN=your-secret npm run relay:daemon
# 3. Open the extension once β it can auto-pair from localhost /v1/pair.
# (Manual fallback in Settings β Relay:
# URL: http://127.0.0.1:17373
# Token: your-secret)Safer managed daemon helper (recommended):
npm run relay:secure -- start # generates/stores strong token, loopback-only
npm run relay:secure -- status
npm run relay:secure -- rotate # rotates token (+ restarts if running)
npm run relay:secure -- stopCLI commands:
export PARCHI_RELAY_TOKEN=your-secret
# List connected agents
npm run relay -- agents
# List available tools
npm run relay -- tools
# Execute a single tool
npm run relay -- tool navigate --args='{"url":"https://example.com"}'
# Run the agent and wait for result
npm run relay -- run "Open example.com and summarize the page"You can now control Electron apps (Slack, VS Code, Discord, etc.) in two modes:
- Relay-native agent (multi-agent routing through
parchi-relay) - Direct CLI mode (
parchi electron ...passthrough toagent-browser)
# Build binaries
npm run build
# Start relay daemon (terminal A)
PARCHI_RELAY_TOKEN=your-secret npm run relay:daemon
# Start Electron relay agent (terminal B)
PARCHI_RELAY_TOKEN=your-secret npm run electron:agent
# Confirm agents and choose Electron as default when needed
npm run relay -- agents
npm run relay -- default-agent set <electron-agent-id>
npm run relay -- tools
npm run relay -- tool electron.launch --args='{\"app\":\"Slack\",\"port\":9222}'
npm run relay -- tool electron.connect --args='{\"cdpEndpoint\":\"9222\"}'
npm run relay -- tool electron.snapshot --args='{\"interactive\":true}'Managed mode (recommended once relay secure is configured):
# Reads relay token/url from ~/.parchi/relay-secure.json
npm run electron:secure -- start
npm run electron:secure -- status
npm run electron:secure -- stopDirect mode:
# Launch app with remote debugging
parchi electron launch "Slack" --port=9222
# Pass any agent-browser command through parchi
parchi electron connect 9222
parchi electron snapshot -i
parchi electron click @e5High level:
- Sidepanel UI renders chat, history, settings, and tool timelines
- Background worker runs the agent loop, tool execution, relay handling, and stream updates
- Shared contracts define plans, prompts, tools, and runtime-message schemas
Workspaces:
| Workspace | Role |
|---|---|
packages/backend/ |
Convex backend (auth, billing, API proxy) |
packages/cli/ |
Local CLI entrypoint and daemon client |
packages/electron-agent/ |
Relay-native Electron desktop automation agent |
packages/extension/ |
Browser extension runtime, UI, and tools |
packages/relay-service/ |
Relay daemon + relay protocol CLI |
packages/shared/ |
Shared plans, prompts, schemas, and message types |
packages/website/ |
Static website + billing pages |
More detail:
npm install # install all workspace deps
npm run build # build extension + relay + CLI bundles
npm run typecheck # repo-wide type checking
npm run lint # biome linter
npm run lint:fix # auto-fix lint issues
npm run test:unit # run unit tests
npm run test:integration # run headless integration tests
npm run test:e2e # run browser E2E harness
npm run check:repo-standards # enforce changed-file guardrails
npm run perf:tabs # sample Firefox/Chrome tab CPU + RAM
npm run backend:dev # run Convex dev backend workspace
npm run dev -w @parchi/website # run website workspace locallyAfter building, reload the extension in chrome://extensions to pick up changes.
npm run build:firefox # build for Firefox β dist/
npm run build:firefox:xpi # package as .xpi for distributionTAB_AUDIT_SAMPLES=6 TAB_AUDIT_INTERVAL_MS=10000 npm run perf:tabsThe audit now includes Parchi-attributed Firefox totals and RSS/CPU slope so you can separate overall browser pressure from likely extension pressure.
Use the full workflow in docs/tab-process-performance-playbook.md to run active/idle audits and validate regressions in Firefox + Chrome.
| Feature | Chrome | Firefox |
|---|---|---|
| Tab grouping | β | β |
| Side panel | β Native | Sidebar (adapted) |
| Relay keepalive | β Offscreen doc | β |
| Min version | MV3 | 109.0+ |
Parchi is MIT licensed.
Built with the AI SDK Β· Styled with Warm Paper design system