Your phone. One conversation.
Run the Aster agent on your Android. Send a message through Telegram, and let it work through your apps for you.
The app (dev.aster.probe) runs the full Aster agent on the phone. An accessibility service lets it read the screen, tap, swipe and type. You send instructions through Telegram and receive replies and screenshots.
build-agent.sh cross-compiles aster-cli for aarch64-linux-android and packages it as libaster.so. It uses the same tools, skills, prompts and review path as the terminal version.
Status: used as a daily driver, still experimental. Builds require an Aster checkout, support only arm64-v8a, and require broad device permissions.
The agent reads the screen, taps, swipes, and types. Just say what you want to do:
Open settings and turn on Do Not Disturb.Save a fact with /remember, teach it a routine with /learn, and browse the collection with /skills. Installed skills show up as /commands too.
/remember I prefer a quiet phone after 10 pm
Saved to memory. Prefers a quiet phone after 10 pm.
/learn
New skill: quiet-mode
Opens Settings, turns on Do Not Disturb, and lowers ring volume.The agent schedules its own wake-ups, ends the turn, and returns when the timer fires. Rider checks, chunked recordings, anything that needs a later look. Manage them from Telegram with /checkins and /cron.
Use /mirror to open your phone's live screen in a browser, over your LAN or Tailscale. Tap, type, and control it yourself.
Connect a cloud provider or a local model server, and change the model and reasoning effort from chat. 40 providers with key pages in docs/PROVIDERS.md; Groq has a free tier, a local server needs no key.
- Pick up a conversation: list past sessions, resume your work, or start fresh
- Stop or try again: cancel a running turn, retry the last message, see the queue
- See what happened: agent status, tool activity, and transcripts in the app
- Choose who can ask: set Allowed ids to your Telegram user id; the bot ignores everyone else
After a run it scores its own rounds, keeps the shortest path, and saves it as a skill. The next time is faster. The History screen keeps the receipts: sessions, turns, tool calls, tokens.
Four steps, no compiler.
- Install the latest APK from Releases and open it. Grant what it asks for: accessibility, notification access, Do Not Disturb.
- Create a Telegram bot with @BotFather and copy the token.
- In the app's settings: paste the token, pick the provider, paste its key. Save. (Providers has the full list and key pages; Groq has a free tier, a local server needs no key.)
- Press start, wait for Connected to Telegram, send
helloto your bot. It replies with your numeric user id. Paste that id into Allowed ids, save, then send a real instruction:
Open settings and turn on Do Not Disturb.| doc | what is in it |
|---|---|
| SETUP | Telegram bot setup in detail, pushed .env, configuration variables, troubleshooting |
| PROVIDERS | all 40 providers with key pages and env variables |
| USING | chat commands, the control protocol, action receipts, the screen mirror |
| ARCHITECTURE | how it works, with a diagram |
| LICENSE | Apache-2.0 |
| BUILDING | build from source, releases, CI, permissions, repository layout |
A foreground service runs aster remote telegram as a child process. The agent calls asterctl, which talks to AsterA11yService over an abstract Unix socket; the service reads accessibility trees, dispatches gestures and captures screenshots. Full detail in docs/ARCHITECTURE.md.





