Comparison Chart
Orgo is purpose-built for agents that operate a desktop, browser, or any app without a programmatic API. Pure headless backend scripts are equally well served by a VPS.
Pick your agent
Hermes Agent
Nous Research. Self-improving agent with persistent skills + memory.
OpenClaw
Open-source personal AI assistant with messaging-platform gateways.
Five steps
- Snapshot the agent’s state directory on the source.
- Provision an Orgo computer.
- Transfer the tarball.
- Install the agent with its upstream installer.
- Restore + start, then verify.
State lives in one directory
Snapshot that single directory and you preserve identity, memory, skills, and API keys.
Run the migration
SetORGO_API_KEY from orgo.ai/start, then pick the tab for the agent you’re moving.
- Hermes Agent
- OpenClaw

1
Snapshot on the source
2
Create the Orgo computer
3
Transfer the tarball in
Pick the source platform tab in Transfer the tarball. End state:
/root/Desktop/hermes-state.tgz exists on the Orgo computer.4
Install Hermes
Run any shell command in the VM via Pulls Python 3.11, Node.js,
POST /computers/{id}/bash. For interactive work, orgo ssh hermes-prod opens a live terminal.uv, ripgrep, ffmpeg. Registers hermes on $PATH. Creates an empty ~/.hermes/ skeleton, which the next step replaces.5
Restore and start
6
Verify
Transfer the tarball
A Hermes/OpenClaw tarball is usually larger than the 10 MB/files/upload limit, so pull it in from inside the computer - no size cap, no laptop round-trip. Extract on the source, put the tarball somewhere the computer can reach (a private Git repo or any temporary URL), then git clone/curl it via POST /computers/{id}/bash.
Extract on the source (see the provider page for detail):
- DigitalOcean
- Fly.io
- Hetzner
POST /files/upload drops the file straight onto the desktop at /root/Desktop/<filename>.
What carries over
Gotchas
hermes setup rewrites .env. Run the restore step after install. Don’t re-run the wizard or it overwrites the API keys you brought over.- sqlite needs disk headroom.
fsyncreturnsEIO(Errno 5) on a full disk. Size the computer with at least 2× the source state-dir as free disk. - Device-bound pairings re-pair. WhatsApp Web, iMessage, Signal. Re-scan the QR on Orgo.
- Inbound webhooks don’t hit the VM directly anymore. There’s no public per-VM hostname; reach the desktop’s API through the authenticated proxy (
https://www.orgo.ai/api/desktops/{instance_id}/proxy/<path>, with your Orgo API key), or run gateways in outbound/socket mode.
Rollback
Keep the source machine powered on with its gateway stopped until you’re satisfied. To revert:Smoke test
hermes doctor only confirms the binary is wired. To prove memory restored correctly, ask the agent something only it would know:
- Hermes
- OpenClaw
~/.hermes/sessions/ or ~/.hermes/memories/ didn’t restore - re-check the tar xzf step and that you didn’t extract before the install step ran.Troubleshooting
Gateway won't start after restore
Gateway won't start after restore
.env lost its 0600 mode during transfer, or hermes setup ran a second time and overwrote it. Restore from the tarball, then chmod 600 ~/.hermes/.env.sqlite returns 'database is locked' or fsync EIO
sqlite returns 'database is locked' or fsync EIO
disk_size_gb with a live resize:Bot is unresponsive in Slack / Discord / Telegram
Bot is unresponsive in Slack / Discord / Telegram
Two gateways online with the same bot token race for incoming messages. Stop the source:Wait 30 s, then re-test from the messaging client. If still silent, check the gateway logs on Orgo for
unauthorized-shaped errors - the bot token may have been rotated between snapshot and restore.WhatsApp QR won't load
WhatsApp QR won't load
The pairing in
~/.hermes/whatsapp/ is bound to the old device’s hardware fingerprint. Wipe it and re-pair:Upload landed but I can't find the file in the VM
Upload landed but I can't find the file in the VM
POST /files/upload drops files at /root/Desktop/<filename> inside the VM. Verify:workspaceId / desktopId mismatch.Full script
One bash file that runs the whole Hermes migration withcurl + jq. Set ORGO_API_KEY, WORKSPACE_ID, and STATE_URL (a reachable URL to your state tarball - a private GitHub raw link or a presigned S3 URL both work).
Reference
Hermes Agent docs
Full Nous Research documentation
Hermes Agent GitHub
Source + release notes
OpenClaw site
Project home
OpenClaw GitHub
Source +
AGENTS.md specDigitalOcean snapshots
Source-platform snapshots
Fly.io SSH & SFTP
flyctl ssh sftp referenceHetzner snapshots
Source-platform snapshots
Orgo SDK quickstart
computer.bash, .exec, .files