Skip to content
ukkin Star on GitHub

Architecture

From a sentence to a running agent

Every Ukkin agent follows the same five stages: understand the request, plan the workflow, perceive the screen, act on installed apps, and record what happened — all on your Android device.

  "watch my wishlist for price drops"   you describe it
        │  LLM interprets intent
        ▼
   ┌────────────────────────────────────────────┐
   │  Agent + device-aware scheduler            │
   │  ├─ steps (editable)                        │
   │  └─ conditions: time · Wi-Fi · charging     │
   └────────────────────────────────────────────┘
        │  runs in background (Android today)
        ▼
   ┌────────────────────────────────────────────┐
   │  Android Accessibility Service              │
   │  ├─ reads on-screen accessibility tree      │
   │  └─ taps · types · scrolls · swipes apps    │
   └────────────────────────────────────────────┘
        │
        ▼
   local tracking history   what ran, and when

   iOS automation: Phase 4 roadmap — not implemented yet

01 · Intent

Natural-language prompt

You describe a workflow in plain English. An LLM interprets the goal and proposes concrete, editable steps — the authoring surface for every agent.

02 · Plan

Agent + scheduler

Ukkin turns the steps into an agent extending RepetitiveTaskAgent, with device-aware conditions: time, Wi-Fi, charging state, or target-app availability.

03 · Perception

Accessibility Service

At run time the agent reads the Android accessibility tree to see what is on screen — the same information a screen reader uses — and locates the elements it needs.

04 · Action

Tap / type / scroll

The agent drives installed apps by dispatching accessibility actions: tapping, typing, scrolling, and swiping, exactly as a person would.

05 · Record

Local tracking history

Runs and results are stored locally on the device so you can see what each agent did and when, without a cloud dashboard.

Why the Accessibility Service?

Most phone automation is limited to apps that expose an official automation API. By working at the Android Accessibility layer, Ukkin reaches any installed app the accessibility tree can see — the same interface that screen readers use. That is why an agent can drive apps that were never designed to be automated. It also means you must explicitly enable the Accessibility Service in Settings before agents can act; nothing runs without that grant.

Why local-first?

Tracking history lives on the device and there is no required vendor account. An on-device LLM for natural-language understanding is on the Phase 2 roadmap. We try not to overclaim: some builds may still call a cloud LLM for parts of the agent-builder flow, so verify your specific setup if strict no-cloud operation matters to you.

See the full feature list, the use cases, or the setup guides.