Close
0%
0%

Aiden - AI Agent Hardware for Mobile Phones

An open-source AI agent that sees and controls phones through voice, web, GPIO, and standardized device inputs.

Similar projects worth following
Aiden is an open-source, device-side AI agent that sees and controls real phones and physical devices. Unlike software-only agents limited to chat, browsers, or cloud APIs, Aiden connects AI reasoning to hardware, firmware, screen capture, and real input. It follows a visual observe-reason-act loop: inspect the screen, understand the interface, perform a tap, swipe, drag, shortcut, or text input, then verify the result before continuing. Voice, web, and GPIO can trigger the same workflows. Android ADB, HID, and compatible HTTP bridges share one task-level action layer, making device transport replaceable. Its full-duplex runtime keeps voice interaction responsive while a backend agent handles longer tasks, user handoff, cancellation, and recovery. Screen and notification memory preserves useful context through extraction, deduplication, validation, and cleanup.Developers can also run the service layer in a Docker Compose sandbox before connecting compatible hardware.

Built for the Device Boundary

Most software agents operate inside a browser, a desktop session, or a cloud API. They are effective when the environment exposes a stable DOM, accessibility tree, command interface, or application API. Aiden is designed for a different class of problem: tasks where the important state exists on a real phone or physical device, and the agent must interact with what is actually displayed.

Aiden treats the device boundary as a first-class part of the agent runtime. The target phone, screen-capture path, firmware services, input provider, and task state are connected as one workflow. This makes the agent responsible for more than producing an instruction. It must observe the device, choose an action, execute it through the available transport, and determine whether the device reached the expected state.

Beyond Browser and PC Agents

A browser agent usually works through page structure and browser APIs. A PC agent often depends on a particular desktop session, fixed keyboard and mouse mappings, or application-specific integrations. These approaches can become fragile when a mobile interface changes, when an application does not expose enough structured information, or when the task must continue outside the original computer session.

Aiden is built around visual device state instead. It can reason from the screen that a person would see, including interfaces where the useful state is not available as a convenient API. After an input action, the agent can request another screen state and use the result to decide whether to continue, retry, wait, or ask for help.

The input path is also replaceable. Android ADB, HID, and compatible HTTP environment bridges can provide the underlying device control while the agent keeps the same task-level action model. A tap, gesture, keyboard shortcut, or text entry does not need to be rewritten for every transport. The provider handles the device-specific details, such as connection status, coordinate range, input format, and supported capabilities.

This is different from a fixed macro or remote-control script. A macro assumes that the screen is still where it was before the previous action. Aiden can re-observe the screen after an action and adapt to the state it actually finds.

Runtime Support for Long Tasks

A multi-step device workflow has timing problems that a single chat request does not solve. A screen may take time to update. A tool may return late. A user may need to approve an action or take over the phone. A voice conversation should remain responsive even while a longer operation is running.

Aiden separates the foreground interaction layer from the backend task executor. The foreground agent can listen, speak, receive an interruption, and communicate task updates while the backend handles a longer visual workflow. Tasks have an explicit lifecycle and can be queried, cancelled, paused for a required user action, and resumed with their execution identity and device context.

This separation also makes device ownership clearer. A task that controls one screen and one input path should not silently compete with another task for the same device. The runtime can keep execution serial and observable while still allowing the conversation layer to remain available.

Memory Connected to Real Work

Aiden's memory is intended to support device workflows, not simply store an ever-growing chat transcript. Screen and notification data can be extracted, deduplicated, validated, given a source and confidence, and cleaned up when it expires. Crash-safe and idempotent writes reduce the risk of creating partial or duplicate records when a request is retried.

Supported hardware can also provide a physical quick-capture path. A GPIO trigger can save the current screen as a searchable snapshot, allowing an important message, reminder, or device state to be recalled later. The saved content remains associated with where it came from and how confident the system is in the...

Read more »

Aiden_Business_Travel_Airport_Demo.mp4

MPEG-4 Video - 31.63 MB - 09/03/2026 at 07:19

Download

Aiden_Concept_Demo.mov

