Every AI coding agent. Every protocol. One app. Copilot CLI. Gemini. Claude Code. Codex. Qwen. Vibe. They all work. From your phone. Yes, really.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ββββββ βββββββ ββββ ββββββββββββββββ βββ β
β ββββββββββββββββ βββββ ββββββββββββββββββ βββ β
β βββββββββββ βββββββββββββββββββββ ββββββ βββ β
β βββββββββββ ββββββββββββββββββββ ββββββββββ β
β βββ βββββββββββββββ βββ ββββββββββββββ ββββββ β
β βββ βββ βββββββ βββ ββββββββββββββ βββββ β
β T E M O B I L E A G E N T C L I E N T β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Every major tech company shipped an AI coding agent. Copilot CLI. Gemini CLI. Claude Code. OpenAI Codex. Qwen. Mistral Vibe. They're powerful. They're transformative. They run in your terminal.
But what if you're on your couch? On a train? In bed at 2am having a "what if I refactored the entire auth layer" moment?
Agmente is a native mobile client that connects to any AI coding agent over WebSocket. It speaks both ACP (Agent Client Protocol) and Codex app-server protocol β auto-detecting which one your server uses. You get the full experience: tool calls, file changes, plan mode, session history, syntax-highlighted code β all from your phone.
Yes, that's a full coding agent interface. Yes, that's on your iPhone. Yes, it's on the App Store right now.
Connect your phone to any AI coding agent (Copilot, Gemini, Claude Code, Codex, Qwen, Vibe) over WebSocket. See tool calls, edit files, manage sessions β all natively on iOS, Android, and React Native. Auto-detects ACP vs Codex protocol. Ships with a full Swift ACP SDK. It just works.
| Use Case | Description | |
|---|---|---|
| π± | Mobile coding agent | Run Copilot CLI / Gemini / Claude Code from your phone |
| π | Connect to any ACP server | Any agent that speaks Agent Client Protocol β just add the WebSocket URL |
| π€ | Connect to Codex app-server | OpenAI's experimental app-server protocol β fully supported |
| π§ | Plan mode | Review Codex plans before execution β approve, reject, iterate |
| π§ | Tool call visibility | See every file read, write, terminal command the agent executes |
| π | File changes view | Inline diffs for every file the agent modifies |
| π | Remote access | Cloudflare Tunnel + Access tokens for secure wss:// connections |
| πΎ | Session persistence | Resume conversations even after app restart β local + server-side |
| π | Multi-protocol | Auto-detects ACP vs Codex after initialize β zero config |
| π | Session management | Create, list, load, archive sessions/threads per server |
| β‘ | Skills & permissions | Select agent skills, toggle YOLO/Auto Edit/Plan/Default modes |
| ποΈ | Three platforms | iOS (SwiftUI), Android (Compose), React Native β same experience everywhere |
# π Just download it
# https://apps.apple.com/us/app/agmente/id6756249477# π¦ Grab the latest APK from GitHub Releases
# https://github.com/friuns2/Agmente/releases/latest
# Sideload it β no Play Store needed. No signing drama.# π Clone and build
git clone https://github.com/rebornix/Agmente.git
cd Agmente
open Agmente.xcodeproj
# π Hit Run. You're flying. βοΈcd AgmenteAndroid
./gradlew assembleDebug
# π± Install on device or emulator# π§ͺ Codex app-server (direct WebSocket)
codex app-server --listen ws://127.0.0.1:8788
# π ACP agent via stdio-to-ws (Gemini, Claude Code, Copilot, etc.)
npx -y @rebornix/stdio-to-ws --persist --grace-period 604800 "npx @google/gemini-cli --experimental-acp" --port 8765Add your server in the app β Connect β Initialize β Start coding from your phone. π―
Agmente/
βββ π± Agmente/ # iOS app (SwiftUI)
β βββ π Networking/ # WebSocket, ACP/Codex clients
β βββ π¨ UI/ # Views, components, screens
β βββ π§ ViewModels/ # ACP & Codex view models
β βββ πΎ Persistence/ # Core Data session storage
βββ π€ AgmenteAndroid/ # Android app (Kotlin + Compose)
β βββ π¦ app/ # Main Android application
β βββ π acpclient/ # Kotlin ACP client module
β βββ π appserverclient/ # Kotlin Codex client module
βββ βοΈ AgmenteRN/ # React Native app
β βββ π src/ # TypeScript source
βββ π§ ACPClient/ # Swift ACP SDK (SwiftPM)
β βββ π Docs/ # Protocol diagrams & logos
β βββ π§ͺ Tests/ # Unit tests
βββ π§ AppServerClient/ # Swift Codex app-server client
βββ π§ͺ AgmenteTests/ # iOS unit tests
βββ π§ͺ AgmenteUITests/ # iOS UI tests
βββ π docs/ # Documentation & screenshots
βββ π Scenarios/ # User scenario guides
βββ βοΈ .github/ # CI workflows & GitHub config
If it speaks ACP or Codex protocol β it works.
| Agent | Protocol | Command |
|---|---|---|
| π’ GitHub Copilot CLI | ACP | copilot --acp |
| π΅ Google Gemini CLI | ACP | npx @google/gemini-cli --experimental-acp |
| π£ Claude Code | ACP | npx @zed-industries/claude-code-acp |
| β« OpenAI Codex | Codex | codex app-server --listen ws://... |
| π Qwen | ACP | qwen --experimental-acp |
| π΄ Mistral Vibe | ACP | vibe-acp |
| π‘ Any ACP agent | ACP | Bring your own! |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π± Agmente App β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β iOS (Swift) β βAndroid (Kt) β β React Native β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββββ¬ββββββββββ β
β β β β β
β ββββββββΌββββββββββββββββββΌβββββββββββββββββββββΌββββββββββ β
β β Protocol Auto-Detection β β
β β (initialize β check userAgent) β β
β ββββββββββββββββ¬βββββββββββββββββββ¬ββββββββββββββββββββββ β
β β β β
β ββββββββββββββββΌβββββββ ββββββββββΌβββββββββββββββββββ β
β β ACP Client β β Codex Client β β
β β session/new β β thread/start β β
β β session/prompt β β turn/start β β
β β session/cancel β β turn/interrupt β β
β β session/list β β thread/list β β
β β session/load β β thread/resume β β
β ββββββββββββ¬βββββββββββ ββββββββββ¬βββββββββββββββββββ β
β β β β
βββββββββββββββΌββββββββββββββββββββββΌββββββββββββββββββββββββββ
β WebSocket β WebSocket
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β ACP Agent β β Codex Server β
β (stdio-to-ws) β β (app-server) β
βββββββββββββββββββ βββββββββββββββββββ
- π iOS: Xcode (latest stable), macOS, iOS 17+
- π€ Android: Android Studio, Kotlin 2.0, API 26+
- βοΈ React Native: Node.js 18+, React Native 0.84
- π Agent: Any ACP or Codex-compatible server
Run your agent on a beefy remote machine. Control it from your phone.
# π Start agent on remote host
npx -y @rebornix/stdio-to-ws --persist --grace-period 604800 "copilot --acp" --port 8765
# π Expose via Cloudflare Tunnel
cloudflared tunnel --url http://localhost:8765
# π± Add wss:// endpoint in Agmente β Connect β Code from anywhereFull guide: setup.md | Quick reference: docs/remote-agent.md
# π iOS app tests
xcodebuild -project Agmente.xcodeproj \
-scheme Agmente \
-destination "platform=iOS Simulator,name=iPhone 16" \
test
# π¦ ACPClient package tests
swift test --package-path ACPClient
# π€ Android tests
cd AgmenteAndroid && ./gradlew test| Problem | Solution |
|---|---|
| π΄ Can't connect to agent | Check WebSocket URL scheme (ws:// for local, wss:// for remote) |
| π΄ Session creation fails with ENOENT | Leave working directory empty, or set a valid path on the agent host |
| π΄ Agent disconnects on iOS background | Use --persist flag with stdio-to-ws β it buffers messages during disconnection |
| π΄ Codex protocol not detected | Ensure your Codex server returns a codex/β¦ userAgent in initialize response |
| π΄ Port already in use | Run pkill -9 -f "stdio-to-ws.*8765" to kill stale processes |
We welcome contributions! Check the open issues and submit a PR.
- π See
CONTRIBUTING.mdfor guidelines - π See
SECURITY.mdfor security policy - π See
CODE_OF_CONDUCT.mdfor community standards
If you believe AI coding agents should be accessible from anywhere β not just your terminal β smash that star button. β
Every agent. Every protocol. Every platform. One app.
Built with SwiftUI, Kotlin Compose, and an unhealthy obsession with mobile agent UX π¬
They said "just use the terminal." We said "hold my phone." π


