The Hermes icon

Public beta

For Hermes Agent · iPhone, iPad and Mac

Your own agent. Right at home.

Hermes is a native app for the Hermes Agent you run. Talk to it from any Apple device, watch every step it takes, hand it real work, and give each profile a face, a memory and one chat that never resets.

Mac 1.0 beta, notarized and self-updating · iPhone and iPad on TestFlight · iOS, iPadOS and macOS 26 or later

Open source on GitHub · MIT
Hermes on a Mac showing four Bots, Hermes, Research Buddy, Ops and Ada, each with its own face and what it’s doing, beside the sidebar’s Bots and the Launch crew group chat.
Research Buddy’s daily digest on an iPhone, posted at 8:00 AM: a reply summarizing two papers, and a question passed on from Hermes.

Bot Mode

Every profile is a Bot.

Each Hermes profile becomes a Bot with its own face, name, role and memory, and one chat that never resets. Come back tomorrow or next month and pick up mid-thought.

Faces are alive. They blink, watch the composer while you type, look up while they think and squint happily when a reply lands. Go on, poke one.

Group chats.

Put your Bots in one room. They take turns, pass the word along, and you can step in, pause or ask anyone directly.

A group chat on a Mac: in Launch crew, Hermes hands out the Trailhead 2.3 release, and Ada, Ops and Research Buddy answer in turn.

Live agent turns

Watch it work.
Stay in charge.

Replies stream in with a timeline of what Hermes is doing. Swipe through what you can do while it works.

Follow-ups

Talk while it works.

No waiting for the reply. Send a thought mid-turn and choose how it lands: steer the work, change course, queue what’s next, ask on the side, or hand it to another Hermes.

Five ways to send while it works

  • Steer

    Hermes reads it after the current step and keeps going.

  • Redirect

    Stops the current step and changes course.

  • Send Next

    Waits until this reply is done, then sends it.

  • Ask Aside

    A quick answer on the side; this reply keeps going.

  • Run in Background

    Another Hermes works on it; the result lands here.

Widgets

Replies
you can tap.

When a card is clearer than a paragraph, Hermes sends one: numbers with what changed, lists to tick, schedules, and approvals with every consequence spelled out. One plain sentence first, then the card.

A tap is a request

Nothing acts by itself. Hermes checks your answer, then shows what happened on the card.

Readable anywhere

On Telegram, Slack or the command line, every card arrives as plain text.

Private stays private

Private cards (health, money, family) stay out of previews and notifications.

Honest about time

Every card keeps when its data is from; live data is flagged once it’s out of date.

Talk

Just talk.

Hold to send a voice message, tap to talk. Hermes stops the moment you start talking and keeps going with the phone locked, and each Bot can speak in its own voice. Every word is written down too.

On the Mac

Talk on a Mac: a floating call window over a chat about Swift 6 for Trailhead, with Hermes listening at 2:14 and asking whether to flip the app target to Swift 6 mode today, with Mute, Captions and End.

On the Lock Screen

The call’s Live Activity: Hermes listening at 2:14, the last thing it said, “…and keep the weekly ones”, with Mute and End.

Each Bot, its own voice

Give each Bot its own voice; it’s the one you hear in calls, Listen and its voice messages.

Spoken is written

Every voice message has its transcript, and every call folds into a summary in the chat.

Private by default

Dictation and Hermes Voice calls are transcribed on your iPhone. Replies play by themselves only in your headphones or at your ear.

On every device

A floating window on the Mac, a panel beside the chat on iPad.

Work

Hand it the work.
Watch it happen.

Put cards on a project’s board, see what Hermes opens and changes right beside the chat, and follow the helpers it brings in.

The Trailhead Board on a Mac: cards in Running, Blocked and Review, with a card in review and its pull request’s checks beside them.

Cards that run themselves

Running, needs you, in review, done. Watch the board move in real time.

Answers in one place

A card that needs you leads with its question. Reply, and it carries on.

Review with real checks

Approve once the pull request’s required checks pass. Each card works in its own worktree.

On the web

Signs in for you.
Never sees your password.

