aster
Skill1 starsChanged 12 days agoMITView on GitHub
Your AI CoPilot on Mobile — or give your AI its own phone. Make calls, send SMS, speak via TTS on speakerphone, automate UI, manage files, search media, and 40+ more tools via MCP. Open source, self-hosted, privacy-first.
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- iamsikun/astertheir own version, first seen Oct 25, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- iamsikun/aster★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository199 other files it gives its agents.
- activecampaignSkill
- adcp-advertisingSkill
- admapixSkill
- aegis-auditSkill
- afrexai-compliance-auditSkill
- afrexai-seo-content-engineSkill
- agent-browserSkill
- agentic-codingSkill
- agent-overflowSkill
- agent-skills-toolsSkill
- ai-ppt-generatorSkill
- airdrop-hunterSkill
- ai-web-automationSkill
- alicloud-ai-video-wan-r2vSkill
- alpha-finderSkill
- amap-trafficSkill
- amazon-product-apiSkill
- apertureSkill
- api-developmentSkill
- api-gatewaySkill
- auto-replySkill
- auto-updaterSkill
- aviation-weatherSkill
- awwwards-designSkill
- base-8004Skill
- bioskillsSkill
- brainrepoSkill
- browserless-agentSkill
- browser-secureSkill
- btc15-autonomous-marketSkill
- buy-anythingSkill
- byteroverSkill
- cal-com-automationSkill
- capability-evolverSkill
- catalogSkill
- chargebeeSkill
- clawcostSkill
- clawdbot-documentation-expertSkill
- clawdbot-for-vcsSkill
- clawddocsSkill
- claw-syncSkill
- claw-trader-liteSkill
- clean-codeSkill
- cloudphoneSkill
- cls-certifySkill
- codebergSkill
- code-mentorSkill
- commit-analyzerSkill
- competitor-analysis-reportSkill
- content-ideas-generatorSkill
- content-ideasSkill
- contract-generatorSkill
- conventional-commitsSkill
- copywritingSkill
- crypto-payments-ecommerceSkill
- custom-smtp-senderSkill
- dashboard-manager2Skill
- data-analystSkill
- docker-sandboxSkill
- elite-longterm-memorySkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 141
Every event follows a standardized structure with 4 fixed headers and [data-*] fields:
- Very specific: line 212
When you receive a message with [skill] aster, parse the [event] and [device_id] to determine what happened and which device to act on.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
迁移说明:本技能原为 OpenClaw / ClawHub 生态技能,现已转为 WorkBuddy 技能规范。正文如出现
openclaw/clawhub/claw命令或~/.openclaw路径,请忽略该命令形式,改用 WorkBuddy 等价操作:技能目录 =~/.workbuddy/skills/<name>/;装包用 pip / npm;联网用 WebSearch / WebFetch;读写文件用 Read / Write / Edit;执行命令用 Bash(Windows 走 PowerShell 工具)。
运行依赖:需要本机已安装命令
node;缺失时先安装 / 配置,再执行正文步骤。
Aster - Your AI CoPilot on Mobile
Your AI CoPilot for any Android device using MCP (Model Context Protocol) — or give your AI a dedicated phone and let it call, text, and act on its own. Fully open source and privacy-first — your data never leaves your network.
Website: aster.theappstack.in | GitHub: github.com/satyajiit/aster-mcp
For screenshots of the Android app and web dashboard, visit aster.theappstack.in.
Setup
- Install and start the server:
npm install -g aster-mcp
aster start- Install the Aster Android app on any Android device — your daily phone or a spare one for your AI — from Releases and connect to the server address shown in terminal.
- Configure MCP in your
.mcp.json:
{
"mcpServers": {
"aster": {
"type": "http",
"url": "http://localhost:5988/mcp"
}
}
}Security & Privacy
Aster is built with a security-first, privacy-first architecture:
- Self-Hosted — Runs entirely on your local machine. No cloud servers, no third-party relays. Your data stays on 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 the dashboard before it can connect or execute commands.
- Tailscale Integration — Optional encrypted mesh VPN via Tailscale with WireGuard. Enables secure remote access with automatic TLS (WSS) — no port forwarding required.
- No Root Required — Uses the official Android Accessibility Service API (same system powering screen readers). No rooting, no ADB hacks, no exploits. Every action is permission-gated and sandboxed.
- Foreground Transparency — Always-visible notification on your Android device when the service is running. No silent background access.
- Local Storage Only — All data (device info, logs) stored in a local SQLite database. Nothing is sent externally.
- 100% Open Source — MIT licensed, fully auditable codebase. Inspect every line of code on GitHub.
Available Tools
Device & Screen
aster_list_devices- List connected devicesaster_get_device_info- Get device details (battery, storage, specs)aster_take_screenshot- Capture screenshotsaster_get_screen_hierarchy- Get UI accessibility tree
Input & Interaction
aster_input_gesture- Tap, swipe, long pressaster_input_text- Type text into focused fieldaster_click_by_text- Click element by textaster_click_by_id- Click element by view IDaster_find_element- Find UI elementsaster_global_action- Back, Home, Recents, etc.
Apps & System
aster_launch_intent- Launch apps or intentsaster_list_packages- List installed appsaster_read_notifications- Read notificationsaster_read_sms- Read SMS messagesaster_send_sms- Send an SMS text message to a phone numberaster_get_location- Get GPS locationaster_execute_shell- Run shell commands in Android app sandbox (no root, restricted to app data directory and user-accessible storage, 30s timeout, 1MB output limit)
Files & Storage
aster_list_files- List directory contentsaster_read_file- Read file contentaster_write_file- Write to fileaster_delete_file- Delete fileaster_analyze_storage- Storage analysisaster_find_large_files- Find large filesaster_search_media- Search photos/videos with natural language
Device Features
aster_get_battery- Battery infoaster_get_clipboard/aster_set_clipboard- Clipboard accessaster_show_toast- Show toast messageaster_speak_tts- Text-to-speechaster_vibrate- Vibrate deviceaster_play_audio- Play audioaster_post_notification- Post notificationaster_make_call- Initiate phone callaster_make_call_with_voice- Make a call, enable speakerphone, and speak AI text via TTS after pickupaster_show_overlay- Show web overlay on device
Media Intelligence
aster_index_media_metadata- Extract photo/video EXIF metadataaster_search_media- Search photos/videos with natural language queries
Proactive Event Forwarding (OpenClaw Callbacks)
Aster can push real-time events from the phone to your AI agent via webhook. When enabled, these events arrive as HTTP POST payloads — your agent doesn't need to poll, the phone tells you what's happening.
Configure via the dashboard at /settings/openclaw or CLI: aster set-openclaw-callbacks.
Webhook Format
Events are sent as HTTP POST to the configured OpenClaw endpoint (/hooks/agent by default). The AI reads the message field. All event context is packed into message using standardized [key] value tags.
Example raw HTTP POST payload for a notification event:
{
"message": "[skill] aster\n[event] notification\n[device_id] 6241e40fb71c0cf7\n[model] samsung SM-S938B, Android 16\n[data-app] messaging\n[data-package] com.google.android.apps.messaging\n[data-title] John\n[data-text] Hey, are you free tonight?",
"wakeMode": "now",
"deliver": true,
"channel": "whatsapp",
"to": "+1234567890"
}message— structured event text with standard headers (this is what the AI reads)wakeMode— always"now"(wake the agent immediately)deliver— alwaystruefor real events,falsefor test pingschannel/to— delivery channel and recipient, configured in the dashboard
Event Format
Every event follows a standardized structure with 4 fixed headers and [data-*] fields:
[skill] aster
[event] <event_name>
[device_id] <device_uuid>
[model] <manufacturer model, Android version>
[data-key] value
[data-key] value[skill]— alwaysaster[event]— event name:sms,notification,device_online,device_offline,pairing[device_id]— UUID of the device (use this to target the device with Aster tools)[model]— device manufacturer, model, and OS[data-*]— event-specific fields, each prefixed withdata-(e.g.[data-app],[data-sender])
Event Types
sms — Incoming SMS
[skill] aster
[event] sms
[device_id] a1b2c3d4-5678-90ab
[model] samsung SM-S938B, Android 15
[data-sender] +1234567890
[data-body] Hey are you free tonight?notification — App notification (deduplicated against SMS)
[skill] aster
[event] notification
[device_id] a1b2c3d4-5678-90ab
[model] samsung SM-S938B, Android 15
[data-app] whatsapp
[data-package] com.whatsapp
[data-title] John
[data-text] Meeting moved to 3pmdevice_online — Approved device came online
[skill] aster
[event] device_online
[device_id] a1b2c3d4-5678-90ab
[model] samsung SM-S938B, Android 15
[data-status] connecteddevice_offline — Device went offline
[skill] aster
[event] device_offline
[device_id] a1b2c3d4-5678-90ab
[model] samsung SM-S938B, Android 15
[data-status] disconnectedpairing — New device needs approval (use [device_id] to approve)
[skill] aster
[event] pairing
[device_id] e5f6g7h8-9012-cdef
[model] Samsung SM-S924B, Android 15
[data-status] pending_approval
[data-action] approve this device from the Aster dashboard or via aster devices approveHow to React to Events
When you receive a message with [skill] aster, parse the [event] and [device_id] to determine what happened and which device to act on.
SMS — reply, extract info, or escalate:
[event] sms | [device_id] a1b2c3d4 | sender: +1234567890 | body: Running late, be there in 20
→ aster_send_sms (deviceId: a1b2c3d4) to +1234567890: "No worries, see you soon!"
[event] sms | [device_id] a1b2c3d4 | sender: +1800555 | body: Your OTP is 482913
→ Extract OTP "482913", use aster_input_text (deviceId: a1b2c3d4) to enter itNotifications — monitor and act on behalf of user:
[event] notification | [device_id] a1b2c3d4 | app: driver | text: Your driver is arriving
→ aster_speak_tts (deviceId: a1b2c3d4) "Your Uber is almost here"
[event] notification | [device_id] a1b2c3d4 | app: mShop | text: Your package was delivered
→ aster_send_sms (deviceId: a1b2c3d4) to user: "Your Amazon package just arrived"Device lifecycle — manage connectivity:
[event] device_offline | [device_id] a1b2c3d4
→ Pause pending automations for device a1b2c3d4
[event] device_online | [device_id] a1b2c3d4
→ Resume queued tasks, aster_read_notifications (deviceId: a1b2c3d4) to catch upPairing — approve or alert:
[event] pairing | [device_id] e5f6g7h8 | model: Samsung SM-S924B
→ If expected: approve device e5f6g7h8 via dashboard API
→ If unexpected: alert user "Unknown device SM-S924B trying to connect"Example Usage
Your CoPilot on Mobile:
"Open YouTube and search for cooking videos"
→ aster_launch_intent → aster_click_by_id → aster_input_text
"Find photos from my trip to Mumbai last month"
→ aster_search_media with query "photos from Mumbai last month"
"Take a screenshot and tell me what's on screen"
→ aster_take_screenshot → aster_get_screen_hierarchyAI's own phone — let it act for you:
"Call me and tell me my flight is delayed"
→ aster_make_call_with_voice with number, text "Your flight is delayed 45 min, new gate B12", waitSeconds 8
"Text me when my delivery arrives"
→ aster_read_notifications → aster_send_sms with number and message
"Reply to the delivery guy: Thanks, I'll be home"
→ aster_send_sms with number and messageCommands
aster start # Start the server
aster stop # Stop the server
aster status # Show server and device status
aster dashboard # Open web dashboard
aster devices list # List connected devices
aster devices approve # Approve a pending device
aster devices reject # Reject a device
aster devices remove # Remove a device
aster set-openclaw-callbacks # Configure event forwarding to OpenClawRequirements
- Node.js >= 20
- Any Android device with Aster app installed (your phone or a dedicated AI device)
- Device and server on same network (or use Tailscale for secure remote access)
Website: aster.theappstack.in | GitHub: github.com/satyajiit/aster-mcp
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

