How wangzan101/mika works
Mika is an Android personal AI assistant: a user request becomes a managed task, the agent plans and executes phone, browser, or sandbox actions, then returns a result with progress and records. The README also documents scheduled/conditional work, user takeover and payment confirmation, memory, MCP access, and reviewable run history. The graph combines those documented capabilities with relationships visible in the supplied excerpts and SOURCE INDEX; unsampled subsystem wiring is not inferred.
Main entry points: TaskRun.kt Task execution · TaskService.kt Task service · AgentLoop.kt Agent loop · PhoneAutomationEngine.kt Phone automation
Components 22
User interaction
- Chat interface
app/src/main/java/com/wangzan101/mika/ui/ChatViewModel.kt - Floating capsule
app/src/main/java/com/wangzan101/mika/capsule/CapsuleController.kt - User takeover
app/src/main/java/com/wangzan101/mika/takeover/Takeover.kt - Payment confirmation
app/src/main/java/com/wangzan101/mika/confirm/ConfirmationNotifier.kt
Task orchestration
- Task service
app/src/main/java/com/wangzan101/mika/task/TaskService.kt - Task execution
app/src/main/java/com/wangzan101/mika/task/TaskRun.kt - Agent loop
core/src/main/kotlin/com/wangzan101/mika/core/agent/AgentLoop.kt - Scheduled tasks
app/src/main/java/com/wangzan101/mika/task/TriggerRuntime.kt
Action capabilities
- Phone automation
core/src/main/kotlin/com/wangzan101/mika/core/cap/phone/PhoneAutomationEngine.kt - Screen accessibility
app/src/main/java/com/wangzan101/mika/cap/phone/a11y/ScreenAccessibility.kt - Background shell
app/src/main/java/com/wangzan101/mika/cap/phone/shell/ShellService.kt - Built-in browser
app/src/main/java/com/wangzan101/mika/cap/web/WebStack.kt - Linux sandbox
app/src/main/java/com/wangzan101/mika/cap/sandbox/AndroidSandbox.kt
Memory and records
- Encrypted memory
app/src/main/java/com/wangzan101/mika/memory/MemoryRuntime.kt - Conversation store
app/src/main/java/com/wangzan101/mika/chat/ConversationStore.kt - Run history
External access
- MCP service
app/src/main/java/com/wangzan101/mika/mcp/McpService.kt - Model provider
app/src/main/java/com/wangzan101/mika/settings/ProviderStore.kt
Other components
- User
- Android apps
- Websites
- Computer AI tool
Connections 24
- User → Chat interface: requests task
- Chat interface → Task service: starts task
app/src/main/java/com/wangzan101/mika/capsule/CapsuleController.kt - User → Floating capsule: steers task
app/src/main/java/com/wangzan101/mika/capsule/CapsuleController.kt - Floating capsule → Task service: sends input
app/src/main/java/com/wangzan101/mika/capsule/CapsuleController.kt - Scheduled tasks → Task service: triggers task
app/src/main/java/com/wangzan101/mika/task/TaskService.kt - Task service → Task execution: creates run
app/src/main/java/com/wangzan101/mika/task/TaskService.kt - Task execution → Agent loop: runs agent
app/src/main/java/com/wangzan101/mika/task/TaskRun.kt - Agent loop → Model provider: queries model
- Agent loop → Phone automation: dispatches actions
- Phone automation → Screen accessibility: reads and acts
- Phone automation → Background shell: uses background shell
- Agent loop → Built-in browser: dispatches actions
- Agent loop → Linux sandbox: runs scripts
- Built-in browser → Websites: browses
- Background shell → Android apps: controls apps
- User → User takeover: handles interruption
- Task execution → User takeover: requests handover
app/src/main/java/com/wangzan101/mika/task/TaskService.kt - Task execution → Payment confirmation: requests approval
app/src/main/java/com/wangzan101/mika/task/TaskService.kt - Task service → Conversation store: loads and saves
app/src/main/java/com/wangzan101/mika/task/TaskService.kt - Task execution → Encrypted memory: uses memory
app/src/main/java/com/wangzan101/mika/task/TaskRun.kt - Task execution → Run history: records events
- Computer AI tool → MCP service: assigns tasks
- MCP service → Task service: starts and tracks
app/src/main/java/com/wangzan101/mika/mcp/McpService.kt - Task execution → Chat interface: returns result