Hermes browses for you with the logins in 1Password, Bitwarden or its own vault, each only on its own site. Cards need your OK every time. Or let it browse right in the app, and watch.

Passwords on the Mac

Passwords in Hermes’s settings on a Mac: sources Hermes vault, 1Password (unlocked) and Bitwarden (locked), 50 logins, cards and addresses. GitHub’s login from 1Password is open: username alexr, the password Hermes can’t show, one-time codes from 1Password, and it fills on github.com only.

Never sees a password

Your gateway types logins into the page. The model only ever sees which login it used.

Only on the right site

A login fills only on the exact site it’s saved for, checked again before it types.

Your browser, or a clean one

A clean browser, a copy of your own profile, a window you can watch, or the cloud.

Locks by itself

Password managers lock after 30 minutes idle. Hermes asks again when it needs one.

Learning

It gets better
with you.

Hermes writes skills for what you do often and remembers what matters about you. See all of it, approve what it keeps, and change any of it.

ios-testing xcode-build swiftui-previews app-store-listing nas-backups docker-compose synology-dsm release-notes changelog-style arxiv-digest paper-summary ios-testing xcode-build nas-backups release-notes arxiv-digest
The Memory page on iPhone: six things Hermes knows about Alex, who lives in Brooklyn and is building Trailhead, each with its menu, a fullness meter, and Tell Hermes Something to Remember.

Memory you can read

About you and Hermes’s notes, each entry editable. Changes apply from the next chat.

A map of what it knows

The skills it wrote, sized by how often it uses them, linked to the memories behind them.

  • Since August, Hermes wrote 11 skills and learned 20 things about you and your setup.

    The story so far

    The skills it wrote and the things it learned, week by week.

  • Tidying Every 7 days, when Studio Mac has been idle 2 h

    Last tidy 2 days ago: merged 2 overlapping skills, archived 3 unused ones and marked 4 as stale.

    • 2 merged
    • 3 archived
    • 4 stale

    Tidy, with undo

    It merges and archives skills you stopped using. Undo or restore any of it.

  • Save to memory? Hermes asks before keeping “Vegetarian; avoids red-eye flights.”, with Don’t Save, Save and Save All in This Chat.

    Ask before saving

    Hermes asks before it keeps something new about you. Save once, or for the whole chat.

Everywhere

One history. Every surface.

Connect to any Hermes gateway you run: a Mac mini under the desk, a home server, over Tailscale or HTTPS. Every conversation lands in one history, on every device.

  • Mac mini
  • Home server
  • Tailscale
  • HTTPS
  • The app
  • Telegram
  • Discord
  • Slack
  • CLI
Hermes on an iPad: the sidebar with Trailhead and two more projects and the pinned chats, next to an answer about Swift 6.4 for Trailhead with code and a table.
The iPhone drawer: Studio Mac's chats and projects, pinned chats and today's history, with the Chats and Bots switch.

Made for each screen

A split view on iPad and Mac, a drawer on iPhone. Keyboard shortcuts everywhere.

Connect from anywhere

One click on the Mac running Hermes, a pairing code for iPhone and iPad, and Tailscale when you’re out.

One history

Chats from Telegram, Discord, Slack and the CLI sit next to the app’s own.

Notifications

Answer from anywhere.

Hermes stops for you only when it has to. Allow a command from the Lock Screen, follow a long turn in the Dynamic Island, and pick up the reply when it lands.

The details

Made for the platform.

Projects

Chats grouped by repo and branch, worktrees included, and a composer that starts in the right folder.

Chats in a project, grouped by branch: Swift 6 migration plan on main, and Offline maps in a worktree on feature/offline-maps.

Talk

Talk to any Bot, out loud. Interrupt with a word.

Hermes speaking on a call, with the sentence it’s saying highlighted, and Mute, AirPods, Type, Captions and End.

Commands and references

One look for each: a command, a skill, a Bot, a file. Type / or @.

A command, a skill, a Bot and a file, each as its own pill: Set Goal, github-pr-workflow, @writer and Sources/Sync/Reconnect.swift.

