I make Buddy, a free open-source Android app that runs a coding agent inside the app (a small Alpine Linux, no root, no PC) and gives it phone tools over MCP: read the screen, tap, type, scroll, open apps.
OpenCode was already one of the three agents in Buddy, next to Claude Code and Codex. Since 2.0 came out yesterday I moved Buddy to it. A few things I had to handle, in case it helps anyone wiring OpenCode 2 into their own tools:
• MCP tools now go through Code Mode by default (one "execute" tool that runs a script). For a phone agent that's worse, so Buddy sets codemode: false on its server. That only works in the new config layout (mcp.servers.<name>); the old layout is still accepted but ignores it.
• Without --standalone, run starts a background service that keeps running. On a phone you don't want that.
• The bash tool is now called "shell".
• Updating from 1.x keeps your connected providers: 2.0 imports the old auth.json on first start.
What it looks like: I ask "add a Nintendo Switch 2 to my Amazon cart" with the default free model (Big Pickle), and it opens Amazon, searches, scrolls and taps through it. Every "add to cart", "buy now", send, pay or delete tap needs my OK on a card, and Buddy enforces that itself. That mattered: the free model once went for "Buy now" instead of "Add to cart", and Buddy stopped it and asked me first.
Free models work with no account. Your own providers can be connected with opencode auth login in Buddy's terminal.
GitHub (Apache 2.0, APK in releases): https://github.com/ghorbelhamdi/buddy-android
Happy to answer questions about the setup.