Skip to content

berk-developer/parchi

 
 

Repository files navigation

Parchi

Parchi

Your AI-powered browser copilot.

Chat-driven browser automation that lives in your sidebar. Navigate, read, click, extract — all through natural language.

Chrome MV3 Firefox License: MIT Version


Installation · Setup · Features · Use Your Subscription · Relay CLI


📦 Installation

Chrome (recommended)

1.

Get the extension files

git clone https://github.com/0xSero/parchi.git
cd parchi
npm install
npm run build

This creates a dist/ folder with the built extension.

2.

Open Chrome Extensions page

Navigate to chrome://extensions in your address bar, or go to ⋮ Menu → Extensions → Manage Extensions.

3.

Enable Developer Mode

Toggle the Developer mode switch in the top-right corner of the extensions page.

4.

Load the extension

Click "Load unpacked" and select the dist/ folder from the cloned repo.

5.

Open Parchi

Click the Parchi icon in your toolbar (you may need to pin it first via the puzzle piece icon). The side panel opens — you're ready to go.

Firefox

npm run build:firefox
  1. Open about:debugging#/runtime/this-firefox
  2. Click "Load Temporary Add-on"
  3. Select any file inside the dist/ folder

XPI packaging: npm run build:firefox:xpi outputs dist/parchi-0.4.0.xpi for distribution. Requires Developer Edition/Nightly or Mozilla add-on signing for release installs.


🔧 Setup Your AI Provider

Parchi works with any OpenAI-compatible endpoint. Open the Settings panel (gear icon) to configure.

Option A: Direct API Key (BYOK)

Use your own API key from any supported provider:

Provider API URL Example Models
OpenAI https://api.openai.com/v1 gpt-4o, gpt-4-turbo, o1
Anthropic https://api.anthropic.com/v1 claude-sonnet-4-20250514, claude-3-5-sonnet-20241022
Kimi https://api.moonshot.cn/v1 moonshot-v1-128k
OpenRouter https://openrouter.ai/api/v1 Any model on OpenRouter
Local (Ollama, LM Studio) http://localhost:11434/v1 llama3, mistral, etc.
Any OpenAI-compatible Your endpoint URL Your model name

Steps:

  1. Open Settings → select your provider or choose Custom
  2. Paste your API Key
  3. Set the API URL (auto-filled for known providers)
  4. Pick a Model from the dropdown (auto-fetched) or type one manually
  5. Hit Save — start chatting

Option B: Parchi Account (Proxy Mode)

Sign in with Google or GitHub to use Parchi's hosted proxy. No API keys needed — billing is handled through your Parchi subscription.

  1. Open Settings → choose Paid account mode
  2. Sign in via OAuth
  3. Select a model and start chatting

🔑 Use Your Existing AI Subscription

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.

How it works

  1. Install CLIProxyAPI — follow the setup guide
  2. Authenticate with your existing provider (Claude, OpenAI, Gemini, etc.) via OAuth
  3. 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
  4. Chat — requests route through your existing subscription

Supported subscriptions

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.


✨ Features

Chat & AI

  • Streaming responses with real-time reasoning display
  • Extended thinking for Claude models (thinking budget scales with max tokens)
  • Multiple profiles — save different provider/model/prompt configs and switch instantly
  • Vision support — analyze screenshots and video frames with vision-capable models
  • Context compaction — auto-summarizes old conversation when approaching token limits
  • Workflow templates — save and reuse prompt templates with / quick access

Browser Automation (25+ tools)

Parchi can control your browser through natural language:

Category Tools What they do
Navigate navigate, openTab, closeTab, switchTab Go to URLs, manage tabs
Interact click, clickAt, type, pressKey, scroll Click elements, fill forms, press keys
Read getContent, screenshot, findHtml Extract text, capture pages, search DOM
Video watchVideo, getVideoInfo Analyze video by frame capture
Organize groupTabs, getTabs, describeSessionTabs Group and list tabs
Plan set_plan, update_plan Step-by-step task planning and tracking
Delegate spawn_subagent, subagent_complete Multi-agent orchestration

Session Management

  • Session tabs — auto-groups tabs opened during a session (Chrome)
  • Floating HUD showing active session tabs
  • Chat history — up to 50 sessions, 200 messages each
  • Export conversations as markdown (full, last response, or detailed with tool events)

Settings & Controls

  • Tool permissions — toggle read, interact, navigate, tabs, screenshots
  • Domain allowlist — restrict which sites the agent can act on
  • Action confirmation — require approval before the agent acts
  • Themes — Void, Ember, Forest, Ocean, and more
  • UI zoom — 85% to 125%
  • Custom headers — add auth tokens or special headers per profile

🛰 Relay Daemon & CLI

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. Enable in extension Settings → Relay section
#    URL: http://127.0.0.1:17373
#    Token: your-secret

CLI 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"

🏗 Architecture

┌─────────────────────────────────────────────────┐
│                  Side Panel UI                   │
│  Chat · Tools Timeline · Settings · History      │
└──────────────────────┬──────────────────────────┘
                       │ runtime messages
┌──────────────────────▼──────────────────────────┐
│            Background Service Worker             │
│  Agent loop · Tool execution · Stream handling   │
└───────┬───────────────────┬─────────────────────┘
        │                   │
   Chrome APIs         AI Provider
  (tabs, scripting,    (OpenAI, Anthropic,
   navigation)          custom endpoints)

Key paths:

File Role
packages/extension/background.ts Agent loop, AI calls, tool execution
packages/extension/sidepanel/ UI — chat, settings, tools, history
packages/extension/tools/ Browser automation tool definitions
packages/shared/ Shared types and runtime message schemas

🔨 Development

npm install          # install dependencies
npm run build        # build to dist/
npm run typecheck    # type checking
npm run lint         # biome linter
npm run lint:fix     # auto-fix lint issues
npm run test:unit    # run unit tests

After building, reload the extension in chrome://extensions to pick up changes.

Firefox builds

npm run build:firefox       # build for Firefox → dist/
npm run build:firefox:xpi   # package as .xpi for distribution

📊 Chrome vs Firefox

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 69.3%
  • TypeScript 20.0%
  • CSS 7.4%
  • HTML 3.3%