Two Releases, One Big Step: Hermes, Work Directory Mode, and Resumable Follow-ups
The last two releases both changed how agents actually work with your files and your conversations, so it's worth covering them together. v2.2 shipped a new kind of provider and a new way for agents to touch your code. v2.3 fixed the most annoying thing about follow-up tasks and added the ability to stop a task without waiting it out. Here's everything, in one place.
Hermes: an agent that remembers
Every provider before Hermes was stateless in the same way: each task started from zero, with no memory of what happened last time. Hermes breaks that pattern. It's a stateful AI agent with persistent memory, backed by SQLite, that maintains a continuous conversation thread across dispatches, restarts, and sessions.
That has a concrete effect on how you use it: when you send a follow-up task to a Hermes agent, it already knows what happened in the previous one. No re-explaining context, no re-pasting the original instructions. Hermes also auto-generates skills over time — patterns and capabilities it accumulates as it works, rather than relearning them on every run.
Each agent maps to its own isolated Hermes profile directory (~/.hermes/profiles/{agentId}/), with its own model config, identity file, and credential symlinks. Agents running different models or filling different roles never share state with each other.
Work Directory mode: edit the repo directly
Before v2.2, every task ran in an isolated output folder — the agent generated files, but never touched anything outside that sandbox. Work Directory mode changes that: point a task or Routine at an entire folder — a full repository, a project directory, any subtree on your Bridge machine — and the agent operates directly inside it. It reads existing code and edits files in place instead of writing into an isolated copy.
You can narrow the scope to specific files or subfolders with the built-in path picker, or leave it open and let the agent decide where to act across the whole directory. This is what makes in-place refactors, bug fixes, and multi-file feature work possible — the agent is editing the code you actually care about, not a disconnected copy of it.
A new binary, and a setup wizard
v2.2 also renamed the Bridge binary from ctrlnode-bridge to ctrlnode, and introduced ctrlnode --setup — an interactive wizard that asks for your workspace root and pairing token, then writes both to .ctrlnode/.env and persists your workspace path as a user environment variable. No manual file editing required. Available for Windows x64, Linux x64, and macOS Apple Silicon.
Follow-ups that remember the conversation
This is the headline of v2.3. Previously, a follow-up on a completed task started from a blank slate — the agent had to be re-told everything about the original run, every time. Now, for providers with native session support (Claude Agent SDK), a follow-up resumes the original session: full conversation history carried forward, no re-prompting.
The session ID is saved to disk when a task completes, so it survives Bridge restarts. A fresh dispatch — like hitting RERUN — always clears the cached session, so it never accidentally resumes a stale one by mistake.
For providers without native session history — Codex, Hermes CLI/ACP, Gemini, Copilot — follow-ups get a different fix: the prior run's agent log is automatically prepended as context, so even a stateless provider knows what was already done before responding to the follow-up.
Cancel a task without waiting it out
Tasks can now be cancelled mid-run, directly from the CTRL NODE UI. Bridge signals the active provider to stop immediately — a clean termination signal for CLI-based providers (escalating if the process doesn't exit within a few seconds), or an abort call for SDK-based ones. It works the same way across every supported provider, so cancelling a Claude task and cancelling a Copilot task behave identically from your side.
Agents that ask instead of failing silently
When an agent hits a permission prompt it can't auto-approve, it used to just stall or fail without explanation. Now it notifies the UI that it's waiting for input, and you can respond directly from the task view. Claude Code supports this natively today; ACP-based providers (Copilot, Gemini, Hermes ACP) currently log the prompt for visibility, with full interactive response support planned for a future release.
Two new models
Rounding out v2.3: Claude Fable and Sonnet 5 are now selectable when configuring any Claude-type agent, alongside the rest of the existing model lineup — pick them from the same model combobox you'd use for any other model.
Try it
All of this ships in the current Bridge release — update the binary and restart, no configuration changes required for existing setups. If you're setting up for the first time, ctrlnode --setup gets you there in one step. Full details for each release are in the changelog.