Open Source · MIT Licensed

Control Android
with your AI

Aster bridges your Android device to AI assistants like Claude, OpenClaw, or MoltBot through the Model Context Protocol. Automate UI, manage files, search photos, and more — all with natural language.

Aster · Live
you

Find duplicate photos on my phone and free up space

search_media → index_media_metadata → scanning 2,104 photos...
Claude

Found 47 duplicate sets taking up 1.2 GB. Want me to keep the best quality version of each and delete the rest?

Capabilities

Everything you need to control Android

40+ tools spanning screen control, file management, media intelligence, and device automation.

Screen Control

Capture screenshots, read the UI tree, tap, swipe, type, and navigate — all through natural language.

File Management

List, read, write, delete files. Analyze storage, find large files, and manage your device filesystem.

Media Intelligence

Search photos with natural language — "trip to Mumbai last month" or "sunset photos near the beach".

Notifications & SMS

Read system notifications in real-time, access SMS conversations and threads.

Shell Execution

Run shell commands within the app sandbox. Launch intents, manage packages, and automate workflows.

Audio & Haptics

Text-to-speech, audio playback, custom vibration patterns, toast messages, and overlay displays.

Location & Battery

GPS coordinates, geocoding, battery health and charge level — all accessible to your AI assistant.

Calls & Overlays

Initiate phone calls, display web overlays on device, and post custom notifications with action buttons.

Real-World Use Cases

Things you'll actually say

Forget technical jargon. Just talk to your AI like a human — Aster handles the rest.

Photos & Media

"Find all duplicate photos on my phone and show me which ones to delete"

Scanning media library... Found 47 duplicate sets across 2,104 photos. I can show you side-by-side comparisons.

search_mediaindex_media_metadata

"Show me photos I took in Goa last December"

Found 83 photos from Dec 2024 geotagged near Goa. Includes 12 beach shots and 6 sunset panoramas.

search_media

"Find screenshots I took this week and delete the blurry ones"

Found 23 screenshots from this week. 5 appear blurry or unreadable — ready to delete on your say.

search_mediadelete_file
Reminders & Alerts

"Ring my phone at 10 AM tomorrow for the standup meeting"

Done! I'll play a ringtone and show a notification at 10:00 AM — "Standup Meeting".

play_audiopost_notification

"Vibrate my phone three times — I can't find it under the couch"

Vibrating now with a strong 3-pulse pattern. Keep listening!

vibrate

"Read my unread notifications and tell me if anything is urgent"

14 notifications: 2 from Slack (marked urgent), 1 missed call from Mom, rest are promotions.

read_notifications
Files & Cleanup

"Copy the meeting-notes.pdf from my phone to my Mac"

Found meeting-notes.pdf in Downloads (2.3 MB). Reading file and ready to transfer.

list_filesread_file

"My phone is running low on storage — find what's eating up space"

Storage breakdown: WhatsApp media 8.2 GB, cached data 3.1 GB, old APKs 1.4 GB. Want me to clean up?

analyze_storagefind_large_files

"Delete all downloaded PDFs older than 6 months"

Found 34 PDFs older than 6 months in Downloads (890 MB total). Shall I delete them all?

list_filesdelete_file
Communication

"Call Mom and put it on speaker"

Calling "Mom" now...

make_call

"Read my last SMS from the delivery guy"

"Your package will arrive between 2-4 PM today. Please keep your phone handy."

read_sms

"Show "Do Not Disturb — In a Meeting" on my phone screen"

Displaying overlay on your device. It'll stay visible until you dismiss it.

show_overlay
Daily Automations

"Take a screenshot of my screen and tell me what app is open"

You have YouTube open, playing "Lo-fi Beats to Study To". Battery at 62%, Wi-Fi connected.

take_screenshotget_screen_hierarchy

"What's my battery at? Should I charge before heading out?"

34% with about 2 hours left. You should charge before leaving — it won't last a full evening.

get_battery

"Open Google Maps and search for the nearest coffee shop"

Launching Google Maps... Searching "coffee shop near me".

launch_intentinput_textclick_by_text
See It In Action

Like texting a super-powered assistant

Watch a real conversation unfold. Every message triggers actual tools on your Android device.

9:41
ClawdBot
via WhatsApp
Message
Security & Privacy

Your data never leaves your network

Aster is fully self-hosted. No cloud, no telemetry, no third-party relay. Everything runs on your machine.

Self-Hosted

Runs entirely on your machine. No cloud dependency, no data leaves your network.

Zero Telemetry

