Scarf is a native macOS app that puts a graphical interface on a Hermes agent, and ScarfGo is its iPhone companion. Hermes runs in a terminal and in messaging channels; Scarf surfaces what it is doing — sessions, projects, skills, memory files, tool calls, token and cost figures, and cron jobs — in a sidebar UI, and lets you edit configuration through forms instead of YAML.
Each window binds to one Hermes server. A local ~/.hermes/ directory appears automatically, and remote hosts are reached over system SSH using your existing ~/.ssh/config, ssh-agent, ControlMaster, and ProxyJump settings, with no intermediate service. Hermes state is read directly — the SQLite database strictly read-only, from atomic snapshots — while management actions go through the hermes CLI. ScarfGo uses a pure-Swift SSH client whose Ed25519 private key is generated on the phone and stays in the iOS Keychain.
The app is written in Swift 6 and SwiftUI and needs macOS 14.6 or later; ScarfGo needs iOS 18 or later. It works against Hermes v0.6.0 and newer, with v0.20.4 as the current target: each host's version is detected and newer-only panes are hidden on older hosts. The interface ships in English, Simplified Chinese, German, French, Spanish, Japanese, and Brazilian Portuguese.
The macOS app collects anonymous usage statistics — event names and fixed-vocabulary properties, with no content, paths, hostnames, or persistent identifier — which you can turn off under Settings → Advanced → Usage Analytics. ScarfGo collects nothing.
Features
- Project cockpit: each repo opens a unified view with dashboard, sessions, Kanban board, context, cron, memory, secrets, templates, slash commands, mini-apps, and fleet panes
- Agent-generated dashboards: a .scarf/dashboard.json file in a project renders live stat boxes, charts, tables, progress bars, checklists, log tails, and embedded web views
- Chat in two modes: rich streaming over the Agent Client Protocol with tool-call visualisation and permission prompts, or hermes chat in a real terminal; both resume and auto-reconnect
- Monitoring: token usage and per-model cost tracking, usage analytics with 7/30/90-day filters, full-text session search, and a live tool-execution feed
- Session export: conversations export to Markdown, HTML, Quarto, or JSONL with secret redaction
- Skills and memory: browse installed skills, search the Skills Hub across registries, install or remove them, and edit MEMORY.md and USER.md in place
- Model management: a model picker pane with local-model discovery for Ollama, LM Studio, vLLM, and llama.cpp, context-window guards, and vision-capability warnings
- Configuration forms: messaging platforms, personalities, quick commands, plugins, webhooks, profiles, and a structured editor over config.yaml written through a lossless YAML writer
- Management panes: toolset toggles, MCP server management with presets, OAuth, mTLS and connection tests, gateway pairing, cron CRUD with run history, health checks, and live log tailing
- Mini-apps: sandboxed HTML, CSS, and JavaScript panels that drive the agent through a rate-limited, permission-gated bridge in a locked-down WKWebView
- Fleet and templates: the same repo across machines groups into one logical project with config-drift flags, and .scarftemplate bundles install from a community catalogue, a file, or a scarf://install link
- Remote diagnostics: fourteen checks run in one SSH session, each with a remediation hint, when a connected host shows empty or stopped values
Integrates with
Aider
Command-line LLM pair programmer that maps your repo, edits files, and auto-commits each change to git
Cline
Open-source coding agent with one engine behind VS Code, JetBrains, a headless CLI, an SDK, and a parallel Kanban board
Codex
Lightweight coding agent that runs in your terminal
Continue
Archived open-source coding agent shipped as a CLI, VS Code extension, and JetBrains plugin