Repository navigation
Feature Request: A2A Mesh on Mobile (iOS and Android) #91
Description
Activity
Thanks for the feedback! Mobile support is on the roadmap.
Current State: Desktop/Windows only. No mobile support.
Planned for v2.0:
- Mobile SDK - iOS and Android
- Background operation - agents run in background
- Battery optimization - minimal battery drain
- Push notifications - alert when tasks arrive
- Offline mode - queue messages when offline
- Mobile-specific features - camera, GPS, sensors
Priority: We're prioritizing desktop first. Mobile is v2.0. The A2A Mesh protocol is being designed with mobile in mind, so the SDK will be portable.
Battery Optimization: We're studying how to minimize battery drain. The heartbeat can be throttled, and messages can be batched.
Would love to hear if mobile is important to you!
Thanks for filing this — the questions at the bottom are the right ones, and they're worth an honest answer rather than a roadmap. Checked against
maintoday (HEAD06ff4c5690), so what's below is what actually exists, not what's planned.Honest status: there is no mobile SDK today. The A2A layer is Python and desktop-oriented, and nothing in the tree ships for iOS/Android. But the protocol was deliberately kept transport-agnostic, which changes the answer to "how do we do mobile?" in a useful way.
The recommendation: don't port the agent to the phone — let the phone be a thin A2A peer.
The heavy cognition (the 2B brain, skills, vectors) stays on the desktop/relay; the phone joins the mesh as a small client. Concretely, three pieces already in the tree make this feasible with no server change:
- Wire format is signed JSON, not a custom RPC.
core.py::Envelopeis canonical JSON (sort_keys=True, compact separators) with an Ed25519 signature over the body and a 5-minute replay window. Any mobile crypto stack (iOS CryptoKit, Androidjava.security) can sign/verify it. - Transport is plain stdlib HTTP.
transport.pyimplements exactly two endpoints —GET /card(identity/capabilities) andPOST /message(receive + verify a signed Envelope). No WebSocket handshake, no extra runtime dep — so a Kotlin/Swift HTTP client speaks the mesh as-is. - Discovery needs no GitHub token.
beacon.py::NodeBeaconpublishes a small signed beacon (fingerprint + pubkey + optional endpoint + caps) over an optional MQTT rendezvous, lazily imported. That's the battery-friendly discovery path: one ~hundreds-of-bytes ping per interval.
Answering your three questions directly:
- Background operation? On mobile, no — iOS/Android aggressively kill background execution, and running the full agent there would fight the OS. Keep the agent on the desktop; the phone runs a client that receives tasks and surfaces results. Deliberate: the phone is a node, not a compute node.
- Battery? One signed beacon per interval (adjustable) + push/poll for task arrivals. Discovery is O(one small ping), not a persistent socket. The MQTT broker does the fan-out so the phone isn't holding connections open.
- Offline mode? Outbound envelopes are just JSON — queue them and flush on reconnect. One caveat that falls out of the replay window: queued messages need fresh timestamps on flush, not the timestamp from when they were queued, or the 5-min window rejects them.
Trust still gates execution. Per
trust.py, an inbound message only runs if the peer istrust added andgranted a capability — so a mobile client can be added as a discoverable-but-not-executable peer until the operator opts in. Good default for a device you carry around.Smallest real first step: a minimal Kotlin/Swift client that does
POST /message+ Ed25519 verify+sign against the node's/card. That's the whole protocol surface for a first cut and it needs zero backend changes. Architecture overview:docs/asi-core.md; the security/trust model is scoped indocs/engineering/a2a-guardian-pipeline.md.If there's appetite, I'm happy to write a short
docs/a2a-mobile-client.mdspec (the 2-endpoint contract + the fresh-timestamp-on-flush rule) so the first mobile implementer has a target to build against.- Wire format is signed JSON, not a custom RPC.
Feature Request: A2A Mesh on Mobile
The A2A Mesh should work on mobile devices so agents can communicate everywhere.
Current State
What We Need
Questions
Feature request. Be kind, be specific, be constructive.