Skip to content

Release tracks: Google Play vs Sideload

Hermes-Relay ships in two flavors built from the same codebase. Most users want the Google Play one. Power users who want the agent to drive their phone hands-free want the sideload one. This page explains what's different, why, and how to choose.

TL;DR

  • Google Play — easy install, automatic updates, every chat and voice feature, plus the agent can read your phone (notifications, what's on screen). The bridge is read-only — it cannot tap, type, swipe, send SMS, make calls, or control other apps on your behalf. The toggle is labeled "Bridge Mode."
  • Sideload — manual install from GitHub Releases, all of the above plus the agent can control your phone — voice-routed bridge intents ("text Sam I'll be late", "open Chrome"), direct SMS/call dispatch, vision-driven navigation, the works. 18 android_* tools available. The toggle is labeled "Agent Control."
  • They coexist on a device — you can install both side-by-side and try them both.

Why two tracks?

Hermes-Relay's bridge channel uses Android's Accessibility Service — a powerful API designed for screen readers and assistive tech that, by extension, lets one app see and control another. It's exactly the right tool for letting an AI assistant act on your behalf, but Google Play scrutinizes accessibility-service apps very carefully because the same API is also a popular vector for malware.

To stay inside Google Play's policy without giving up the cool features, the Hermes-Relay APK on Google Play is built from a smaller subset of the source. The accessibility service in that build can read what's on screen and read your notifications, but the part that synthesizes taps and swipes is not compiled into the APK at all. It's not "disabled with a flag" — the code is physically absent from the binary Google reviews and you install. That keeps the Play version honest about what it can do.

If you want the full feature set — including the parts where the agent actually performs actions on the phone for you — that's the sideload build, distributed straight from GitHub Releases as a signed APK.

What's in each track

Feature
Google PlayEasy install. Conservative scope.
SideloadManual install. Full feature set.
Comparison of features available in the Google Play and Sideload release tracks of Hermes-Relay.
FeatureGoogle PlaySideload
Chat & voice
Chat with your agent
Direct streaming chat over the Hermes API. No middleman.
IncludedIncluded
Voice mode (push-to-talk)
Hold a button, speak, the agent answers out loud.
IncludedIncluded
Sessions, personalities, slash commands
Full session browser, profile picker, searchable command palette.
IncludedIncluded
Bridge — read your phone
Read what is on your screen
Agent can see the active screen so it can answer "what does this say?"
IncludedIncluded
Notification triage
Agent reads incoming notifications and summarizes them for you.
IncludedIncluded
Calendar read
"What is on my schedule today?" — read-only access to your calendar.
IncludedIncluded
Bridge — control your phone
Tap, type, and swipe (with confirmation)
Agent can perform UI actions on your behalf.
On Google Play, the accessibility service is read-only by design — write actions silently no-op so the build stays inside Play’s policy envelope. Sideload ships the full gesture surface.
LimitedIncluded
Reply to messages from voice
"Text Sam I will be 10 min late" — fully hands-free.
Voice-routed bridge intents are sideload-only.
Not in this trackIncluded
Vision-driven navigation
Agent looks at the screen and figures out what to tap on its own.
Vision-driven UI navigation requires the unrestricted accessibility surface and is sideload-only.
Not in this trackIncluded
Workflow recording (future)
Show the agent something once, ask it to repeat the workflow later.
Not in this trackIncluded
Safety rails
App blocklist
Banking, password managers, and work email default-blocked from bridge actions.
IncludedIncluded
Confirmation on destructive verbs
"Send", "pay", "delete", "transfer" — always prompt before acting.
IncludedIncluded
Auto-disable + activity log
Bridge turns itself off when idle. Every action is logged with a thumbnail.
IncludedIncluded
Install & updates
One-tap install
Install from the Play Store with no special permissions.
Sideload requires enabling "Install unknown apps" for your browser the first time.
IncludedNot in this track
Automatic updates
Get new versions without thinking about it.
Sideload updates are a manual download from GitHub Releases.
IncludedLimited

Both tracks build from the same Kotlin source tree. Tier 3, 4, and 6 features are compiled out of the Google Play APK at build time via Gradle product flavors — they are not present in the binary, not just hidden behind a switch.

How to choose

  • Want the easiest install and automatic updates? → Google Play.
  • Want the agent to be a "second pair of hands" — read notifications and summarize them, check your calendar, answer questions about what's on screen? → Either track. Both can do this.
  • Want hands-free voice control of your phone — "text Sam I'll be 10 minutes late" without touching your screen? → Sideload.
  • Want the agent to look at your screen and figure out how to drive an unfamiliar app on your behalf? → Sideload.
  • Don't know yet? → Start with Google Play. You can install sideload later — they live side-by-side as separate apps.

Can I switch later?

Yes — and you don't even have to choose just one. The two builds use different application IDs (com.axiomlabs.hermesrelay for Google Play and com.axiomlabs.hermesrelay.sideload for sideload), which means Android treats them as two completely separate apps. Each gets its own launcher icon, its own settings, and its own paired-device entry on the relay.

If you want to migrate fully from one to the other, just uninstall the one you no longer use. Sessions, attachments, and pairings are stored per-app, so wiping the old one only affects that one.

How to install each

Google Play

One tap from the Play Store listing. Updates arrive automatically.

Open the Play Store listing →

Sideload

Download the file ending in -sideload-release.apk from the latest GitHub Release (for example, hermes-relay-0.4.0-sideload-release.apk), allow installs from your browser, and tap the file. Full step-by-step instructions (including how to verify the APK signature) live in Installation & Setup → Sideload APK.

Latest GitHub Release →

Updates

  • Google Play updates automatically through the Play Store — you'll get new versions in the background like any other Play app.
  • Sideload updates require re-downloading the APK from GitHub Releases. You can subscribe to new releases on GitHub by clicking Watch → Custom → Releases on the repo so you get an email when a new version ships.

In both cases, the server-side plugin is updated independently with git pull && bash install.sh on whatever machine runs your Hermes agent — see the installation guide for that flow.

Safety rails

The safety rail system is designed for the sideload track where the agent can control the phone. On the Google Play track, action routes are blocked at the code level (not "disabled by a flag" — the routes return 403 and the safety settings UI is hidden entirely), so the safety rails don't fire because there's nothing to gate.

On the sideload track, the full safety rail stack runs:

  • Per-app blocklist — banking apps, password managers, and your work email are blocked from any bridge action by default. You can add or remove entries from Settings.
  • Confirmation on destructive verbs — words like send, pay, delete, transfer, post, publish, and buy trigger a system-overlay confirmation prompt before the agent acts. This fires on /tap_text, /type, AND on /tap + /long_press when the tapped button's text contains a destructive verb (so tapping a "Send" button by node ID is also gated).
  • Auto-disable — bridge mode turns itself off after a configurable idle period.
  • Activity log — every command the agent runs is logged with a timestamp and the result.
  • Persistent notification — when bridge is on, you always have a system-tray notification with a one-tap kill switch.
  • Denial is final — if you tap Deny on the confirmation prompt, the agent receives a structured error_code: user_denied response with an explicit "do not retry via UI automation" instruction. The agent cannot work around a denial by driving the Messages app UI instead.

On the Google Play track, none of the above fires because the bridge is read-only. The Bridge tab shows only "Bridge Mode" (screen reading), accessibility + notification listener permissions, and the activity log.