Hermes Mobile Beta ist da: Was die iOS- und Android-Apps wirklich können (und wo es noch hakt)


Du übergibst Hermes die Rechercheaufgabe am Schreibtisch, greifst zum Handy und gehst Richtung Aufzug. Irgendwo zwischen dem zweiten und dritten Stock fällt es dir ein: du hast das viel zu weit gefasst. Nur Papers. Blogposts weglassen.

Vor einem Jahr hieß das entweder, den Gedanken mit sich herumzutragen, bis du wieder am Schreibtisch sitzt, oder Telegram herauszuholen und einen Absatz Kontext in ein Chatfenster zu tippen. Seit dieser Woche gibt es eine offizielle Antwort — eine Hermes-App für dein Telefon. Dieser Text ist keine weitere „die App ist endlich da“-Meldung. Er behandelt die drei Dinge, auf die es ankommt: was ausgeliefert wurde, ob du es heute installieren kannst und welche Teile davon halten, wenn du es tust.

Das Handy ist eine Fernbedienung. Der Agent bleibt, wo er ist.

Das ist das am meisten missverstandene Detail an Hermes Mobile, und die offizielle Ankündigung ist da eindeutig: Die App verbindet sich mit deinem eigenen Hermes gateway. Das Modell, die Tools, das Gedächtnis, die Projektdateien — alles bleibt auf der Maschine, auf der es ohnehin schon lief. Das Telefon übernimmt drei Aufgaben: reden, Fortschritt beobachten, auf Approval tippen.

  Handy-App (Chat / Voice / Approvals / Status)
        |  authentifizierte Verbindung (direkte Adresse, SSH-Tunnel oder Tailscale)
        v
  Dein gateway (hermes dashboard oder hermes serve, Standardport 9119)
        |
        v
  Modelle | Tools | Skills | Projektdateien | cron

