termroam
TermRoam · field guide

Graduating from OpenClaw and Hermes to coding agents

If you already run OpenClaw or Hermes Agent, you've made the hard part of the leap: trusting an agent that lives on a server, not in a browser tab. This guide covers what changes once that agent starts writing to a repository instead of your calendar — the 2026 security lesson that made network isolation non-negotiable, and the concrete steps from "assistant on a box" to your first disciplined coding-agent session.

01

What personal assistants already taught you

The interesting part of OpenClaw or Hermes Agent was never the chat window. It was the decision, somewhere under the hood, to give a language model a persistent process instead of a single request-response call. A resident assistant sits on a machine that stays powered on, holds state between conversations, and executes tool calls — reading your calendar, drafting an email, toggling a smart-home switch — on a schedule or in response to a message you send from your phone while you're nowhere near the machine itself.

That's a bigger trust leap than it looks like from the chat UI, and if you run one of these tools daily, you already made it. You gave a process standing credentials to real accounts and let it act while unsupervised. The interesting engineering wasn't the model getting smarter; it was infrastructure — an always-on server, a way to reach it from anywhere, a way for the agent to keep working after you close the laptop.

A coding agent is built on exactly that same shape: a long-lived process, reachable from anywhere, holding state, acting on standing permissions. What's different is what it's been handed permission to touch, and that difference is the entire subject of this page.

02

The capability ladder

Line up the tools you might hand an AI system and a pattern falls out: each rung keeps everything the rung below could do and adds one new class of access — and every new class of access is also a new class of risk. Climb it one step at a time and narrate both halves honestly:

capability ladder — climb one rung at a time
rung 1

Chatbot

Stateless request → response

rung 2

Personal assistant

Persistent process, standing tool access

rung 3

Coding agent

Writes to a shared, permanent history

rung 4

Parallel agent fleet

Concurrent writers, shared object store

Each rung is a real product decision teams ship today. Press start to see what you gain — and what you now own — at each one.

Rung three is where this guide is headed, and it deserves its own page: what an AI coding agent actually is walks through the loop — prompt, tool call, observe, repeat — in detail. What matters here is the throughline: assistants and coding agents are the same architecture pointed at different, higher-stakes surfaces, and the discipline required scales with what's on the other end of the tool call.

03

What changes once the agent can write to a repo

An assistant's mistakes are mostly transient. A mis-sent email is embarrassing; a wrong calendar invite gets deleted. Annoying, recoverable, contained to the moment it happened. A repository does not forgive that way, because of one structural fact: a git repository is shared, mutable-by-convention, but permanently-recorded state. Every clone of it — your laptop, a teammate's machine, a CI runner, production's deploy source — is a copy of the same history, and once a commit is pushed to a branch others build on, it doesn't just describe a change; it becomes the foundation the next hundred commits are written on top of.

That changes what a mistake costs. A coding agent that commits a broken dependency bump doesn't waste a moment — it breaks the build for every clone until someone notices and reverts. One that commits a leaked credential doesn't just expose it once — the credential sits in history, retrievable by anyone with clone access, until someone rewrites history to remove it (which is its own hazard on a shared branch). Mistakes on a chat surface are ephemeral. Mistakes in a git history compound, because the next hundred actions — yours, a teammate's, another agent's — are built on top of whatever was there.

This is exactly why the practices that feel like overhead for a personal assistant — code review, small commits, isolated working copies per writer — stop being optional the moment an agent's actions land in a repository other things depend on. Not because coding agents are less trustworthy than assistants; because the medium they write to remembers, and shares, everything.

04

The 2026 reckoning: OpenClaw's security lesson

OpenClaw earned its popularity honestly — hundreds of thousands of people run a resident agent on a server because the model of "always on, reachable from anywhere" is genuinely useful, and the project proved it at scale. Then, in March 2026, that same scale became a liability, and it's worth understanding precisely what security researchers reported rather than the flattened version that spread afterward:

None of that is a verdict on running a personal assistant, and it isn't a knock on OpenClaw's maintainers, who patched fast once the reports landed. It's a case study in what happens when a capable, tool-using process sits on a public port at scale: vulnerabilities in any widely deployed software are a matter of when, not if, and the instances that paid for it were the ones a scanner could reach in the first place.

precision notes — reading this claim correctly

Vendor- and time-specific. These figures describe OpenClaw specifically, in March 2026, as reported by the researchers who disclosed them — not a general property of personal-assistant software. Hermes Agent, which absorbed much of the reliability-minded migration afterward, is a different codebase with a different security history.

Two separate failure classes. The CVEs are bugs in OpenClaw's own code. The ClawHub finding is a supply-chain problem — third-party skills running with first-party permissions. A public port makes either one exploitable from anywhere; fixing the port doesn't fix the code, and fixing the code doesn't fix the port. Both mattered here.

OpenClaw ships a patch for the CVSS 9.9 flaw. Does that alone make a publicly-exposed instance safe again?

