Petasos

Complete documentation for Petasos on iPhone, iPad and Mac. For the five-minute version, see quick-start.md.


Contents

  1. What Petasos is (and isn't)
  2. Requirements
  3. Pairing a gateway
  4. The Activity cockpit
  5. Sessions and chat
  6. Organising: categories, channels, pinning, archive
  7. Approvals
  8. Scheduled jobs (cron)
  9. Multiple gateways
  10. macOS-specific features
  11. Settings reference
  12. Privacy and data handling
  13. Troubleshooting
  14. Glossary

1. What Petasos is (and isn't)

Petasos is a client. The intelligence, the tools, the files and the conversation history all live on your Hermes Agent gateway, running on hardware you control — a home server, a workstation, a VPS.

Petasos has no backend of its own. There is no Petasos account to create, no server of ours in the path, and no copy of your data anywhere but your device and your gateway.

This has one consequence worth stating plainly: if your gateway is unreachable, Petasos can't do much. It will show you cached session titles and let you browse Demo Mode, but live work requires a live gateway. Most problems people hit with Petasos are really network problems between the app and their own server — see Troubleshooting.


2. Requirements

iOS / iPadOS 17 or later
macOS 14 (Sonoma) or later
Gateway A reachable Hermes Agent gateway
Purchase One Universal Purchase covers iPhone, iPad and Mac

Your gateway must be reachable from the device — over your LAN, a VPN such as Tailscale, or a public hostname. Petasos does not tunnel or proxy anything on your behalf.


3. Pairing a gateway

Demo Mode first

On first launch, tap Try Demo Mode. This loads the complete interface with example data and no network activity at all. Nothing you do in Demo Mode touches a real gateway. Leave it any time from Settings.

Option A — QR pairing (fastest)

On the machine running your gateway:

hermes-pair-qr

This prints a QR code encoding your gateway URL and credentials. In Petasos, tap Scan pairing QR code and point the camera at it. The app pairs and connects in one step — nothing to type.

On macOS, you can also import a QR from an image file, drag one onto the pairing window, or simply copy it to the clipboard — the app detects it automatically.

Option B — Manual entry

Tap Or enter manually and provide:

Petasos probes /api/status first and tells you what the gateway expects before asking for credentials, so a typo in the URL surfaces immediately rather than as a failed login.

Option C — From an already-paired Mac

Mac → Settings → Pair iPhone or iPad… displays a QR code for your phone to scan. Useful when the Mac is already working and you don't want to re-derive the credentials.

Where credentials live

In the device Keychain, and nowhere else. They are transmitted only to the gateway address you configured. Each paired gateway keeps its own credentials, sessions, categories and unread state, fully separate from the others.


4. The Activity cockpit

Activity cockpit

The cockpit is what makes Petasos more than a chat client. It shows, live:

Panel What it tells you
Tool activity chart Rate of tool calls over time — the agent's "pulse"
Sessions How many are busy versus total
Subagents Delegated work in flight, with tool-call counts
Processes OS processes the agent started, with PID and uptime
Live feed Turn starts and finishes, subagent spawns, process events

Refresh interval is adjustable — 5s, 15s, 30s, 1m, 2m, 5m. Faster gives a livelier feed at the cost of battery and gateway traffic. You can pause polling entirely and refresh on demand.

Stopping things: tap the stop control beside any running session or process to interrupt it. This sends a real interrupt to the gateway, not a UI-only cancel.

A note on the chart: it plots samples collected within the selected time window. If you pick a 5-second window you'll usually see "Collecting activity…", because almost no samples fall inside five seconds. Use 1m or 5m for a meaningful curve.


5. Sessions and chat

Chat transcript

Starting a session

Tap + (iOS) or press ⌘N (Mac). If the gateway is unreachable, Petasos tells you why and retries rather than failing silently.

The transcript

Composing

Control Does
Mic Dictation, transcribed on-device
+ Attach a file
Send Submit the prompt

Dictation records first and transcribes when you stop, rather than streaming. This is deliberate: streaming transcription fails silently when the on-device speech model isn't present, and a recording that transcribes reliably afterwards beats one that looks live and loses your words.

Auto-scroll has three modes in Settings: always follow, follow only when already at the bottom (default), or never.


6. Organising: categories, channels, pinning, archive

Sessions list

Scope note: on macOS the category tree is currently stored on that Mac rather than synced from the gateway. It is labelled as such in the UI. When gateway-side org sync lands, your local tree becomes the starting state.


7. Approvals

When the agent wants to run something that needs permission, Petasos surfaces it wherever you are:

Approving or denying sends the decision to the gateway immediately. If you have several pending, the menu bar shows the first three and a count of the rest.


8. Scheduled jobs (cron)

Create recurring agent jobs in plain language — "every day at 8am", "every 10 minutes" — which Petasos translates into a cron expression (and parses back, so you can edit either way).

Demo Mode seeds example cron jobs on iOS but not on macOS.


9. Multiple gateways

Pair as many as you like — a home server and a work VPS, say — and switch instantly.

Each gateway keeps its own sessions, categories, unread state and cached history. Switching tears down the old connection cleanly before opening the new one. Removing the active gateway switches to the next one, or disconnects if it was the last.


10. macOS-specific features

macOS split view

The menu bar cockpit

A glance at your agent without leaving what you're doing: busy sessions, active subagents, running processes, and anything waiting on you. Approval requests can be answered inline from the menu bar. Open the app, start a session, reconnect or quit from the same menu.

Windows and layout

Keyboard shortcuts

Shortcut Action
⌘N New session
⌘F Search sessions
⌘K Command palette
⌘R Reconnect
⌘. Interrupt current run
⌘1 Toggle Activity
⌘, Settings

11. Settings reference

Settings

Appearance — Auto / Light / Dark; six colour themes; text size; reduce motion; two app icons (iOS).

Chat — streaming markdown; code syntax highlighting; timestamps; auto-scroll mode.

Activity — refresh interval; toggles for subagents, processes and the live feed.

Notifications — banners for approvals, completions and cron runs; whether banners appear while the app is frontmost; unread indicators.

Sounds / Haptics — a master switch plus per-event control for approvals, completions, errors and taps.

Gateways — the paired list, add, pair by QR, switch, remove.

Data & Privacy — anonymous error reports (off by default); Export diagnostics log.


12. Privacy and data handling

Privacy policy: https://petasos.tabotec.com/privacy.html


13. Troubleshooting

The gateway shows red / "Idle"

Work through these in order:

1. Is the gateway reachable at all? From any browser on the same network:

https://your-host:8443/api/status

JSON back means the server is healthy and the problem is the app or the path between them. Nothing back means the problem is your server or network — start there.

2. Are you on the VPN? A tailnet address like yourbox.tailnet.ts.net resolves only while Tailscale is connected. If the VPN drops, the hostname stops existing and the app cannot find the server. This is by far the most common cause.

3. Is the URL stale? If your gateway's LAN IP changed — a new router, a DHCP lease — a stored 192.168.x.x address will no longer work. Prefer a hostname or tailnet name, which don't go stale.

4. Were the credentials rejected? Repeated failed logins can trigger the gateway's rate limiter, after which even the correct password fails for a minute or two. Wait, then re-pair — ideally by QR, so there's nothing to mistype.

5. Export the diagnostics log. Settings → Export diagnostics log. It records connection attempts and the real underlying error. Two you'll see often:

Log line Means
A server with the specified hostname could not be found DNS failure — usually VPN disconnected
Sign-in rejected — check the username and password Credentials wrong, or rate-limited

New session does nothing

Almost always a dead connection. The app should tell you and retry automatically; if it doesn't, check the gateway status first.

The Activity chart says "Collecting activity…"

The selected time window is shorter than the sample interval. Switch to 1m or 5m.

Sessions are missing after a gateway restart

Gateway restarts invalidate runtime session IDs. Pull to refresh; stored sessions reappear. Empty sessions that were never written to may not be listed by the server.


14. Glossary

Term Meaning
Gateway The Hermes Agent server you run. Petasos connects to it.
Session / thread One conversation with the agent.
Subagent A helper agent the main agent delegates work to.
Turn One request-and-response cycle.
Approval A permission request from the agent before running a tool.
Cron job A recurring scheduled agent task.
Demo Mode Full interface with example data, no gateway needed.
Pairing Storing a gateway's address and credentials on the device.

Petasos is an independent client for the open-source Hermes Agent by Nous Research, and is not affiliated with or endorsed by Nous Research.