Wenn diese Trennung einmal klar ist, ergibt das meiste Verhalten der Beta Sinn. Ein Testerbericht vom 31. Oktober bringt es auf den Punkt: Nach etwa 55 Minuten fror die Android-App ein und starb dann, während derselbe Turn auf dem Server weiterlief und normal zu Ende kam — die einzige Spur im Backend war ein WebSocket, der mit Code 1006 schloss (Issue #147323). Die Oberfläche ist umgefallen, die Arbeit nicht.

Umgekehrt gilt dasselbe. Wenn das Handy meldet, es könne sich nicht verbinden, ist selten die App der kaputte Teil. Entweder stimmt der Weg vom Handy zum gateway nicht, oder die Authentifizierung des gateways selbst ist nicht durchgelaufen.

Was tatsächlich ausgeliefert wurde

Am 30. Oktober 2026 hat Nous Research auf der NousCon in New York eine offizielle Mobile-Beta geöffnet und alle auf hermes-agent.nousresearch.com/mobile verwiesen. Diese Seite macht genau eine Sache: Du wählst eine Plattform, sie gibt dir eine Einladung.

Punkt Realität
iOS Öffentliche Einladung über Apple TestFlight
Android Firebase App Distribution — nicht Google Play
Package Name ai.nousresearch.hermes.mobile
Version 1.0.0; in Testerberichten tauchen Builds mit versionCode 21 auf
Store-Status Keine der beiden Plattformen ist in einem App Store; kein Termin für allgemeine Verfügbarkeit angekündigt

Laut offizieller Ankündigung sind es drei Versprechen: streaming-Chat, Tool-Calls vom Handy aus freigeben und Bots und Routinen unterwegs verwalten.

Ein Detail verdient einen eigenen Absatz. Fünf Tage vor der Beta hat Nous öffentlich gewarnt, dass es noch keine offiziellen Hermes-Apps in den App Stores gibt und dass Drittanbieter-Apps, die Name und Aussehen übernehmen, eher Scams als Community-Projekte sind. Such also nicht in den Stores danach. Fang auf der offiziellen Seite an.

Es gibt außerdem eine Namenskollision, die man kennen sollte: Der Hermes-Mobile-Eintrag in unserem Ecosystem-Verzeichnis ist ein von der Community gebauter Android-Client und hat mit diesem Release nichts zu tun. Gleicher Name, anderes Projekt.

Lässt es sich heute installieren? Prüfe zuerst beide Türen

Dass die Beta offen ist, heißt nicht, dass die Einladung funktioniert, wenn du darauf klickst. Ich habe beide Links heute, am 2. November, geprüft — und das ist der Teil, den die meisten Berichte auslassen.

Die iOS-Einladung ist derzeit tot. Die offizielle Seite gibt testflight.apple.com/join/U8e1zmbc aus, und der Link liefert 404 — Apples nackte „Not Found“-Seite mit 896 Byte, nicht etwa eine Ansicht im Stil von „diese Beta ist voll“. Der Unterschied ist wichtig: Eine volle Beta rendert trotzdem die App-Seite und sagt dir, dass sie voll ist; ein 404 bedeutet, dass der öffentliche Link selbst nicht mehr live ist (zurückgezogen, abgelaufen oder ersetzt). Währenddessen antwortet /mobile weiter mit 200 und liefert weiterhin genau diesen alten Link aus. Mehrere Nutzer haben den 404 mit Desktop-, iPhone- und TestFlight-User-Agents sowie mit Cache-Busting-Parametern reproduziert (Issue #147556, und der Kommentarverlauf zu Issue #147269).

Die Android-Einladung ist am Limit. Öffne den Firebase-Link, melde dich mit Google an, und du bekommst eine klare Meldung: This app is at the tester limit, dazu den Hinweis, den Entwickler zu bitten, Plätze freizugeben. Mehrere Personen auf unterschiedlichen Rechnern und Konten bestätigen dasselbe Ergebnis (siehe die Kommentare zu Issue #147269).

Der reale Stand ist also: Einige Leute betreiben die App bereits und melden Bugs; alle anderen stehen vor der Tür und warten auf Plätze oder einen reparierten Link. Es liegt nicht an deinem Netzwerk und es ist kein regionaler Block.

Wie dein Backend aussehen muss

Eine Installation allein liefert dir eine leere Hülle. Die App braucht etwas, mit dem sie reden kann. Aus der Konfiguration, die in den Testerberichten auftaucht, ergibt sich diese Checkliste:

  1. Starte das gateway. Üblicherweise hermes dashboard (Standardport 9119, mit Dashboard-Auth) oder hermes serve für die Web-Oberfläche. Die Flags stehen in der Befehlsreferenz zu hermes dashboard.
  2. Mach es vom Handy aus erreichbar. Gleiches WLAN ist der einfache Weg. Außerhalb des Netzes nutzen Tester am häufigsten Tailscale; die App hat außerdem einen SSH-Tunnel-Modus.
  3. Exponiere Port 9119 nicht ins offene Internet. Hinter diesem Port sitzt ein Agent, der Befehle ausführen und Dateien lesen kann. Erreiche ihn über einen Tailscale-Bereich, oder setze Tailscale Serve als HTTPS-Front davor und richte webapp.public_url auf diesen Origin.
  4. Wähle eine Auth-Methode. Die App unterstützt zwei Wege: Browser-Anmeldung mit einem Nous-Konto (der Callback landet auf /auth/callback) oder den Direct-Modus mit Adresse plus Passwort über das basic_auth des Dashboards.
  5. Installiere das Push-Plugin, wenn du Benachrichtigungen willst. Das gateway braucht hermes-mobile-push, und im Katalog ist es derzeit nicht auffindbar — hermes plugins search hermes-mobile-push liefert No catalog entries matched, also muss es von Hand ins User-Plugin-Verzeichnis gelegt werden (Issue #147651). Ohne das Plugin solltest du keinen Push im Sinne von „Antwort fertig“ erwarten.
  6. Halte das Backend halbwegs aktuell. Die Backends in den Berichten sind überwiegend v0.22.5 (2026.9.24).

Noch etwas, bevor du loslegst: „Verbinden“ ist kein einzelner Modus. Es gibt Direct (Adresse plus Browser-Anmeldung oder Passwort), einen SSH-und-Mosh-Tunnel und einen direkten Aufruf gegen die Dashboard-Adresse. Sie scheitern auf unterschiedliche Weise — genau das zeigt der nächste Abschnitt.

Was in 1.0.0 schon funktioniert

Es gibt keine offizielle Feature-Liste, und die Doku-Seite hat noch keine Anleitung für das mobile Setup. Diese Tabelle ist deshalb aus echten Testerberichten zusammengesetzt, jeweils mit einer Issue-Nummer, die du selbst nachprüfen kannst.

Fähigkeit Status Hinweise
streaming-Chat Funktioniert Lange Antworten und Markdown werden gerendert; Sessions-, Projects- und Artifacts-Ansichten existieren
Modellauswahl Funktioniert, mit Anzeigefehlern Liest /api/model/options vom gateway; ein Backend lieferte 69 IDs unter der Gruppe nous und 407 unter custom:openrouter
Live Voice Funktioniert, inklusive Unterbrechungen Standardmäßig aus einem leeren Chat heraus nicht erreichbar — siehe Workaround unten
Tool-Call-Approvals In der Ankündigung genannt Vom Handy aus freigeben ist bequem und in gleichem Maße eine Angriffsfläche
Bots und Routinen In der Ankündigung genannt cron-Zustellungen landen im Bot Chat, werden in der App aber falsch dargestellt — siehe unten
System-Seite Funktioniert Zeigt Host-Adresse, Hermes-Version, Releasedatum, Health, Auth-Modus
Push-Benachrichtigungen Unvollständig Eine „thinking“-Benachrichtigung kommt an, eine bei Abschluss nicht; prüfe zuerst das Push-Plugin
Inline-HTML-Reports Fehlt Generierte Dashboards kommen als herunterladbare Dateien an, nicht im Chat gerendert

Für Live Voice gibt es einen wirklich nützlichen Workaround, dokumentiert in Issue #147322: Standardmäßig hat ein brandneuer Chat keine Möglichkeit, Live Voice zu starten, bis du zuerst eine Textnachricht sendest. Stell Settings → Chat → Collapsed Voice Button von Voice-Nachricht auf Live Voice um, und sowohl neue Chats als auch die Kachel in den Schnelleinstellungen springen direkt in eine Live-Voice-Session; normale Sprachnachrichten lassen sich weiterhin über den Composer aufnehmen. Die Worte des Reporters: Ein Start mit einem Tipp zählt viel, wenn man fährt. Die Stimme selbst, Unterbrechungen inklusive, funktioniert gut.

Sechs raue Kanten, die du vor der Installation kennen solltest

Das ist eine Beta, und das hier sind gemeldete Issues, keine Gerüchte.

1. Lange Sessions fressen Speicher. Die Timeline desselben Testers ist präzise: rund 55 Minuten Wechsel zwischen Live Voice und langen gestreamten Antworten, dann ein ANR (der Main Thread wartet auf Garbage Collection), dann dreizehn Sekunden später java.lang.OutOfMemoryError mit vollem 256 MB Heap, auf einem Galaxy S25 mit Android 17 (#147323). Es ist einmal passiert, und es ist genau die Art Szenario, die man beobachten sollte.

2. Lange Antworten scrollen nicht. Derselbe Reporter hat außerdem ruckelndes Scrollen und gestreamte Antworten gemeldet, die sich nicht in den sichtbaren Bereich scrollen lassen (#147321).

3. Chat-Bubbles schneiden ihren Text ab. Beim ersten Rendern ist die Unterkante einer Bubble mitten in der Zeile abgeschnitten, auf Nutzer- wie auf Agent-Seite; weggescrollt und zurück und es wird vollständig dargestellt — der Inhalt ist intakt, die gemessene Höhe ist falsch (#147723).

4. Modellnamen laufen ineinander abgeschnitten über. deepseek/deepseek-v4.1-flash und deepseek/deepseek-v4.1-flash-1017 zeigen auf einem Handy beide als deepseek/deepseek-v4.1-fl…, also sind genau die Zeichen abgeschnitten, die sie unterscheiden (#147319).

5. Die Anmeldung kann den Callback zweimal öffnen. Auf Android, sporadisch: Der Browser landet auf einer invalid_grant-Fehlerseite, während die App sich in Wahrheit sauber anmeldet. Das gateway-Log zeigt zwei Treffer auf /auth/callback im Abstand von 697 ms, wobei der zweite einen bereits verbrauchten Code einlöst — ein verlierender doppelter Tab, der auf dem Bildschirm gerendert wird (#147738). „Es hat funktioniert, aber mir gesagt, es sei fehlgeschlagen“ ist der schnellste Weg, jemanden einen Ablauf wiederholen zu lassen, der längst in Ordnung war.

6. Chat-WebSockets bekommen bei Remote-gateways ein 403. Die Authentifizierung läuft durch, dann wird der WebSocket abgelehnt und die App meldet „Hermes signed you in, but turned down the chat connection.“ Der Upgrade trägt ein Ticket in einem Subprotokoll und keinen Origin-Header von einem Nicht-Loopback-Peer, deshalb wird er als nativer lokaler Desktop-Aufruf behandelt und geschlossen, bevor die Ticket-Prüfung überhaupt läuft (#147361). Der Wechsel auf SSH & Mosh ist auch nicht automatisch die Lösung: Auf iOS waren SSH und Dashboard-Auth serverseitig beide erfolgreich, während die App einen Credential-Fehler meldete (#147726).

Zwei weitere aus dem Betrieb, die man sich merken sollte. Erstens: Das Plugin hermes-session-reset-policy feuert nie für Sessions mit source=gui — also den Pfad Dashboard / Desktop / Mobile —, sodass diese Sessions nie per Idle zurückgesetzt werden; ein Nutzer verzeichnete 47 Context-Compactions in sechs Stunden und bekam danach auf dem Handy keine Antworten mehr (#147660). Zweitens: cron-Zustellungen mit deliver: bot-chat erscheinen in der App als Nachrichten, die der Nutzer selbst getippt hat, während dieselbe Zustellung auf Telegram korrekt als ausgehende Bot-Nachricht dargestellt wird (#147573).

Zum Bericht „keine Benachrichtigung, wenn die Antwort fertig ist“ (#147345): Der Reporter hat ihn selbst geschlossen und ein fehlendes Bauteil vermutet. Da das Push-Plugin nicht im Katalog ist, passt diese Erklärung: Wahrscheinlich ist es kein kaputtes Benachrichtigungssystem, sondern ein fehlendes Glied in der Kette. Wenn du das Gesamtbild zu Benachrichtigungen in Hermes willst, deckt unser Leitfaden zu Benachrichtigungen und Aufmerksamkeit die Konfigurationsseite ab.

Ein Zehn-Minuten-Abnahmetest, sobald du drin bist

Fang nicht damit an, einen Haufen Plugins zu installieren. Schick zuerst eine einzige unkritische Aufgabe durch den ganzen Pfad. Diese Reihenfolge trifft jeden oben genannten Fehlermodus:

  1. Neuer Chat, frag etwas, das in einer Zeile beantwortbar ist. Prüfe, ob streaming läuft.
  2. Verlange eine lange Antwort — 1.000 Wörter oder mehr — und beobachte, ob das Scrollen mitkommt.
  3. Schick die App in den Hintergrund, komm zurück, prüfe, ob die Session und ihr vollständiger Inhalt überlebt haben.
  4. Starte eine Live-Voice-Session, unterbrich sie mitten im Satz und sieh, ob sie den Faden wieder aufnimmt.
  5. Löse einen Tool-Call aus, der ein Approval braucht. Gib ihn vom Handy aus frei oder lehne ihn ab.
  6. Öffne die System-Seite und vergleiche Backend-Version und Health mit dem, was der Host meldet.
  7. Schreib drei Dinge auf: Build-Nummer der App, OS-Version des Handys und die Ausgabe von hermes --version des Backends. Diese drei verwandeln „es funktioniert nicht“ in einen Bugreport, mit dem jemand etwas anfangen kann.

Wenn du noch beim Backend-Schritt bist, fang mit der Installationsanleitung an und lies danach, wie die Web-App und die Desktop-App die Arbeit aufteilen — die Mobile-App spricht dieselben Webapp-Endpunkte an, und die Anmeldung läuft über denselben Handoff (Nous-Anmeldung und App-Handoff geht tiefer).

Was dieses Release wirklich ändert

Zählt man all die rauen Kanten zusammen, bleibt die Positionierung trotzdem klar: Hermes Mobile ist nicht „der Agent, in ein Handy gestopft“. Es ist „du, aus dem Büro herausgelassen“.

Die alte Art, einen Agenten zu beurteilen, war das Zählen von Tools und Modellen. Jetzt gibt es eine zweite Frage: Kann ich, wenn ich weit weg vom Schreibtisch bin, ihn erreichen, einen Satz ergänzen, einen Befehl freigeben und die Arbeit weiterlaufen lassen? Diese Frage wiegt mehr als eine Feature-Liste, weil sie entscheidet, ob du einem Agenten überhaupt jemals eine stundenlange Serveraufgabe überlässt.

Die ehrliche Antwort heute: ja, aber setz nicht alles auf das Handy. Kurze Aufgaben starten, Fortschritt prüfen, eine Anforderung nachschieben, einen Befehl freigeben, eine Idee diktieren — das alles funktioniert. Vom Handy zu erwarten, dass es eine mehrstündige Aufgabe allein trägt und jede Benachrichtigung pünktlich ankommt, überschätzt es.

Wenn die iOS-Einladung ersetzt ist und Firebase Plätze freigibt, schau noch einmal auf derselben offiziellen Seite vorbei. Und lass die APK-Links in irgendwelchen Threads liegen — der Agent auf deiner Maschine verdient eine bessere Herkunft als das.