2026-05-28 Hermes Agent Telegram auf gemietetem Mac mini M4 (HK / JP / KR / SG / US)
Auf demselben Mac mini M4, der bereits iOS-Apps per SSH baut, können Sie Hermes Agent als Telegram-Bot betreiben. Der Gateway-Prozess (hermes gateway) hält Ihren BotFather-Token, erzwingt eine Allowlist numerischer Benutzer-IDs und leitet Chats in die Hermes-Tool-Schleife—CI-Fixes freigeben oder Architekturfragen vom Telefon, ohne ein Laptop dauerhaft laufen zu lassen.
Für Modal/Daytona Serverless-Terminals und Near-Idle-Compute: Hermes Serverless Modal/Daytona-Leitfaden.
Warum Telegram auf einem Builder-Mac
Telegram passt zu headless Mieten: Das Gateway nutzt standardmäßig ausgehendes Long Polling—Ihr Mac initiiert HTTPS zur Telegram-API, ohne eingehende Ports auf einem geteilten Builder freizugeben (im Gegensatz zum Webhook-Modus mit öffentlichem HTTPS).
Typische Gründe, Hermes auf einem Lease-Host mit Telegram zu verbinden:
- On-Call-Triage—wenn GitHub Actions oder
xcodebuildnachts scheitert, vom Handy antworten, während der Agent Logs auf NVMe liest. - Trennung der Aufgaben—OpenClaw für Repo-Automatisierung, Hermes für persönlichen/Ops-Chat; parallel nur, wenn Sie zwei Gateway-Prozesse (RAM und Token-Isolation) akzeptieren.
- Migration von OpenClaw-Messaging—
hermes claw migrateist upstream dokumentiert; lesen Sie unsere Matrix Hermes vs OpenClaw vs OpenHuman, bevor zwei Gateways auf einem 16-GB-Host laufen.
Die Mac-mini-Spezifikationen nennen 16–24 GB Unified Memory. Planen Sie etwa 1–2 GB für hermes gateway und den Modell-Working-Set, bevor Sie parallele Xcode-Tests stapeln. Committen Sie den Bot-Token nicht in git.
Wie das Telegram-Gateway zusammenpasst
Hermes trennt CLI-Chat (hermes TUI) von Messaging (hermes gateway). Telegram-Konfiguration landet in ~/.hermes/.env (oder Wizard-Ausgabe), Logs unter ~/.hermes/logs/gateway.log, optional launchd auf macOS.
| Komponente | Pfad / Befehl | Rolle |
|---|---|---|
| Installation | curl -fsSL …/install.sh | bash | Python 3.11 + hermes CLI |
| Modell / Auth | hermes setup | Provider-API-Keys (BYO oder Nous Portal) |
| Telegram-Konfig | hermes gateway setup | Bot Token + + TELEGRAM_ALLOWED_USERS |
| Vordergrund-Test | hermes gateway | Long-Polling-Bot bis Ctrl+C |
| Dienst | hermes gateway install → hermes gateway start | macOS launchd, Überlebt Logout |
| Health-Checks | hermes doctor, hermes gateway status | Config- und Prozessprüfungen |
Datenfluss (Polling-Modus):
- Sie schreiben dem Bot in Telegram.
- Das Gateway empfängt Updates über die Telegram-Bot-API (ausgehendes Polling).
- Die Hermes-Agent-Schleife führt Tools auf dem konfigurierten Terminal-Backend aus (lokal, Docker oder SSH auf demselben Host).
- Antworttext (und optionale
MEDIA:/path-Anhänge) geht über das Gateway zurück nach Telegram.
Wichtige Sicherheits-Defaults: Upstream nutzt in TELEGRAM_ALLOWED_USERS numerische Benutzer-IDs, keine @Namen. Wer den Bot-Token hat, kann den Bot impersonieren—wie API-Keys behandeln und bei Leak per BotFather /revoke rotieren.
Offizielle Referenz: Hermes-Telegram-Dokumentation (BotFather, Privatmodus, Webhooks).
BotFather und Zugriffskontrolle
Bot anlegen
- @BotFather öffnen →
/newbot. - Anzeigenamen setzen (z. B.
Builder Hermes) und Benutzernamen mit Endungbot. - Token im Format
123456789:ABCdefGHIjklMNOpqrs…kopieren—in Passwortmanager, nicht in git.
Benutzer-ID auf die Allowlist
Nachricht an @userinfobot für die numerische ID (z. B. 123456789). Mit TELEGRAM_ALLOWED_USERS lehnt Hermes Fremde ab.
Optionale Härtung auf geteilten Leases:
- nur Einzelbenutzer-Allowlist—keine Wildcard-„Team“-IDs, bis Tool-Umfang klar ist.
- Bot pro Umgebung (Staging vs. Produktions-Lease)—Staging-Leak darf Produktions-Workspaces nicht treffen.
- Gruppenzugriff deaktivieren, bis DM-Verhalten verifiziert ist.
Hermes für Telegram konfigurieren
Interaktiv (empfohlen)
hermes setup # bei frischer Installation zuerst Modell-Provider
hermes gateway setup # Telegram wählen → Token einfügen → erlaubte Benutzer-IDs
Manuell bearbeiten ~/.hermes/.env
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_ALLOWED_USERS=123456789
# Optionales Team: TELEGRAM_ALLOWED_USERS=111111111,222222222
Dateirechte 600 prüfen und von untrusted Dotfile-Sync ausschließen.
Vordergrund-Smoke-Test:
hermes gateway
hello in Telegram senden; Antwort in Sekunden erwartet. Mit Ctrl+C stoppen vor launchd.
Acht Schritte Headless-Rollout auf Mac mini M4
- Hermes installieren — Offizielles install.sh im Lease-Benutzerkonto (nicht root) ausführen.
- hermes setup ausführen — Modell-Provider konfigurieren;
hermes doctorohne Fehler. - BotFather-Token erstellen — und numerische Benutzer-ID (Abschnitte oben).
- hermes gateway setup ausführen — Telegram wählen; Token + Allowlist in
~/.hermes/.envprüfen. - Vordergrund-Test —
hermes gateway, Bot anschreiben, harmloses Tool (z. B.pwd); Ctrl+C stoppen. - Dienst installieren —
hermes gateway install, dannhermes gateway start(macOS-launchd). - Umgebung für Daemons persistieren — API-Keys in
~/.hermes/.envfür launchd lesbar (gleicher Benutzer wie Install); bei Fehlern nur im Hintergrund OpenClaw-launchd-PATH-Hinweise prüfen. - Überwachen —
hermes gateway status,tail -f ~/.hermes/logs/gateway.log, nach Config-Änderungen Telegram/newfür kaputte Sessions.
Zitierbare Betriebsregel:Ein Gateway-Prozess kann mehrere Plattformen bedienen (Telegram, Discord, Slack usw.)—kein separater Daemon pro Chat-App nötig.
launchd und SSH-only-Leases
Auf macOS-Leases registriert hermes gateway install einen Benutzer-launchd-Job—ähnlich dem Muster openclaw onboard --install-daemon auf diesem Blog.
hermes gateway install
hermes gateway start
hermes gateway status
tail -f ~/.hermes/logs/gateway.log
Nach SSH-Abbruch sollte das Gateway unter dem selben Unix-Benutzer wie bei der Installation laufen. Stoppt der Job, prüfen:
launchctl list | grep -i hermes- Log auf
TELEGRAM_BOT_TOKEN/ Auth-Fehler - ob Lease-Richtlinien langlebige User-Agenten beim Logout beenden (selten auf dediziertem M4; häufig auf geteilten Shells)
Hinweis Docker-Backend: Bei terminal.backend: docker müssen per MEDIA:/path gesendete Dateien auf dem vom Gateway lesbaren Host-Pfad liegen—nicht nur im Container. Host-sichtbare Volumes laut upstream telegram.md mounten.
Gruppenchats (optional)
Der Telegram-Privatmodus ist standardmäßig AN—in Gruppen sieht der Bot oft nur /commands, Antworten an den Bot oder Admin-sichtbaren Traffic. Für mehr Kontext Privatmodus in BotFather aus (Bot Settings → Group Privacy → Turn off) und den Bot pro Gruppe entfernen und neu hinzufügen oder zum Gruppenadmin machen.
Für „beobachten, aber ohne @ nicht antworten“ siehe TELEGRAM_OBSERVE_UNMENTIONED_GROUP_MESSAGES und erlaubte Chat-IDs—zuerst den Gruppenabschnitt in telegram.md lesen.
Fehlerbehebung
Symptom: Bot antwortet nicht (stilles Polling)
| Prüfung | Befehl / Fix |
|---|---|
| Gateway läuft? | hermes gateway status; mit hermes gateway start neu starten |
| Token gültig? | aus BotFather neu einfügen; bei Leak /revoke |
| Benutzer nicht auf Allowlist? | numerische ID zu TELEGRAM_ALLOWED_USERS und Gateway neu starten |
| Modell/Auth-Fehler? | hermes doctor; zuerst hermes CLI lokal testen |
| Logs | grep -i error ~/.hermes/logs/gateway.log | tail -20 |
Symptom: 401 Unauthorized oder Conflict: terminated by other getUpdates
- 401: falscher oder widerrufener
TELEGRAM_BOT_TOKEN. - Conflict: zwei Prozesse pollen denselben Bot—doppelte Vordergrund-
hermes gateway-Sessions oder zweiten Host mit gleichem Token stoppen.
hermes gateway stop
pkill -f "hermes gateway" 2>/dev/null || true
hermes gateway start
Symptom: Vordergrund OK, unter launchd Fehler
- launchd hat minimale Umgebung—
~/.hermes/.envlesbar und Provider-Keys vorhanden prüfen. PATHin SSH vs.launchctl print gui/$(id -u)vergleichen (macOS); Node-Pfade angleichen, wenn Plugins shellen.
Symptom: Gruppe sieht nur /commands
- BotFather-Privatmodus noch AN—ausschalten oder Bot zum Admin machen; Bot neu zur Gruppe hinzufügen.
FAQ
hermes claw migrate ist möglich, aber zwei Bots auf einem Host duplizieren RAM und riskieren Automationskonflikte. Ein Messaging-Owner pro Lease.memory_pressure bei Archive- und Gateway-Peaks; pausieren Sie das Gateway bei großen xcodebuild-Matrizen bei Bedarf.Headless-M4 für Hermes-Telegram-Gateway
SSH-first Apple Silicon in HK, JP, KR, SG und US—Telegram-Polling und launchd für 24/7-Betrieb.