Skip to main content

Local daemon connecting an ACP-type Paca agent to a coding CLI (Claude Code, Codex, Gemini CLI, or a custom ACP server) running on your own machine.

Project description

paca-acp-bridge

A small local daemon that connects an ACP-type Paca AI agent to a coding CLI running on your own machine — Claude Code, Codex, Gemini CLI, or a custom Agent Client Protocol server. Run it from your project's source directory; it spawns the ACP server there and streams the conversation back to Paca. Nothing is cloned into a cloud sandbox and no source code leaves your machine — Paca only ever sends task requests and receives responses back.

Prerequisites

  • Python 3.12+ (only needed if you don't use uvx, which manages this for you)
  • Node.js (most built-in ACP providers are launched via npx)
  • Your own local auth for whichever provider you pick — e.g. run claude setup-token for Claude Code, or export OPENAI_API_KEY / GEMINI_API_KEY for Codex/Gemini CLI. This is entirely your own local setup, exactly as if you were running that CLI yourself — Paca never sees, stores, or forwards this. Likewise, any MCP servers or skills you've configured for your local ACP client are used as-is; Paca doesn't manage or inject any of that.

Run it

No install step needed — uv fetches and runs it in one shot:

cd /path/to/your/project
uvx paca-acp-bridge run \
  --agent-id <agent-id> \
  --token <token> \
  --server https://your-paca-instance.example.com

(Or uv pip install paca-acp-bridge first, then run paca-acp-bridge run ... the same way.)

--agent-id, --token, and --server can also be set via PACA_ACP_AGENT_ID, PACA_ACP_TOKEN, and PACA_ACP_SERVER. The agent id and token are shown once when you generate (or regenerate) the local bridge token for an ACP agent in Paca's Agents UI — copy the run command shown there.

By default the ACP server operates on your current directory; pass --workspace <path> to point at a different one.

Tools, MCP servers, skills, and git access

ACP agents don't take Paca-managed tool/MCP/skill configuration — the ACP server you run owns all of that, using your own local setup. This also means it has full, native access to whatever git/gh credentials you already have configured locally, so it can clone, commit, push, and open pull requests exactly as if you were driving it yourself in a terminal.

Since Paca doesn't inject anything into an ACP conversation, making your agent Paca-aware — so it uses Paca's MCP tools and task/doc workflow instead of local TODOs and stray markdown files — means installing that yourself into whichever CLI you're running. Paca's Agents UI walks through this for your specific agent (bridge install, skill install, MCP connection), or run it directly from a terminal:

PACA_API_URL=<your-paca-url> \
  curl -fsSL https://raw.githubusercontent.com/Paca-AI/paca/master/scripts/install-paca-skills.sh | bash

PACA_API_URL is required here — the installer fetches skill content from that instance's API (matching the exact version it's running) rather than GitHub. PACA_API_KEY (from Paca → Settings → API Keys) is optional, but also pulls in skills contributed by any plugins enabled on that instance. Run this from the same project directory you'll run the ACP bridge from — Claude Code and Gemini CLI pick the skills up globally either way, but Codex (and anything else that reads AGENTS.md) only sees them if the installer's AGENTS.md output landed in that project. See docs/guides/install-skills.md for details.

How it works

This daemon runs the OpenHands SDK's ACPAgent in its default local mode — the same as the SDK's own quickstart example — which spawns your chosen ACP CLI as a real local subprocess against the current directory. Conversation events stream back to Paca over an authenticated WebSocket (/agent-bridge/ws on your Paca instance) and are stored the same way as any other agent conversation, so the chat UI works identically regardless of where the agent actually ran.

Keep this process running for as long as you want the agent to be reachable from Paca — it reconnects automatically on a dropped connection.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

paca_acp_bridge-0.10.8rc1.tar.gz (311.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paca_acp_bridge-0.10.8rc1-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file paca_acp_bridge-0.10.8rc1.tar.gz.

File metadata

  • Download URL: paca_acp_bridge-0.10.8rc1.tar.gz
  • Upload date:
  • Size: 311.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for paca_acp_bridge-0.10.8rc1.tar.gz
Algorithm Hash digest
SHA256 d7f73cf1c8329b7a6e2e056945c4aa1d2d9b42638a9646f3243942b886016430
MD5 b74be980d6207df8b5d55fcebd23f208
BLAKE2b-256 c5e484171d35e113ec6c10b8c5b815c3bb24297ac19179da395a5e1065f99bfb

See more details on using hashes here.

File details

Details for the file paca_acp_bridge-0.10.8rc1-py3-none-any.whl.

File metadata

  • Download URL: paca_acp_bridge-0.10.8rc1-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for paca_acp_bridge-0.10.8rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 1bf750c38ded2637ee03f702f9a741052acd71db43bfd0f46037993c7adb8c27
MD5 c7828b13b9f2a01311391495a4614afc
BLAKE2b-256 7bcf03c9e55ae7126dd2d9b7e5b55f7ec15adeb260dcb006e3f1bc98649fd3f0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page