ARIA 218c50d688 M1+M2: gateway core loop + agent transparency
M1 (gateway core loop / text round-trip):
- WS server (ws_server.py): bind, hello auth (constant-time), hello.ack, heartbeat, connection registry
- pairing.py: token generation, pairing store, QR payload
- adapter.py: send() -> message frame; inbound message.send -> MessageEvent -> handle_message
- app: Connect screen, GatewayClient (connect + reconnect), ChatScreen send/render, SecureStore (Android/Desktop)
- tests/ws_probe.py: probe harness driving a real turn

M2 (streaming + reasoning + tools + commentary):
- protocol.py: M2 frame types (message.start/update/stop, tool.start/progress/end, commentary)
- adapter.py: per-chat turn-state machine; classify outbound into frames; _split_reasoning; tool-line parsing
- reasoning in streaming: capture via on_stream_delta hook (kind=reasoning, gated by plugins.stream_reasoning_deltas) with a FIFO barrier, attach to message.stop
- app: live streaming bubble, ReasoningBlock (collapse + copy), ToolCard (Everything/Truncated/Nothing), dimmed commentary, typing
- docs/14-milestones.md: M1/M2 marked done; reasoning note corrected
2026-08-19 13:56:19 +02:00

Iris × Hermes

A native Android + Desktop experience for hermes-agent, connected through a gateway platform plugin.

⚠️ HARD RULES

  1. hermes-agent/ is a read-only research reference. It is git-ignored and must NEVER be committed, pushed, or shipped. We only install our plugin into a live hermes home (~/.hermes/plugins/android); we never modify hermes core.
  2. ADB is installed and a device is connected (a5ca2a4b, Xiaomi MIX 2S, Android 10 / API 29). Use it to install/launch/debug the app on-device.

Start here

📚 The full implementation reference library is in docs/. Read docs/00-overview.md first, then follow the numbered docs.

The three deliverables (this monorepo)

Path What
gateway-plugin/ Python hermes platform plugin (android). Runs in the hermes gateway process; opens a WebSocket server the apps connect to. Zero new Python deps, zero hermes-core changes.
app/androidApp Native Kotlin + Jetpack Compose client.
app/desktopApp Kotlin + Compose Multiplatform client — the Android app, tweaked for a big screen (shares app/shared).

The Android and Desktop clients live in one Compose Multiplatform Gradle project (app/) with a shared KMP module (app/shared).

Status

Quick orientation

S
Description
Iris × Hermes — native Android + Desktop client for hermes-agent via a gateway platform plugin. Compose Multiplatform app (Kotlin) + Python WebSocket gateway adapter. See docs/ for the full reference library.
Readme Apache-2.0
7.8 MiB
0 Stars 1 Watchers 0 Forks
Latest
2026-08-31 21:44:41 +00:00
Languages
Kotlin 52.2%
Python 47.4%
Shell 0.4%