Tasks

Hermes’s scheduled jobs: create, run now, pause and resume.

Two scheduled tasks: Check NAS backups every day at 6 AM, last run 3 hours ago, and Weekly invoice reminder on Mondays at 9 AM, next run in 21 hours.

Skills

Browse your gateway’s skills and start a chat with one.

A skill card: github-pr-workflow, open, review and land pull requests with the gh CLI, with Use.

Apps and Tools

Connect apps, add MCP servers and choose what Hermes may use.

GitHub connected as alexr on trailhead-app with 38 tools, and the filesystem MCP server, connected and switched on.

Undo for files

A turn changed something you didn’t want? Put it back.

The undo bar after a turn: 3 files changed, +41 −12, with Review and Undo.

Markdown and code

Tinted code blocks, tables, lists and quotes. Copy, share or read aloud.

A Swift code block in Xcode’s dark colors, with a Copy button.

Light and dark

Monochrome either way, with Liquid Glass throughout and Increase Contrast honored.

A Hermes answer in light mode on iPhone.
The same answer in dark mode.

Search everything

Find any chat by what was said in it. ⌘K on the Mac.

⌘ K

“reconnect”: 4 chats

Images and files

From Photos, the camera or Files. Paste, or drag and drop.

A file Hermes sent: incident-summary.pdf, 240 KB, with a download button.

Feels native

Haptics on iPhone, keyboard shortcuts on Mac and iPad.

⌘N ⌥⌘I ⇧⌘B ⌘↩

And the rest

Everything else, too.

The smaller things that make it feel made for your Mac, iPad and iPhone.

In the chat

  • Any model, any effort Pick the model and how hard it thinks, per chat.
  • Goals and plans Set a goal with /goal, or a plan to work through with /plan.
  • Edit and resend Change a message and send it again; the original stays.
  • Try again with another model Rerun a reply on a different model.
  • Branch any chat Take it somewhere new without losing this one.
  • Long chats, compacted See how full a chat is and make room in one tap.
  • Listen Any reply, read in the Bot’s own voice.
  • Dictation at the cursor Words land where you’re typing, and you can keep typing.

When it needs you

  • Questions with choices Answer with a tap, a list, or your own words.
  • Secrets in a sealed field A key Hermes asks for goes straight to your gateway.
  • Sign-ins Sign in to a site Hermes needs, in a browser sheet.
  • On the web Signs in with your logins and never sees a password.
  • Allow for the chat, or always Chat Permissions lists what you allowed, and undoes it.
  • Background tasks Send a job off with /bg; the result lands in the chat.
  • Keeps working when you leave Turns run on your computer; the chat catches up.
  • Back on its own It reconnects the moment the network returns.

Bots and projects

  • A memory for each Bot Each Bot learns and remembers on its own.
  • Shape and color, yours Pick each Bot’s face, and change it any time.
  • Pin and hide Bots Keep the roster to the Bots you use.
  • Move chats into a project A chat follows its repo, branch and worktree.
  • Helpers you can steer Stop or redirect one helper while the rest work.
  • Several gateways Switch between your Hermes machines in one tap.
  • Skills in a tray Pick skills for a message before you send it.

On your devices

  • Finds Hermes on this Mac On the Mac running Hermes, it connects in one click.
  • Pair with a code Scan the Mac’s pairing code on iPhone and iPad.
  • Away from home Reach your computer over Tailscale or HTTPS.
  • A window per chat Open any chat on its own on the Mac.
  • Quick Open ⌘K jumps to any chat, Bot, project or gateway.
  • Updates itself The Mac app is notarized and keeps itself current.
  • Accessible throughout Dynamic Type, VoiceOver, Reduce Motion, Increase Contrast.

Private by design

It talks to your Hermes.
No one else listens.