quicktime - 7.00 MB - 09/03/2026 at 07:19

Download

  • 1 × Luckfox Pico Zero (RV1106) Main controller board running Aiden firmware; provides CSI, USB HID, and networking.
  • 1 × Firefly HDMI to MIPI CSI (RK628D) Four-lane HDMI-to-CSI video capture board for the target device screen.
  • 1 × HDMI ESD Protector Protects the HDMI video-input path.
  • 1 × USB-to-TTL Module Optional serial-console debugging when the Pico Zero USB port is in use.
  • 1 × ASRPro 2.0 Development Board Voice recognition module.

View all 11 components

  • Aiden Firmware Weekly Update: Recovery, Device Control, and Developer Workflows

    Dan Peng3 hours ago 0 comments

     August 27-September 2, 2026

    This week's Aiden Firmware work focused on making real-device Agent workflows easier to recover, verify, and develop across different environments. Thirty-eight pull requests and commits reached main, touching context management, notification memory, touch interaction, desktop bridges, browser tooling, skills, build workflows, storage, and Bluetooth discovery. 

    Context pruning and session lineage

    Long-running Agent tasks now have clearer rules for managing large histories and oversized tool results. The work in PR #609, PR #618, PR #608, PR #607, PR #622, PR #621, and PR #592 lets the runtime prune stale state and large tool output according to an input budget before context compression. When a Provider or context limit requires a shorter conversation, the runtime can rotate into a child session while preserving parent-child lineage and session events.

    The configurable context_prune_threshold is now expressed as a migratable input-budget ratio, and .current_session uses synchronized atomic replacement. This gives developers a more traceable recovery path when a task continues after a restart or a context boundary. PR #609 also included cross-build and deployment validation on Luckfox.

    Notification memory and cleanup

    Notification handling now distinguishes public information from user-specific facts. The changes in PR #605, PR #613, PR #614, and PR #594 add separate handling for temporary and long-lived notification memory, with seven-day and 90-day retention rules. News and media updates can be treated as public information, while items such as bills, deliveries, appointments, and device alerts can be retained as user-relevant memory.

    The Web UI also exposes explicit cleanup actions for clearing a session or clearing both a session and its memory. Cancellation tombstones are reclaimed when work ends, results are cleaned up, or the device shuts down, preventing abandoned request state from growing indefinitely. PR #605 included board validation for notification classification and cursor advancement.

    Touch gestures with visual verification

    The work in PR #595, PR #602, PR #588, PR #598, PR #600, and PR #596 brings swipe, drag, and atomic touch actions under a common touch_gesture contract. Gestures can express direction or start and end points, speed, duration, and contact retention.

    Drag operations can be split into drag_start, screen confirmation, and drag_release. Tap-like actions can return a screenshot with coordinate markers, while the runtime checks for screen changes before adding the marker. Text status and image attachments are separated so the model does not need to process duplicated Base64 content. The combined Go and Python validation reported 86 passing checks for PR #595; final behavior still depends on the device type and input path in use.

    Cross-platform bridges and browser tooling

    Desktop environment support expanded across macOS, Linux, and Windows in PR #593, PR #615, and PR #611. The bridge provides screenshots, mouse and keyboard input, scrolling, dragging, text entry, and an HTTP health endpoint. The Agent runner can identify the environment before a benchmark begins instead of failing later because a required health check is missing.

    For browser-based device administration, PR #604 replaces Wetty with ttyd 1.7.3, unifies the /webtty/ route, and improves mobile font sizing and scrollback. Config Web and Agent Web now share the same terminal links, reverse-proxy behavior, and health checks.

    Remote skills and developer workflows

    PR #586 adds remote Skill installation from HTTP(S) links and GitHub tree or blob URLs. A Skill is downloaded to a staging area, validated, and published atomically, with concise change and integrity information returned to the Agent. PR #624 adds an English self-knowledge Skill that documents hardware ownership, runtime routing, Phone Bridge behavior, configuration, and recovery boundaries.

    Build and test workflows...

    Read more »

View project log

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates