Ferngeist is an Android client for ACP-compatible coding agents. It includes a desktop companion daemon that auto-detects local agents and exposes a single authenticated endpoint to the app.
Two ways to add ACP agents:
- Download the latest release for your platform.
- Extract and run:
.\ferngeist.exe daemon install # Windows: run as Administrator .\ferngeist.exe pair # displays a pairing code
- Open Ferngeist on your Android device, tap Add server, and enter the tunnel URL with the pairing code.
The daemon listens on 127.0.0.1:5788. To reach it from a mobile device on a different network:
ngrok:
ngrok http 5788
# Note the HTTPS URL (e.g. https://xxxx.ngrok.io)
.\ferngeist.exe daemon install --public-url https://xxxx.ngrok.ioCloudflare Tunnel:
cloudflared tunnel --url http://localhost:5788
# Note the URL (e.g. https://xxxx.trycloudflare.com)
.\ferngeist.exe daemon install --public-url https://xxxx.trycloudflare.comFor a persistent tunnel without a terminal, see Cloudflare Docs.
Then pair and add the tunnel URL as the server host in Ferngeist:
.\ferngeist.exe pairThe companion can also be self-hosted on a VPS (Linux amd64 binaries are available in each release).
Most ACP agents only support stdio transport — wrap with a WebSocket bridge first. Check the agent's docs for the correct flags to start in ACP mode.
Example:
npx -y stdio-to-ws "npx @qwen-code/qwen-code@latest --acp" --port 8769Then add ws://<your-pc-ip>:8769 in Ferngeist as the server host.
Any agent implementing ACP, including Codex CLI, Claude Code, Gemini CLI, GitHub Copilot CLI, and OpenCode. See the full list.
- Kotlin 2.3 / Jetpack Compose + Material 3
- Hilt / Room / Kotlin Coroutines and Flow / KSP
- ACP Kotlin SDK
Requires Android 13+ (minSdk = 33).
cmd /c gradlew.bat :app:assembleDebugapp/ Android entry point, navigation, theme, DI
desktop-helper/ Local companion daemon (Go) for agent discovery and pairing
acp-bridge/ ACP transport, connection manager, session bridge
core/common/ Shared UI helpers and utilities
core/model/ Domain models and repository interfaces
data/database/ Room database, DAOs, entities
feature/serverlist/ Saved server management UI
feature/sessionlist/ Session listing and creation
feature/chat/ Streaming chat UI, reducers, markdown state
gradle/ Version catalog
Bug reports and feature requests welcome on GitHub Issues.
MIT. See LICENSE.