# Show HN: Pi Extension to Maximize AI Credits Across Cursor, Codex, ClaudeCode

> Source: <https://github.com/sathish316/pi-omniagent-extensions/>
> Published: 2026-06-18 15:41:44+00:00

All four files do the same job: they let Pi (the host coding agent) drive another coding agent's CLI as if it were just another model in Pi's `/model`

picker. It uses ACP ([https://agentclientprotocol.com/](https://agentclientprotocol.com/)) to communicate with any coding agent. You pick "Cursor Sonnet" or "GPT-5 [codex-app-server]" or "Opus [claude-code-acp]" in Pi, and your turn is secretly executed by that external agent running in your workspace.

They all follow this shape:

```
┌────────────────────────────────────────────────────────────────────┐
│ Pi host process                                                    │
│                                                                    │
│   /model picker ──► pi.registerProvider(...)                       │
│        │                                                           │
│        │ streamSimple(model, context)                              │
│        ▼                                                           │
│   ┌─────────────┐   builds prompt    ┌──────────────────────┐      │
│   │  Provider   │ ─────────────────► │   Bridge (singleton) │      │
│   │  stream fn  │ ◄───────────────── │  serializes turns,   │      │
│   └─────────────┘   stream events    │  owns 1 session      │      │
│        ▲                             └──────────┬───────────┘      │
│        │ AssistantMessageEventStream            │ spawn            │
│        │ (text/thinking deltas)                 ▼                  │
└────────┼────────────────────────────────────────┼──────────────────┘
         │                                        │
         │                                        ▼
         │                              ┌───────────┬──────────┐
         └──── JSON-RPC over stdio ───► │ Child process (CLI)  │
                                        │ cursor-agent / rovo  │
                                        │ codex / claude-acp   │
                                        └──────────────────────┘
```

The bundled extensions:

`cursor-acp.ts`

— Cursor Agent over ACP`codex-app-server.ts`

— OpenAI Codex over app-server`claude-code-acp.ts`

— Claude Code over ACP (uses the official ACP SDK)`rovo-acp.ts`

— Atlassian Rovo Dev over ACP

Pi auto-discovers `*.ts`

files in `~/.pi/agent/extensions`

, but external npm dependencies are not bundled into those files.

-
Clone this repo:

```
git clone https://github.com/sathish316/pi-omniagent-extensions.git
cd pi-omniagent-extensions
```

-
Copy the extension files into your Pi extensions directory:

```
mkdir -p ~/.pi/agent/extensions
cp cursor-acp.ts rovo-acp.ts codex-app-server.ts claude-code-acp.ts \
   package.json ~/.pi/agent/extensions/
```

-
Install the extension dependencies:

```
cd ~/.pi/agent/extensions
npm install
npm run check:claude-code-acp-deps
```

-
Make sure the underlying agent CLIs are installed and on your

`PATH`

for the extensions you want to use:`cursor-agent`

(cursor-acp),`rovo`

(rovo-acp),`codex`

(codex-app-server).`claude-code-acp`

pulls its runtime from npm. -
Restart Pi. The bridged models appear in the

`/model`

picker tagged with their provider, e.g.`[codex-app-server]`

or`[claude-code-acp]`

.

The `claude-code-acp.ts`

extension needs:

`@agentclientprotocol/sdk`

`@agentclientprotocol/claude-agent-acp`

The Pi API packages imported by the extensions are provided by the running Pi installation.
