Highlights
Pause a whole team.
“Pause team” on Teams holds every message and notice to the team’s agents and delivers them in order when you press “Resume”. Choose “After the current step” (running turns finish, nobody is woken for new work) or “Now” (presses Esc in every busy agent; on resume they are told to continue). Your own messages from the dashboard still go through. A paused team is marked on Teams and Home.
Dictation in the dashboard.
Every text field has a microphone in its corner (or press Ctrl+Shift+Space; Esc cancels). A live level meter and a timer show while you record; the text lands at the cursor and is never sent on its own. Add a speech-to-text provider under System › Connections › Dictation: OpenAI or a local Whisper server, each with its recognition language (Auto or a fixed one). Audio is kept in memory only. Browsers give the microphone only on https or on this machine (127.0.0.1, localhost).
Pick a role’s harness, model and effort.
A role’s “Launch” picker goes harness → model → effort: Claude Code, Codex or OpenCode, then a model from that harness’s list (or type any other), then the reasoning effort (OpenCode has none). Set it once in the company’s role template, or give one project’s role its own launch. New agents of the role start with it, including when you open a free seat from the dashboard. Opening or restoring an agent keeps the harness it already runs and takes the role’s model and effort only when that harness is the role’s. With nothing set, the role starts Claude Code with its own model. The model of a live Claude Code session shows next to the agent.
A handover size for each role.
A role can hand over at its own context size, in thousands of tokens: the “Handover threshold” field of the role. A node-wide size sits under System › Notifications to leads (“Or at a fixed size”), next to the share of the window. The role’s size comes first, then the node’s, and in a window not larger than that, the share. Teams shows at what size each holder hands over and where that number comes from. The dashboard recommends 300–400 thousand tokens and says why: every step re-reads the whole context, so large contexts cost more.
A new agent reads the history of its post.
An agent that takes a role sees the role’s last finished tasks, its earlier holders’ conversations (short excerpts) and their handover notes, so it starts where the last one stopped.
An easier first run.
harnsy installtells you where to start: the initiator, under “Next”. Home without a team shows “Start your first team” with a link to it. “Open an agent here” in the initiator starts an agent in the project folder, and “Open an agent” on a role’s free or invited seat opens an agent already seated on that role.Upgrades restart harnsy.
Run the installer again and it replaces the binary and restarts a node that runs the old build: at a terminal it asks first, without one it restarts and says so (on Windows, run it in a PowerShell window). Agents keep running during the few seconds the bus is down. INSTALL.md has a new “Upgrading” section: what is kept, how to check the version, how to go back to an older release.
An agent stopped for a missing permission is now visible.
When Claude Code refuses an action for lack of a permission and the agent then waits for you, its row shows red “blocked: no permission” with what was refused, and in tmux its terminal tab turns red. Before, it looked like an ordinary wait.
Task updates arrive together.
An idle agent gets its task updates as one message,
harnsy: N updates for you, about a minute after the last one and at most three minutes after the first, instead of being woken for each. A busy agent gets them when it next looks. Your own decisions on a card (accept, rework, comment) still go at once. A role change joins the next batch. The waits are set in the config (notices.batch_quiet,notices.batch_max; 0 sends at once, as before).Fewer needless messages between agents.
The agent guide now tells agents not to send acknowledgements, to send one report per finished step to whoever acts next, and to let a task’s own updates serve as the report. It also says where each thing you tell the lead goes, and that an item with more than one criterion gets a checklist.
Handover at 40% of the window by default.
It was 70%. Agents are asked to hand over earlier, while their context is still cheap to carry. A value you set in the config or on the dashboard is kept.
Calmer Home and Teams.
Teams has the same project column as Home, Tasks and Changes, and a click on a project opens its team. The project column is always there, even with one project, and can still be folded. Agent cards on Home are compact: the terminal button sits next to the name and the status is said once. “For information” is folded by default, with its count in view, and “Hide all N notices” hides every notice that can be hidden at once; questions and permission requests stay. On Agents, short-lived service sessions (
claude -p, SDK runs) are tucked behind “show service sessions (N)”.#N in task texts is a link.
A task number such as #388 in a task’s text opens that task in the same card (“←” goes back). Numbers in code spans, URLs and unknown tasks stay plain text.
The terminal icon opens the terminal ready for typing.
On Agents, Teams, agent profiles and task cards, the icon opens the agent’s terminal in input mode with the cursor in it. A team’s lead can also close any tab of its agents, including a previous lead’s and a released agent’s.
Roster shows each role’s documents.
A count such as “3 docs (1 own)” tells you how many documents a role reads, its own plus the project’s it inherits; a click opens the role with them.
“Show sub-items” on the task board.
Every sub-item of your requests appears as its own card in the column of its state, with a dashed border and its parent’s name. The choice is remembered.
Upgrading. Run the install command again. The database updates itself on first start. The installer restarts the running node on the new build; at a terminal it asks first.
Full release notes on GitHub ↗