# Scarf: a native Mac and iOS client for the Hermes AI agent

> Scarf is a Swift 6 and SwiftUI app that puts a GUI on a Hermes agent running locally or on remote hosts over plain SSH. It is read-only against Hermes state, and management actions go through the hermes CLI.

**awizemann/scarf** — 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.

- Repository: https://github.com/awizemann/scarf
- Website: https://awizemann.github.io/scarf/
- Stars: 872 · Forks: 57
- Language: Swift
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/awizemann-scarf

## The gap Scarf fills for Hermes operators

Hermes is described in the README as a terminal-and-messaging agent, and the README's own framing of the problem is blunt: it is "powerful, but invisible." Everything the agent does, including sessions, tool calls, token counts and spend, lives in files and CLI output rather than on a screen. Scarf is the answer to that, and the intended audience is narrow and specific: people who already run Hermes, often on more than one machine, and who want to inspect and steer it without typing commands all day.

The scope is wider than chat. The README lists sessions, messages, tool calls, tokens, dollar costs, memory files, skills, cron jobs, gateways, MCP servers and every config key as things Scarf surfaces. That is a management console, not a chat front end. If you have never installed Hermes, nothing here applies to you.

## Read-only state, CLI for writes, SSH for transport

The architecture has one rule that explains most of the design. According to the README, Hermes state is opened read-only, and management actions go through the hermes CLI. Scarf therefore cannot corrupt the agent's data by writing into its files, because it does not write there. When you change something, the change is expressed as a CLI invocation on the host.

Transport is plain SSH against local ~/.hermes/ or any number of remote hosts, reusing your existing ~/.ssh/config, agent and ProxyJump settings. The README states there is no companion service in the middle. That matters for anyone with a locked-down host: there is no daemon to install, no port to open beyond SSH, and no third-party relay holding your agent's data.

The third mechanism is version adaptation. Scarf detects each host's Hermes version and capability-gates its UI, so newer-only surfaces simply hide on older hosts. The README claims support for Hermes v0.6 through v0.20. That is a real engineering commitment, and it also means the UI you see is a function of the host you are pointed at, which can be confusing if you run mixed versions across servers.

## Installing Scarf and connecting a first host

Scarf is distributed as a signed app rather than through a package manager. The README links a download for Mac from the GitHub releases page and a public TestFlight build for iPhone. The stated requirements are macOS 14.6 or later, iOS 18 or later, and Swift 6 at build time. For the iPhone companion, the README says connecting takes about a minute.

The iOS flow is documented step by step. You add a server using the same details you would pass to ssh user@host, generate a key on the device, paste the public key into the host's authorized_keys file, and test the connection. The README states the Ed25519 private key is generated on-device, lives in the iOS Keychain, and never leaves the phone, and that the SSH implementation is pure Swift via Citadel.

On macOS, the equivalent starting point is simply pointing Scarf at local ~/.hermes/ or at a remote host from your SSH config. One privacy setting is worth knowing before you start: the macOS build collects anonymous usage statistics with event names and fixed-vocabulary properties, never content, paths or hostnames, and no persistent identifier. The README says you can opt out under Settings, Advanced, Usage Analytics. The iOS build collects nothing.

## What Scarf will not do, and where it breaks

The read-only design is a genuine safety property and a genuine ceiling. Anything Hermes exposes only through an interactive prompt, or through a CLI subcommand that Scarf has not wrapped, is not reachable from the GUI. The README does not document a generic escape hatch for arbitrary CLI calls, so the management surface is whatever the app has chosen to implement for that host's detected version.

Version gating cuts both ways. On an older host, newer UI simply hides. That is honest behaviour, but it means two servers in the same sidebar can present different feature sets, and a screenshot from someone else's setup may not match yours.

Platform is the other hard boundary. There is no Linux or Windows client, and no web interface. If your team works on non-Apple machines, Scarf is not a shared console. The iOS app is also still distributed through TestFlight rather than the App Store, which the README presents as the current channel. Finally, the README does not document rollback or downgrade steps, so plan your upgrades around the releases page rather than assuming you can step back.

## How Scarf differs from a terminal or a generic SSH client

The obvious alternative is not another GUI, it is the terminal you already have. Hermes is a terminal agent, and ssh plus the hermes CLI covers the same ground with no extra install. The difference is in what the terminal cannot give you cheaply: live dashboards, full-text search across sessions, activity feeds and cost breakdowns. A terminal can produce those with enough scripting, and some operators will prefer exactly that. Scarf's value is that the views are already built and the version negotiation against each host is already handled.

A second comparison is a generic SSH or remote-file app. Those give you the transport and nothing else. They will not parse Hermes sessions, will not gate UI by Hermes version, and cannot route writes through the hermes CLI while keeping state read-only. That combination is the specific thing Scarf implements, and it is the reason to pick it over a file browser pointed at ~/.hermes/.

## Maintenance, licensing and upgrade cost

The repository is not archived, and the last push was on 2026-09-10. Releases are frequent and recent: v3.0.0 on 2026-09-02, v3.0.1 on 2026-09-03, and v3.1.0 on 2026-09-04. For an operator, that cadence is a cost as well as a signal. Each release can change the UI, and v3.1.0 is a large one: a project-centric sidebar, an auto-accept edits setting for project chats, an open_url permission for mini-apps, atomic writes across transports including iOS SFTP, and a bundled scarf-projects MCP server. Upgrading means re-learning parts of the interface, not just patching.

The licence is MIT, which permits commercial and private use and modification. It also means no warranty and no obligation on the maintainer to fix anything. The README does not describe a support contract or a paid tier. If you depend on Scarf operationally, you are depending on a single-maintainer project under a permissive licence, and that is a risk to weigh rather than a detail to skip.

## Conclusion

Adopt Scarf if you already run a Hermes agent and want a GUI for sessions, memory, cron, MCP and config without giving up SSH as the transport. Skip it if you do not run Hermes at all, or if you need a non-Apple platform, since the project ships only macOS and iOS builds. Before installing, check that your host runs a Hermes version in the supported v0.6 to v0.20 range and that you can reach it with ssh user@host, because Scarf reuses your existing ~/.ssh/config rather than managing its own credentials.

## FAQ

### What is Scarf and which Hermes versions does it support?

Scarf is a native macOS and iOS app for the Hermes AI agent, covering chat, dashboards, sessions, memory, cron, MCP and configuration. The README states it supports Hermes v0.6 through v0.20 and capability-gates its UI based on the version detected on each host.

### How do I install Scarf on a Mac?

The README links a Mac download from the GitHub releases page and states a requirement of macOS 14.6 or later. There is no package manager install documented.

### Does Scarf need a server-side component on my Hermes host?

No. The README states connections go over plain SSH using your existing ~/.ssh/config, agent and ProxyJump, with no companion service in the middle.

### Can Scarf modify my Hermes data files?

The README states Hermes state is opened read-only and that management actions go through the hermes CLI, so Scarf does not write into the agent's state files directly.

### Does Scarf collect telemetry?

The macOS build collects anonymous usage statistics with event names and fixed-vocabulary properties, never content, paths or hostnames, and with no persistent identifier. The README says you can opt out under Settings, Advanced, Usage Analytics, and that the iOS build collects nothing.

## Sources

- [awizemann/scarf on GitHub](https://github.com/awizemann/scarf)
- [License: MIT](https://github.com/awizemann/scarf/blob/main/LICENSE)
- [Project website](https://awizemann.github.io/scarf/)
- [README](https://github.com/awizemann/scarf/blob/main/README.md)
- [Releases](https://github.com/awizemann/scarf/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/awizemann-scarf
