Mika: An Android AI Agent That Runs Apps on a Hidden Background Screen
Android automation no longer has to depend on per-app APIs or brittle scripts; Mika's screen-reading approach plus a hidden virtual display shows a practical path for device agents, though its undocumented internals and ToS risks mean production use needs scrutiny.
Mika is an open-source Android AI agent that takes over apps and web pages by reading the screen and tapping like a human, so it needs no App APIs and no per-app adaptations. Tasks run on a hidden background display, leaving your main screen free for other work. The app pairs once over wireless debugging to control other apps, then executes commands across platforms such as Chrome, WhatsApp, or local apps, with a built-in browser that keeps login state and handles downloads.
Model selection is explicit and privacy-aware: there is no Mika server, so requests and screen content go only to the provider you configure, from DeepSeek, Qwen, and Kimi to OpenAI, Anthropic, Gemini, or local models via Ollama and LM Studio. The default ask mode confirms before spending tokens; autonomous mode interrupts less, and login, CAPTCHA, and payment screens are always handed back to the user. Extras include scheduled tasks, voice input, a Linux sandbox for Python/Node/shell commands (arm64 only), and CLI/MCP links from a desktop agent.
The project is young (created 2026-10-29, ~7.2k stars) and its README leaves several implementation details unpublished, so you'll want a test device, a local model for anything sensitive, and acceptance of Android's wireless-debugging quirks.
The README's central promise of 'no App API, no per-app adaptation' is appealing, but it never discloses the screen-reading mechanism (accessibility service vs. a vision model) or any architecture, so the claim is unverifiable without reading the source.
The hidden background display is a thoughtful workaround for the main-screen monopoly that most screen agents cause, yet Android's multi-display behavior varies across OEM skins, making device-specific bugs a real possibility.
The privacy story is transparent (no Mika server) but conditional: when a cloud model is used, every frame Mika sees is shipped to that vendor, including potentially sensitive pages, so local models are the only strictly private route.