Every agent gets a sealed box
hermetic runs each Hermes agent on its own machine, in your own AWS account. Nothing on the internet can connect to it. You reach it over your tailnet, from one desktop app.
hermetic runs each Hermes agent on its own machine, in your own AWS account. Nothing on the internet can connect to it. You reach it over your tailnet, from one desktop app.
What an agent learns lives on a separate data volume, snapshotted every day and kept for seven. Recreate the machine and the same volume attaches to the new one. Destroy it and the volume stays unless you ask otherwise.
Everything runs in your AWS account. One CloudFormation stack per fleet holds the network, agent records, a bucket, a fleet role and secrets, and has no always-on cost of its own. The account is frozen at init and checked before every call.
Your Mac joins the same tailnet. The desktop app and the hermetic CLI share one core and call AWS directly. Chat with any agent, watch its browser, and run one agent or a whole fleet from the same window.
Bring an AWS profile and a Tailscale tailnet. hermetic init builds the fleet's foundation; hermetic agent create gives a Hermes agent its own sealed machine. About twelve minutes, most of it the box installing itself. Watch it in the terminal or in the app: the switch keeps your place.
what is on your data volume?
/data is my 100 GiB data volume, 1% used. My home, memory, skills and this conversation live there, so they stay put if this box is replaced. The 40 GiB system disk is 15% used.
Output formats are the CLI's own; account, names, ids and timings are illustrative. Abridged: the Tailscale setup notes init prints before the secret prompt, the tailnet confirmation and most of the 22 stack resources are cut. The atlas reply is an example. The APP view is an illustration of the desktop app's screens over the same run: the AWS and bootstrap timings are shared, the clicks are the app's own, so it reaches the chat sooner.
The desktop app and the hermetic CLI share one core. Each screen here has a command that does the same thing.
Board, table and triage show the same live fleet three ways, so a degraded agent or a stalled boot stands out before you go looking.
| Agent | Status | Health | Version | Size | Mem |
|---|---|---|---|---|---|
| 01 atlas | ready | 0.21.3 | M t4g.2xlarge | 38% | |
| 02 corvid | degraded | 0.21.1 | S r8g.large | 22% | |
| 03 kestrel | ready | 0.21.3 | M t4g.2xlarge | 17% | |
| 04 lumen | ready | 0.21.3 | M t4g.2xlarge | 61% | |
| 05 moth | stopped | 0.21.3 | S r8g.large | — |
Every bot on every box you listen to sits in one rail. The transcript lives on the agent's data volume, and hermetic keeps no copy.
↳ responding to pytest. All 212 tests pass on the new parser. I pushed the branch and left the summary in the PR description.
Ship it after the 14:00 scrape.
Name it, pick a machine, and read the monthly price before anything launches. The panel also prints the command that makes the same agent, so the next one can be a script.
Every agent runs one headed Chrome on its own display. You see the window it drives, so you can get it past a login wall and hand it straight back.
What an agent learns lives on its own EBS volume with seven daily snapshots. Destroy the agent and the volume stays, ready to give to a new one.
vol-0a91c2e47d100 GiB · us-east-1b · 7 snapshotsEvery size is Arm. A new size lands on the next recreate, and the memory comes with it.
Compute list prices, us-east-1, per month. Model usage is separate. Bar height on a log scale. ★ default.