4
Gateway Cron Health Logs
Alan Wizemann edited this page 2026-04-27 13:00:18 +02:00

Gateway / Cron / Health / Logs / Settings

The Manage section's operational tools, grouped because they're what you reach for when something needs attention.

Gateway Control

Start, stop, and restart the messaging gateway. Live status:

  • PID, uptime, connected platforms.
  • Per-platform connection state mirrors the dot you see throughout the app.
  • Pairing management — view approved users, approve new pairing requests, revoke existing approvals.

The gateway is what brings Hermes onto Telegram / Discord / Slack / etc. Stop it to take the agent offline without quitting Hermes itself.

Cron Manager

View and edit Hermes scheduled jobs (~/.hermes/cron/jobs.json):

Column What it shows
Name The job's display name.
Schedule Human-readable phrase (v2.5+) — "Every 6 hours", "Weekdays at 09:00", "@hourly", etc. — falling back to the raw cron expression for anything the formatter doesn't recognize. Backed by CronScheduleFormatter; ScarfGo renders the same text.
State enabled / paused / failed / running with an icon.
Last run / next run Timestamps.
Delivery Channel format like discord:chat:thread.

Operations (new in 1.6 — full write support):

  • Create a new job — prompt, optional skills, optional model override, schedule, delivery target.
  • Edit any field on an existing job.
  • Pause / resume.
  • Run-now (one-shot trigger outside the schedule).
  • Delete.
  • Pre-run scripts, delivery-failure tracking, timeout type / seconds, [SILENT] indicator for jobs that suppress output.

Edits go through ServerContext.writeText — atomic, transport-aware.

Health

Component-level status and diagnostics. Mirrors hermes status and hermes doctor:

  • API key validation per provider.
  • Auth provider status.
  • External tools availability (browser, terminal, voice).
  • "Update available" indicator from Sparkle.

Two buttons:

  • Run Dump — captures hermes dump output inline.
  • Share Debug Report — uploads a structured report to Nous support, with a confirmation dialog before sending.

Web Dashboard launcher (local only)

Hermes ships a local web UI (hermes dashboard) on port 9119 for config / session management. The Health header shows its live state:

  • Launch Dashboard spawns hermes dashboard --no-open --port 9119 detached, waits for the port to bind (probing /api/status up to ~6s), then opens http://127.0.0.1:9119 in the default browser.
  • Open in Browser / Stop take over once the dashboard is running. Stop works whether Scarf launched it or you started it from a terminal — it falls back to pkill -f "hermes dashboard" in the external case.
  • Liveness is polled every 3 seconds via a 500ms GET /api/status — that endpoint is whitelisted in Hermes's _PUBLIC_API_PATHS so no session token is needed for detection.

The row is hidden for remote servers — the dashboard binds 127.0.0.1 by default and SSH tunneling isn't wired up yet.

Log Viewer

Real-time tail for the three main logs at ~/.hermes/logs/:

  • agent.log — the agent's loop.
  • errors.log — errors only.
  • gateway.log — messaging gateway.

Filters:

  • Level — DEBUG / INFO / WARNING / ERROR / CRITICAL.
  • Component — Gateway / Agent / Tools / CLI / Cron.
  • Session — clickable session-ID pills filter the view to one session.
  • Text search.

Local windows tail with FileHandle. Remote windows run ssh host tail -F with partial-line buffering so you don't see half-arrived JSON. See HermesLogService.

Settings

Restructured in 1.6 into a 10-tab layout exposing ~60 previously hidden config fields:

Tab What lives here
General Updates (Sparkle toggle + manual check), basic preferences.
Display Streaming, reasoning visibility, cost display, verbose mode.
Agent Model picker (backed by models.dev catalog — 111 providers + 6 overlay-only providers from HERMES_OVERLAYS), max turns, approval mode, reasoning effort.
Terminal Terminal backend, Docker / container settings, modal options.
Browser Browser backend selection.
Voice TTS / STT providers, PTT, silence threshold (default 200ms).
Memory memory_enabled, memory_char_limit, user_char_limit, memory_provider. Reset memory (v2.5+) — a toolbar button on Memory views (Mac + iOS) runs hermes memory reset --yes with a destructive-confirmation dialog.
Aux Models All 8 auxiliary model tasks (vision, web extract, compression, delegation, etc.).
Security Tirith sandbox, command allowlist, website blocklist, redaction.
Advanced Logging level / rotation, checkpoints, human-delay simulation, compression thresholds.

Backup & Restore lives at the bottom — wraps hermes backup (zips the current profile) and hermes import (unzips into the active profile). One-click via context.runHermes.

ScarfGo's Settings tab is read view + Quick Edits — see ScarfGo and Platform Differences. The 7 quick-edit keys (model.default / provider, agent.approval_mode / max_turns, display.streaming / show_cost / show_reasoning) shell out to hermes config set. Other keys remain read-only on iOS.

  • Core Services — the services backing each of these views.
  • Hermes Paths — where each operational file lives.
  • Updating — Sparkle, the appcast, and how the auto-update flow works.

Last updated: 2026-04-25 — Scarf v2.5.0 (human-readable cron schedules, hermes memory reset, ScarfGo Quick Edits cross-link)