Hermes can run commands on your computer, so the app treats that seriously.

  • Your server

    The app connects only to the gateways you add. There is no Hermes cloud in between.

  • Keys stay on your device

    In the Keychain, never restored onto another device from a backup, never in a log.

  • No accounts, no analytics

    Nothing to sign up for, and no tracking in the app or on this site.

  • Sealed notifications

    Encrypted on your gateway for each device; the relay to Apple can’t read them.

  • Approvals you can read

    You see exactly what will run, hidden characters included. Flagged commands are never allowed from a notification.

  • Content stays content

    Links open only web pages, pictures from the internet wait for a tap, and previews read only their own folder.

  • Where your voice goes

    Dictation and calls are transcribed on your iPhone, and voice messages are kept on your own gateway. If your gateway has Realtime, calls use it and their audio goes to OpenAI.

Open source

Built in the open.
Built with you.

Hermes is MIT-licensed Swift and SwiftUI. Read every line, report what’s broken, or build what you want next. You don’t need a Hermes Agent to start: the repo’s mock gateway plays one.

vburojevic/hermes

Public

A native iPhone, iPad and Mac app for the Hermes Agent you run.

  • Swift 6
  • SwiftUI
  • MIT license
  • iOS · iPadOS · macOS
git clone https://github.com/vburojevic/hermes
cd hermes && xcodegen generate && open Hermes.xcodeproj
# a mock gateway: no Hermes Agent needed
python3 -I Tools/mock-hermes/backend.py \
  --port 19119 --gateway-port 18642

  • Good first issues

    Small, well-described issues to start with. Say you’re taking one, and it’s yours.

    Browse issues
  • Ideas and questions

    Suggest what Hermes should do next, or ask for help, in Discussions.

    Open Discussions
  • The roadmap

    What’s being built now and what’s next, in the open.

    See the roadmap
  • Report a bug

    What you did, what happened, your device and Hermes Agent version. Report security problems privately.

    Open an issue

Get started

Up and running in minutes.

  1. Install Hermes Agent

    On a Mac, a home server or any machine you control. Hermes Agent docs

  2. Turn on its API server

    Add these lines to ~/.hermes/.env on the machine running Hermes:

    ~/.hermes/.env
    API_SERVER_ENABLED=true
    API_SERVER_KEY=<a long random key>
    API_SERVER_HOST=0.0.0.0

    Then run hermes gateway restart. API_SERVER_HOST=0.0.0.0 lets other devices on your network connect; keep it on a trusted network, or put HTTPS in front of it.

  3. Connect

    On the Mac running Hermes, open the app: it finds Hermes and connects in one click. On iPhone and iPad, scan the pairing code from the Mac app (Pair a Device…), or enter your-mac.local:8642 and your key. Away from home, use its Tailscale address.

  4. Turn on the extras

    For Bots, projects, the Board, the Inspector, memory and undo, also run hermes serve. The app then offers its plugins, like notifications, and installs them for you.

Requirements

  • Mac: macOS 26 or later.
  • iPhone and iPad: iOS and iPadOS 26 or later.
  • Hermes Agent: the API server on (hermes gateway); Bot Mode also needs hermes serve.

Questions

Good to know.

Anything else? Get in touch from the Contact page.

What is Hermes Agent?

An open-source AI agent by Nous Research. You run it on your own Mac, home server or VPS, with the models you choose.

Do I need my own Hermes Agent?

Yes. Hermes connects to a Hermes Agent gateway you run. Setting one up takes a few minutes; see Get started.

Where do my chats live?

On your gateway. The app talks only to the gateways you add, and keeps your keys in the Keychain.

Which models can it use?

Whatever your gateway is set up with. Pick the model and the reasoning effort per chat.

When can I get it?

Now, as a public beta. Download the Mac beta above; it keeps itself up to date. On iPhone and iPad, join the public beta on TestFlight. The source is on GitHub.

Does it work away from home?

Yes. Reach your computer over Tailscale, or put HTTPS in front of its gateway. The app reconnects by itself when the network changes.

Is Hermes open source?

Yes. The app is MIT-licensed on GitHub at vburojevic/hermes. Bug reports, ideas and pull requests are all welcome; good first issues are the place to start.

Meet your agent, properly.

Public beta · Mac 1.0 · iPhone and iPad on TestFlight

Star or fork it on GitHub