DEV Community

Jun Han
Jun Han

Posted on

Connect to Any Agent on iOS/Android! Claude, Codex, Copilot, Gemini, OpenCode and more

Without quite realizing it, I've ended up building three different ACP clients by now, each aimed at a slightly different crowd, and each one lets you connect to all the popular AI agents out there.

If you're a VS Code user, there's the ACP Client extension:

https://github.com/formulahendry/vscode-acp

If you want a lightweight ACP desktop app on Windows / macOS / Linux, there's the cross-platform ACP UI:

https://github.com/formulahendry/acp-ui

And if you want to talk to an agent right from your phone via WeChat (iOS or Android), there's WeChat ACP:

https://github.com/formulahendry/wechat-acp

But quite a few people have told me that driving an agent through WeChat still feels a bit underpowered. They want a proper native iOS / Android experience — and they want to be able to connect to any remote agent.

So today, on Labor Day, I shipped a new version of ACP UI with full iOS and Android support:

https://github.com/formulahendry/acp-ui/releases/tag/v0.1.13

Here's what it looks like running on the Redmi phone I splurged on:

ACP UI on Android

In the screenshot, my Redmi Android phone is talking to a Copilot CLI that's actually running on my Windows machine.

You're not limited to Copilot, of course — pretty much every mainstream agent speaks ACP, so you can hook up to any of them.

So how do you actually use it? Here's the Android-to-remote-Copilot-CLI flow as an example:

1. Download and install the latest APK:

https://github.com/formulahendry/acp-ui/releases

2. In a terminal on your computer, wrap the stdio Copilot CLI as a WebSocket:

npx @rebornix/stdio-to-ws "copilot --acp" --port 3000 --persist --grace-period -1
Enter fullscreen mode Exit fullscreen mode

3. (Skip this step if your machine has a public IP.)

In another terminal, expose port 3000 to the internet using Microsoft Dev Tunnels:

devtunnel host -p 3000
Enter fullscreen mode Exit fullscreen mode

If you'd like to skip the login prompt on Android, use this instead:

devtunnel host -p 3000 --allow-anonymous
Enter fullscreen mode Exit fullscreen mode

The command will print a URL that looks something like:

https://<id>-3000.<region>.devtunnels.ms
Enter fullscreen mode Exit fullscreen mode

Heads up: when you use it, swap https for wss, like so:

wss://...devtunnels.ms/
Enter fullscreen mode Exit fullscreen mode

4. Then, in the Settings screen on Android, drop in that WebSocket endpoint:

ACP UI Settings

And you're done!

The code is fully open-source:

https://github.com/formulahendry/acp-ui

The README has the full set of instructions — come check it out, and an ⭐ would be very much appreciated!

Top comments (0)