No analytics, no tracking, no usage data collection. What you do stays with you.

Device Approval

Every new device must be manually approved from your dashboard before connecting.

Private & Tailscale Ready

The MCP server runs on your machine. For remote access, Aster auto-detects Tailscale and routes traffic over an encrypted WireGuard mesh — zero config, no port forwarding.

Your PC
WireGuard
Android
Self-hosted — MCP server runs locally, nothing sent externally
Auto-detect — Tailscale encryption with zero configuration
No port forwarding — VPN mesh, no public exposure

No Root Required

Uses the official Android Accessibility Service API — the same system powering screen readers. No rooting, no ADB hacks, no exploits. Every action is permission-gated and sandboxed.

Android Accessibility APIofficial
Permission-gated accessrequired
Sandboxed executionisolated
Foreground service — always-visible notification for transparency
Explicit consent — every capability requires user permission
Open source — fully auditable MIT-licensed codebase
100% Open Source

MIT licensed. Read every line, audit every tool, fork and modify freely.

View Source
Command Trace

Watch a command propagate

From natural language to hardware execution — trace the full path of an Aster command in real time.

aster · trace
live
>

"Take a screenshot of my phone"

AI Assistant

MCP Client

Aster Server

Node.js · WS Bridge

Android Device

Kotlin · Accessibility
01 aitool_call take_screenshot()
02 srvws:// CAPTURE_SCREEN → encode PNG
03 devexec AccessibilityService.takeScreenshot() → base64
Screenshot captured (1080x2400, 842KB) — returned as base64 for visual analysis.
~320ms
MCP over HTTP WebSocket Accessibility API MediaStore SQLite
Getting Started

Up and running in minutes

Four steps to connect your Android device to your AI assistant.

1

Install & start the MCP server

Install the aster-mcp package from npm globally and start the server. It launches a WebSocket on port 5987 and an MCP HTTP endpoint on port 5988.

terminal
$ npm install -g aster-mcp
$ aster start

# Server running:
#   WebSocket  → ws://192.168.1.x:5987
#   MCP HTTP   → http://localhost:5988/mcp
#   Dashboard  → http://localhost:5989
2

Install the Android companion app

Download the latest APK from GitHub Releases or build from source. Grant Accessibility Service permission when prompted.

permissions
# Required permissions:
 Accessibility Service  — UI automation
 Notification Access   — read notifications
 Location              — GPS & geocoding
 Storage               — file management
 SMS & Phone           — messages & calls
3

Connect device to server

Open the Aster app, enter your server's WebSocket URL, and tap Connect. Approve the device from the web dashboard.

4

Configure your AI client

Add the Aster MCP endpoint to Claude Desktop, Claude Code, or any MCP-compatible client.

.mcp.json
{
  "mcpServers": {
    "aster": {
      "type": "http",
      "url": "http://localhost:5988/mcp"
    }
  }
}
Integrations

Works with your favorite AI clients

Aster is compatible with any MCP client. First-class support for Claude, OpenClaw, MoltBot, and ClawBot.

Claude

Claude Desktop & Claude Code via MCP

OpenClaw

Install as a ClawHub skill

MoltBot

Add via ClawHub or direct skill link

ClawBot

Compatible via MCP or ClawHub skill

Install via ClawHub

Available as a skill on ClawHub for OpenClaw, MoltBot, and ClawBot.

$ clawhub install satyajiit/aster

Install via direct link

Install the skill directly from the GitHub repository raw link for any compatible client.

# Raw skill link:
https://raw.githubusercontent.com/satyajiit/Aster/main/skill/SKILL.md
Also available on npm:npm install -g aster-mcp
MCP Tools

40+ tools at your AI's fingertips

Every tool is exposed via the Model Context Protocol — compatible with Claude, OpenClaw, and any MCP client.

Screen & Input

take_screenshotget_screen_hierarchyfind_elementinput_gestureinput_textclick_by_textclick_by_idscroll

Navigation & System

global_actionlaunch_intentlist_packagesexecute_shellget_device_info

Files & Storage

list_filesread_filewrite_filedelete_fileanalyze_storagefind_large_files

Media & Search

search_mediaindex_media_metadata

Communication

read_notificationsread_smspost_notificationmake_callshow_toast

Device Sensors

get_batteryget_locationget_clipboardset_clipboardspeak_ttsplay_audiovibrateshow_overlay

Follow the Author

Aster is built by Satyajit Pradhan. Follow @GamesPatch on YouTube for tutorials, demos, and updates.

Subscribe to @GamesPatch