by awizemann
Native macOS and iOS App for the Hermes AI agent — multi-window, multi-server (local + remote over SSH). Chat, dashboard, sessions, memory, cron, MCP, and more.
# Add to your Claude Code skills
git clone https://github.com/awizemann/scarfLast scanned: 5/16/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-16T06:21:44.588Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}No comments yet. Be the first to share your thoughts!
A coordinated catch-up to Hermes v0.15.0 ("The Velocity Release"). v2.10 surfaces the Scarf-relevant slice of the largest Hermes release yet — OpenAI as a first-class provider, the 104-PR Kanban maturation wave, Bitwarden Secrets Manager, MCP mTLS, skill bundles, per-session edit-approval modes, plus ntfy, xAI Web Search, and the xAI model-retirement migration. New v0.15 capability flags gate every surface; pre-v0.15 hosts render byte-identical to v2.9.x. (All flag/config/wire shapes were verified against the v2026.5.28 Hermes source before implementation.)
openai-api, distinct from the OpenAI Codex runtime, in the Models picker. (Bare openai stays a Hermes alias to OpenRouter, so it isn't registered separately.)krea-2-medium / krea-2-large join the image-gen model list.grok-4-0709, grok-4-fast-*, grok-3, grok-code-fast-1, …) resolve forward to grok-4.3 so a stored retired model still works, and the Health view warns + offers one-click hermes migrate xai.archive --rm) card actions; new Scheduled and Review columns (collapse when empty).--branch on create + a read-only model-override line in the inspector; --board multi-board plumbing in the service layer.session_id (stamped automatically by Hermes), replacing the old tenant + time-window approximation, with a "This chat ⇄ All tasks" scope toggle.secrets.bitwarden.* block — one bootstrap token (BWS_ACCESS_TOKEN in ~/.hermes/.env) replaces per-provider API keys. EU Cloud / self-hosted server URLs supported.client_cert / client_key / ssl_verify) for HTTP + SSE MCP servers, in the server editor.hermes mcp catalog browse sheet for the Nous-approved MCP catalog.~/.hermes/skill-bundles/*.yaml — each loadable in Hermes via one /<name> slash command — with each bundle's member skills and instruction./tmp), and Don't Ask via ACP session/set_mode. Distinct from the global approvals.mode / YOLO surface; sensitive paths always still prompt.disable_topic_auto_rename / ignore_root_dm, Discord allow_any_attachment, Signal group-only require_mention).web_tools.search.backend option (reuses your Grok OAuth / XAI_API_KEY), and an opt-in xAI TTS auto_speech_tags toggle.hermes audit (OSV.dev) and shows the result inline.See the full v2.10.0 release notes for the complete list, including the pre-release review fixes and the v2.9 highlights (Hermes v0.14 catch-up: /subgoal + /yolo + /sessions + /codex-runtime slash commands, xAI Grok OAuth + NovitaAI providers, LINE + SimpleX Chat platforms, Brave Search + DuckDuckGo backends, the Hermes Proxy local server) which are all still in play.
Previous releases: see the Release Notes Index on the wiki for v2.7, v2.6, v2.5, v2.3, v2.2, v2.0, v1.6, and earlier.
Same Hermes server you've been running on your Mac — reachable from your phone over SSH. Multi-server, project-scoped chat, session resume, memory editor, cron list, skills tree, settings (read), all native iOS. Pure-Swift SSH (Citadel under the hood — no ssh binary needed on iOS). Per-project chat writes the same Scarf-managed AGENTS.md block the Mac app does, so the agent boots with the same project context regardless of which client opened the session.
Join the public TestFlight — the link is live now but only accepts new beta testers once Apple's Beta Review approves the first build. If you hit a "not accepting testers" splash, bookmark it and try again in 24–48h.
See the ScarfGo wiki page for the full feature tour, ScarfGo Onboarding for the SSH-key setup walkthrough, and Platform Differences for what is and isn't shared between Mac and iOS.
ScarfGo speaks SSH directly — no companion service, no developer-controlled server in between. Onboarding takes about a minute:
ssh user@host.kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly) and is excluded from iCloud sync — it never leaves the phone.cat >> ~/.ssh/authorized_keys <<'EOF'
<paste the line ScarfGo showed you>
EOF
chmod 600 ~/.ssh/authorized_keys
This is its own line per device — the convention any second SSH client uses. Mac (Scarf) keeps using your existing ssh-agent / ~/.ssh/config and is unaffected.hermes binary, and saves the server on success. If it can't find hermes, see the troubleshooting section — it's almost always a PATH quirk on non-interactive SSH.Done. Open the Dashboard tab and tap any session to resume it; tap the + in Chat to start a new project-scoped session.
Scarf 2.0 is a multi-window app. Each window is bound to exactly one Hermes server — your local ~/.hermes/ is synthesized automatically, and you can add remotes via File → Open Server… → Add Server (host, user, port, optional identity file). Open a second window for a different server and the two run side-by-side with independent state.
Remote Hermes is reached over system SSH — the same ~/.ssh/config, ssh-agent, ProxyJump, and ControlMaster pooling your terminal uses. File I/O flows through scp/sftp; SQLite is served from atomic sqlite3 .backup snapshots cached under ~/Library/Caches/scarf/snapshots/<server-id>/; chat (ACP) tunnels as ssh -T host -- hermes acp with JSON-RPC over stdio end-to-end. Everything in the feature list below works against remote identically to local.
The remote host must have:
ssh-add once in Terminal before connecting.sqlite3 on the remote $PATH — needed for the atomic DB snap