How ChatPanel works, why it needs a local bridge, and what it can and can't see.
Browser extensions run in a sandbox — for your safety, Chrome won't let a web extension launch programs, read your filesystem, or run a terminal. That's a problem for ChatPanel, because the whole point is to talk to the AI agents already installed on your machine — Claude Code, Codex, Gemini CLI.
The bridge is a tiny open-source helper that runs locally and closes that gap.
The extension talks to the bridge over localhost (a loopback connection that never
leaves your computer), and the bridge starts your local agents on your behalf and streams their
replies back to the panel.
Your prompts and keys stay local — content goes only to the agent you choose. No ChatPanel cloud in the path
Do you always need it? Only for local CLI agents. If you just point ChatPanel at a cloud API or a local model server (your own OpenAI/Anthropic/Ollama endpoint), the extension talks to that directly and no bridge is required.
Those are macOS privacy prompts (Apple's TCC system), not something the bridge wants for itself. The bridge launches your local agents, and when one of them reads or writes a file in a protected folder, macOS asks your permission and attributes the prompt to the parent app — the bridge.
You can grant or deny per folder; denying simply limits the agents to non‑protected directories. They only touch files when you ask a question that needs them (or when you point an agent at a working directory).
If the prompts reappear after a bridge update, that's expected: macOS ties approvals to an app's exact code signature, so a new build re-asks. A fully signed & notarized release keeps the approvals stable across updates.
No. ChatPanel is local-first. Your prompts, keys, and history live in your browser; the bridge runs entirely on your machine. Content goes only to the model or agent endpoint you choose — we have no cloud in the data path and never see your conversations.
Yes — the extension and the bridge are public on
GitHub, so you can
read exactly what the bridge does. It listens only on localhost (not the network),
uses your existing agent logins, and ships no telemetry.
Install it once from the ChatPanel Install section; it runs quietly in the background and the extension detects it automatically. To use only cloud/API models, you can skip the bridge entirely.