repowisewangzan101/mika

wangzan101 / mika Architecture and code health

Mika — 你手机上的私人 AI 助理,替你操作 App、上网、把事办成。An on-device AI agent for Android that operates apps and the web to get things done for you.

Kotlin★ 2,424

github.com/wangzan101/mikaIndexed at cfa4380Up to date with upstream

What is mika?

Mika is an on-device AI agent for Android that carries out a one-sentence request by operating apps and the web on the phone. It drives apps on a private background screen, browses the web in a built-in browser, and runs scripts in a local Linux sandbox, all using a model API key that the user supplies. The code is mainly written in Kotlin.

Written by a model from the README and the source

1,313 files and 22,765 symbols in 4 modules, led by Kotlin (996 files) and Python (4).

Code health

9.0out of 10Excellent

Hotspots average 7.9, the place fixes pay off most.

On the leaderboards:#1 of 1 Kotlin repos

Use wangzan101/mika in your agent

Point Claude Code, Cursor, Codex or VS Code at this repository. Your agent gets the index this page is built from: cited answers, callers, history and health for any file.

  1. 1.In Claude, open Customize → Connectors, click +, then Add custom connector. On a Team or Enterprise plan an owner adds it first under Organization settings → Connectors.
  2. 2.Paste the server URL below as the Remote MCP server URL, then click Add.
  3. 3.Click Connect. A Repowise sign-in window opens. Approve access.
  4. 4.Repowise's tools are now available in your Claude chats.

Connect with one click. Sign in with Repowise (OAuth), no API key to copy. Works in Claude on the web, desktop, and mobile.

Docs
bash
https://api.repowise.dev/mcp/wangzan101/mika
Editors need an API key: sign in to create one.Sign in to connect

This repo is public, so anyone with a Repowise account and an API key can connect.

Try asking

  • get_overview()
  • get_answer("how is mika put together?")
  • get_why("why is mika structured this way?")

Explore mika

Key features of mika

  • Operates installed Android apps on a private background screen so the user can keep using the phone.
  • Browses the web in a built-in browser that performs real clicks and keyboard input.
  • Runs Python, Node and shell commands in a Linux sandbox that is available only on arm64 devices.
  • Works with the user's own model API key, with presets for providers such as DeepSeek and OpenRouter and custom endpoints for OpenAI-compatible, Anthropic or Gemini APIs.
  • Runs scheduled and conditional tasks and asks the user to handle steps such as logins, verification codes and payments.

How wangzan101/mika works

The app module holds the Android user interface, including ChatViewModel.kt behind the chat screen, ChatDrawer.kt for the chat drawer, and ModelsScreen.kt for the models screen. Model provider settings are kept in app/src/main/java/com/wangzan101/mika/settings/ProviderStore.kt, which is a central file for connecting to the configured model services. The core module holds the largest share of the files, along with the built-in knowledge and skills. Knowledge entries are plain Markdown text files under core/src/main/resources/knowledge/, and skills are kept under core/src/main/resources/skills/, so they can be extended without writing code. The docs/architecture.md file describes the current code structure with class names and file paths.

The codebase has 1,313 files and 22,765 symbols in 4 modules, led by Kotlin, Python and JavaScript. Code health is 9.0 out of 10, rated excellent.

Getting started with mika

  1. Download the latest APK from the Releases page and install it on an Android device.
  2. Install JDK 17 and an Android SDK, setting sdk.dir in local.properties or the ANDROID_HOME environment variable.
  3. Build the debug package.
    ./gradlew :app:assembleDebug
  4. Run the unit tests.
    ./gradlew :core:test :app:testDebugUnitTest

Commands copied from the README

wangzan101/mika FAQ

What is Mika?

Mika is an on-device AI agent for Android that carries out a one-sentence request by operating apps and the web on the phone. It works on a private background screen, so the user can keep using the phone. The project is in public beta.

How does Mika work?

Mika reads the phone screen, taps and types in apps, and browses web pages in a built-in browser. It uses a model API key that the user provides, and requests go only to the configured model provider, with no Mika server in between.

How do I install Mika?

Mika is installed from the APK published on the Releases page of the repository. It installs on Android 11 or later, tasks need Android 13 or later, and Android 14 or later is recommended.

What language is Mika written in?

Mika is written mainly in Kotlin. Smaller parts use Python, JavaScript, Java, C and shell.

How is the Mika code organized?

The code is split into a core module and an app module. The core module holds built-in knowledge and skills as text files under core/src/main/resources, and the app module holds the Android user interface under app/src/main/java/com/wangzan101/mika/ui.

Who is Mika for?

Mika is for Android users who want an AI model to handle everyday phone tasks, such as sorting through a long chat history or setting a scheduled task. The user supplies the model API key and chooses the provider.

What license does Mika use?

Mika is licensed under Apache-2.0. The license identifier in the repository metadata is Apache-2.0.

The summary, features and answers on this page are written by a model from the README and the source, and refreshed with each index.

About this page

Get a page like this for your own codebase

Repowise built this map of wangzan101/mika from its source and git history. It parses every symbol, draws the dependency graph, scores each file's health from complexity, duplication, coverage and churn, finds hotspots and owners in the history, and writes documentation for every module. Your coding agent reads the same index over MCP, so its answers cite real files.

Index your repo freeSee how Repowise worksFree for 2 public repos, with a page like this one.

Prefer local? pip install repowise && repowise init indexes your own checkout, no account needed.