Patching fixes the specific CVE. It does nothing about whether the instance is reachable from the entire internet — which is what let scanners find all 135,000-plus instances in the first place. Removing the public port removes the exposure regardless of which vulnerability comes next; patching only ever answers for the one already found.
05

Exposure surface: the fix isn't a stronger password

The general lesson underneath the OpenClaw timeline has nothing to do with OpenClaw specifically: an agent with real tool access needs a private network perimeter, not a public port. Internet-wide scanners don't guess at your domain name — they enumerate the public IPv4 address space directly, port by port, and fingerprint whatever answers. A service only gets scanned if it has a public address and an open port to answer on. Remove either one and the scanner gets nothing to fingerprint, patched or not.

A private network — a VPN, or a mesh overlay often called a tailnet — solves this at the network layer, before any application code runs. Machines on it get addresses that exist only inside that private routing table; no public listing points to them, and a scanner working through the public internet has no path in. Reaching the agent from your phone still works, over an encrypted tunnel from a device that's already a member of the network — which is the same reachable-from-anywhere property OpenClaw and Hermes rely on, just routed privately instead of broadcast to everyone. SSH keys are the other half of this: authenticate the human, not just the network, before anything with tool access accepts a command.

exposure surface — same agent, two networks
chat API — :443 SSH — :22 skill installer admin dashboard browser-automation endpoint
Pick a network above, then run a scan sweep.
Same agent, same five tool endpoints, two different networks. Watch what a scan sweep finds on each.

Nothing about the agent's code changed between the two toggles above — same skills, same tool access, same eventual bugs waiting to be found. What changed is whether a stranger's scanner can reach it at all. That's why network placement is the first control, not an optional hardening step for later: it's the one thing that protects you against vulnerabilities that haven't been disclosed yet.

06

The agent stack: two substrates, not one

The consensus that formed across 2026 is to stop running one resident process for everything. A personal assistant and a coding agent have different risk profiles, different lifecycles, and — this is the part that's easy to skip — different blast radii if either is ever compromised, so the practical answer is to keep them on separate, properly isolated substrates rather than one box wearing two hats.

In practice this means: your assistant and your coding agent can both live on a VPS — even the same provider, even the same private network — but as separate hosts or clearly separated environments with their own credentials, not one process granted both sets of permissions because it was convenient to set up once.

07

Git discipline: the boundary a coding agent needs

Network isolation keeps strangers out. Git discipline is the matching control for the agent you deliberately let in — the one you're paying to write code, whose mistakes now compound the way section 3 described. None of this is exotic; it's the same handful of habits that make git safe for AI agents in general, applied from day one instead of retrofitted after an incident:

One step, one commit, pushed immediately.The smaller the unit of work, the smaller the window where a mistake sits uncommitted and unrecoverable, and the easier a bad step is to spot and revert on its own.
A review gate before anything reaches a shared branch.The agent proposes; a human or an automated check confirms before the change becomes the foundation other work builds on. Treat "the agent said it's done" as a claim, not a fact.
One writer per working copy.An agent gets its own isolated checkout — a separate worktree or clone — never a folder you or another agent are simultaneously editing. Two writers in one working tree produce commits that silently clobber each other; git raises no error because every individual command is valid.
Standing rules committed to the repo, not repeated in every prompt.Never force-push, never rewrite pushed history, never commit secrets, stop and report on a merge conflict. Written once where the agent reads it, not re-explained every session.

None of this requires distrusting the agent more than you already trust OpenClaw or Hermes with your calendar. It requires recognizing that the medium changed. A calendar entry you can just delete; a pushed commit is something you have to consciously undo, on purpose, in front of whoever already pulled it.

08

The graduation path

None of the above requires a rebuild of how you already work — it's five concrete steps from "assistant on a box" to a first coding-agent session done safely:

  1. Get a VPS if the coding agent isn't sharing infrastructure with your assistant already — a small always-on machine you don't have to keep your laptop open for. See why your agent needs a home that isn't your laptop for the failure modes a laptop introduces (sleep, wifi drops, a dead battery) that a server doesn't have.
  2. Put it on a private network before anything else runs. VPN or tailnet, set up first — not bolted on after the agent is already live on a public port. Section 5's sim is the reason: exposure is a network-layer decision, made once, not a per-service setting you have to remember everywhere.
  3. Set up persistent sessions. The same lesson your assistant already taught you — work should survive you closing the laptop — applies to a coding agent mid-task even more, since a task can run for hours. A session that dies with your SSH connection loses exactly the work in flight.
  4. Run your first coding agent session against a real but low-stakes repo. Not production on day one. A side project or a well-tested internal tool, where a bad commit costs you an afternoon, not an incident.
  5. Adopt the git discipline from section 7 from the first commit, not after the first collision. Small commits, a review gate, one writer per working copy. Retrofitting discipline after a mess is much harder than starting with it.

How TermRoam handles this

TermRoam is built for exactly this graduation: an always-on, private-network-friendly server with persistent terminal sessions that survive disconnects, and a coding-agent execution model with the review gates, one-writer-per-worktree isolation, and commit-by-commit verification from section 7 built in rather than left for you to assemble by hand.