
Secure Administration for Critical Infrastructure: Energy, Water, and Utilities
When Operational Reliability Is the Regulation Most regulated industries have a data-protection focus: customer …

For most of this year we were building two terminal agents. AGTerm had a CLI and an orchestration layer of its own, and Calliope CLI was growing in parallel as the multi-provider agent. They overlapped in the obvious ways: two agent loops, two config formats, two answers to “which one is the Calliope agent?”
An audit in early July said it plainly: the platform ships two terminal agents, and that muddies both the pitch and the roadmap. Every feature request had to pick a codebase. Every security control had to be built twice or exist in only one place, which is worse.
The fix took two releases. Calliope CLI 3.0 cut itself down to a small, governed core: 22 commands, hash-chained audit logs, budget caps, a policy hook, local-model support. Then AGTerm 1.6 deleted its own CLI and orchestration and vendored Calliope as the engine.
The result is one agent everywhere. The same engine runs in the web terminal, in Zed and JetBrains through ACP, in CI through headless mode, and on a laptop against a local model with no network at all. A session started in any of them writes the same tamper-evident audit trail, respects the same budgets, and passes the same policy gate.
The lesson we would give our past selves: the second agent never earns its keep. Consolidate on the one with governance, and make everything else a surface for it.

When Operational Reliability Is the Regulation Most regulated industries have a data-protection focus: customer …

AGTerm is our web terminal for AI coding agents: Express, node-pty, and tmux on the server, Next.js and xterm.js in the …