Vibe Coder Android
A single-user Android console that drives a PC-side vibe-coder-server over your LAN.
About
Vibe Coder Android is not “Android as a dev machine.” It is a remote console. The heavy work — Anthropic Claude Code CLI, the Gradle Wrapper, the Git CLI, and workspace file management — runs on a companion server (vibe-coder-server) on your own PC. The Android app signs in to that server, sends prompts, watches log streams, downloads the build's APK, and opens the system install screen for it. Nothing more.
As of v0.4.x (May 2026), the Android client (vibe-coder-android) and the server (vibe-coder-server) are distributed as two separate Git repositories. They are kept wire-compatible through a shared :shared JVM module that contains the serialized DTOs, API paths, and WebSocket frame definitions; the modules in this repository are shared/ and android-app/app/.
First run
- Start
vibe-coder-serveron your PC. - Open
http://<PC IP>:17880/adminin a browser and create the first admin account. - Launch the Android app and enter the four fields on the Connect screen: Server URL (
http://<PC IP>:17880), Username, Password, and a Device name label. - On successful login the app navigates to the dashboard, from which project registration, Claude prompts, builds, APK download, and the Git flow all happen within the same session.
Security boundaries
Vibe Coder Android is intentionally scoped as a single-user LAN tool, and the security model is documented as such in the project's README:
- The session token is stored in Jetpack
DataStore. The Android Keystore is intentionally not used — this is a personal LAN tool, not a multi-tenant client. Treat any device that has signed in as a trusted device. - The same token is accepted by the server as either an
Authorization: Bearerheader or avibe_sessioncookie. - The console WebSocket authenticates by sending
{"type":"auth","token":"..."}as the first frame after connect, so the token never appears in the connection URL.