Talaria (Hermes' winged sandals) is a privacy-respecting native Android client for self-hosted Hermes Agent by Nous Research.
It adapts the remote-capable parts of Hermes Desktop and the Web Dashboard (default http://127.0.0.1:9119) to mobile: chat, status, config, keys, sessions, cron, skills, MCP, channels, pairing, and more, with notifications, voice dictation, offline cache, and home-screen widgets.
| Area | What you get |
|---|---|
| Connections | Multiple saved servers, password-cookie / session-token / bearer / native OIDC PKCE auth, optional TLS pinning |
| Chat | Live /api/pty bridge plus /api/ws and /api/events, clean reading mode, terminal mode, session resume, image attachments |
| Notifications | Thread-aware permission and completion alerts named for the selected agent, exact-thread deep links, background turn monitoring, plus cron/gateway/pairing/error channels |
| Voice | Server STT primary (/api/audio/transcribe), on-device SpeechRecognizer fallback, continuous dictation + partials, TTS of replies |
| Manage | Status, Sessions, Config, API Keys, Cron, Skills Hub, MCP catalog/OAuth, Channels, Pairing, Webhooks, Profiles, Files, Artifacts, Learning, Logs, Analytics, System |
| Car | Android Auto projected app + AAOS templated car app: agent list, voice replies, one-tap quick starts, driving-safe agent creation |
| Privacy | Zero telemetry by default, Keystore-backed secrets, local Room cache, no forced accounts |
| Polish | Edge-to-edge Compose UI, adaptive phone/foldable layouts, share-to-chat, deep links (talaria://…), Glance widgets, Quick Settings tile, picture-in-picture chat |
- JDK 17 or 21 (Temurin recommended)
- Android SDK platform 37 + build-tools 36.0.0
- A reachable Hermes dashboard (
hermes dashboard, often via Tailscale/SSH tunnel)
export JAVA_HOME=/path/to/jdk-21 # if needed
./gradlew :app:assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apkOr use the helper that pins a local JDK path when present:
./gradlew.local :app:assembleDebug- Open Talaria → enter your dashboard URL (e.g.
http://100.x.y.z:9119). - Choose auth mode:
- SESSION_TOKEN — token printed/injected by the dashboard (loopback / token mode)
- BASIC — Hermes password-provider login; Talaria stores the resulting session cookie
- BEARER — a pre-issued bearer token
- OIDC_BROWSER — RFC 8252 loopback redirect with PKCE and refresh tokens
- Optional: management profile name (
?profile=), TLS pinsha256/… - Save & connect
app/src/main/java/com/hermesgadget/talaria/
core/ network, security, Room, notifications, voice
domain/ shared models
feature/ connection, chat, activity, manage/*, you
ui/ theme, navigation, components
widget/ Glance widget + QS tile
worker/ WorkManager sync, notification actions, boot receiver
- ARCHITECTURE.md — layers, auth, chat transport, notifications
- ROADMAP.md — verified coverage and remaining mobile-relevant work
- SETUP.md — SDK, signing, Hermes server tips
- PRIVACY.md — data handling & telemetry stance
- CONTRIBUTING.md — development workflow
- CHANGELOG.md — release notes
- docs/API.md — Hermes endpoint mapping & gaps
# Optional signing — create keystore.properties (see SETUP.md)
./gradlew :app:assembleRelease
./gradlew :app:assembleSignedRelease # same, with a clear log about signingWithout keystore.properties, release builds are unsigned (still useful for local sideload after apksigner / Play App Signing).
Apache License 2.0 — see LICENSE.
Hermes Agent is a separate project by Nous Research; Talaria is an independent mobile client that speaks its dashboard API.