Skip to content
RCreddit.com·

I built an Android app where Claude Code, Codex or OpenCode use your phone through MCP (open source)

AI summary

A developer has created Buddy, an open-source Android app (Apache 2.0) that allows AI agents like Claude Code, Codex, or OpenCode to control a user's phone. The agents run within the app using Alpine Linux (proot) and interact with the phone via a local MCP server, performing actions such as reading the screen, tapping, typing, and opening apps. Security features include approval cards for sensitive actions and preventing agents from typing into password fields.

Time & source

Times shown in UTC

Display time zone: UTC

Local time zone unavailable; showing UTC.

PublishedOffset at this time: UTC+0Oct 25, 2026, 07:22 UTC

IngestedOffset at this time: UTC+0Oct 25, 2026, 09:00 UTC

Published
Oct 25, 2026, 07:22
Ingested
Oct 25, 2026, 09:00
Source type
Dev community
Tier
Community
Source status
Healthy

Tier is a per-source editorial setting, not a per-item score.

What I built: Buddy, an Android app with a floating chat bubble. You ask for something ("reply to Sam that I'm running late") and an agent reads the screen, taps and types until it's done.

How it works: - The agents (Claude Code, Codex, OpenCode, Antigravity CLI) run inside the app in a small Alpine Linux (proot). No PC, no root, no adb. - Buddy gives them phone tools through a local MCP server: read the screen, tap, type, scroll, open apps, screenshots, plus a headless Chromium for web pages. - The screen is read through Android's accessibility tree as text. A button with no text falls back to its view id, then to a screenshot. - A guard sits between the agent and every tap: Send, Pay and Delete get an approval card, each app gets a mode (Trust, Hard, or a second model reviewing), and the agent never types into password fields.

What I learned: - Reading the accessibility tree as text is much faster and cheaper than screenshots. Screenshots are only worth it for canvas-drawn apps. - Safety has to live in the app, not the prompt. A prompt can be ignored; a hard stop before Send can't. - Agents need to re-read the screen after every action. Dialogs and loading screens change things under them.

Repo (Apache 2.0): https://github.com/ghorbelhamdi/buddy-android

Source·reddit.com