What's new in Runner

Every release, newest first. Runner updates itself on macOS and Windows and keeps your settings, chats and missions, so you rarely need to download it again.

Every release, newest first. Runner updates itself on macOS and Windows, so you rarely need to download it again.

0.12.9

LatestBug-fix release

Runner 0.12.9 is a bug-fix release for macOS and Windows on top of 0.12.8.

Bug fixes

Crew messages no longer submit your unsent pi draft

#799

If you had typed into a pi session's input box without pressing Return, a crew message could be added to your text and submitted together with it, even when the draft was a single character. Runner now waits until pi's input box is empty, then delivers the message once without sending your text. Pressing Return still sends your prompt as before.

Antigravity commands run in the session's folder

#787

In missions and chats, Antigravity could run task commands and write files in Runner's own hooks folder instead of the folder the session was started in. Each turn now tells Antigravity the session folder, so commands and files go there by default. A folder you add yourself is still available.

macOS · Apple Silicon, macOS 12+

Runner-0.12.9-arm64.dmg
Download

Windows · x64, Windows 10 1809+

Runner-Setup-0.12.9.20261004.1302-x64.exe
Download

0.12.8

Feature release

Runner 0.12.8 is a feature release for macOS and Windows on top of 0.12.7.

New

Start chats and missions from the keyboard

#772

In Start a chat and Start mission, ⌘↵ (Ctrl+Enter on Windows) confirms from any control, including an open picker or the mission goal box. ⌘1 and ⌘2 (Ctrl+1 and Ctrl+2) switch between Direct and Role, the form opens with its first picker focused, and the arrow keys move through pickers.

Shortcuts for New terminal and New mission

#772

⌘T (Ctrl+Shift+T on Windows) fills a focused empty pane with a terminal, or opens a terminal tab for the active project. ⇧⌘M (Ctrl+Shift+M) opens Start mission. Both can be changed in Settings → Keyboard shortcuts, the + menus show their current bindings, and the command palette now has New chat and New mission.

Bug fixes

Enter in the model field picks a model

#792

With suggestions available, Enter opens the model list or selects the highlighted model instead of submitting the form; ⌘↵ (Ctrl+Enter) still submits. This applies to Start a chat and the role and crew pages.

Pickers stop blinking on Enter and Space

#772

A selector no longer flickers when the key is released, and the option highlighted from the keyboard stays in view while the list scrolls.

Cancelling a pi turn shows Interrupted

#784

Pressing Esc while pi was working showed Response failed. A cancel now shows Interrupted, and a real error still shows Failed.

Claude Code resumes chats started from a symlinked folder

#785

A chat whose folder was reached through a symlink, such as /tmp on macOS, started a new conversation when resumed. It now continues the original one.

Copilot resumes the conversation after /clear

#786

Resuming a Copilot chat after /clear reopened the history from before the clear. It now reopens the new conversation.

Codex chats with a custom CODEX_HOME can resume

#781

Runner looked for Codex conversations only in ~/.codex, so a chat whose role or environment set CODEX_HOME was never linked to its conversation and started fresh when resumed or forked. Runner now reads CODEX_HOME from the role first, then from its own environment, and falls back to ~/.codex.

No late inbox notice for a message already read

#766

When a crew message notice was held for a slot, Runner could deliver it after the agent had already read the message. It now drops a held notice the agent has already read.

0.12.7

Bug-fix release

Runner 0.12.7 is a bug-fix release for macOS and Windows on top of 0.12.6.

Bug fixes

Cancelling a turn shows Interrupted again

#783

Since 0.12.5, pressing Esc or Ctrl+C in Claude Code, Antigravity or Copilot stopped the agent, but Runner kept showing Working until the next turn. Runner now marks the turn Interrupted as soon as you cancel, including when you cancel a running tool in Claude Code.

Copilot approvals clear after you approve and then cancel

#783

A Copilot tool you had approved and then cancelled kept showing its approval request. A request you have not answered yet still stays until you answer it.

0.12.6

Feature release

Runner 0.12.6 is a feature release for macOS and Windows on top of 0.12.5.

New

Create roles and crews on their own pages

#768

New role and New crew now open the role or crew page in a creating state instead of a modal. A new role gets the full setup, including effort, which role creation could not set before, and shows a generated avatar while you type its handle. Create opens the new role or crew; Cancel returns to where you started.

Open role and the full prompt in the chat side panel

#731

A role chat's side panel links to its role page and shows the role's prompt as formatted text, collapsed to a few lines with Show all and Show less.

Changes

⌘W closes the tab, not the window

#725

⌘W now closes the innermost thing: a focused drawer, then the focused pane of a split, then the tab. A chat tab asks before archiving, a terminal running a command asks before closing, and the next tab in the sidebar becomes active. ⌘W never closes the window; ⇧⌘W does, and the menu lists both. On Windows the keys are Ctrl+Shift+W and Alt+F4, so Ctrl+W deletes a word again in shells, Claude Code and Codex. The archive and close prompts confirm with Enter and cancel with Escape.

Bug fixes

Long sidebar names end in an ellipsis

#769

Chat, mission and project names were cut off mid-letter. A row's status and its … button now share one spot, so nothing shifts when you hover a row.

Starting a chat can no longer freeze Runner on a stalled status watcher

#774

Setting up an agent's status tracking now gives up after 10 seconds, and the chat starts without its working and idle status instead of hanging. This was seen only in automated tests on Windows.

0.12.5

Feature release

Runner 0.12.5 is a feature release for macOS and Windows on top of 0.12.4.

Before you upgrade

This release changes the database: it removes the crew purpose and goal fields. Once 0.12.5 has opened your data, earlier Runner versions can no longer read your crews, and the removed values cannot be recovered. To keep the option of going back, quit Runner and copy runner.db, runner.db-wal and runner.db-shm from ~/Library/Application Support/com.wycstudios.runner (macOS) or %APPDATA%\com.wycstudios.runner (Windows) before upgrading. (#729)

New

A redesigned Start a chat

#735

The modal now follows the role and crew pages. Pick a role or an agent and see what the chat will run on: its runtime, model and effort. Change any of them for this chat alone; a changed control shows the role's value and a Reset.

Model and effort in the chat side panel

#756

The panel leads with the role's avatar, or the agent's mark for a chat without a role, and shows the runtime, model and effort the chat actually runs with. Unset values read default. The command and working directory now come from the chat itself, so a chat started on another agent or in another folder shows what it really runs.

Changes

Crews no longer have a purpose or goal

#729

Neither field was used since the crew page redesign. runner crew create and runner crew update no longer accept --purpose or --goal. A crew's conventions stay in its prompt addendum, and each mission keeps its own goal (runner mission start --goal).

Bug fixes

Start a chat no longer shows a stale default model

#762

The model field shows the role's model or default, and opening the modal refreshes the model list instead of reusing one cached for up to 10 minutes.

The weekly usage pill shows every enabled agent

#752

It showed only agents that had recently run a chat. It now shows each installed, enabled agent that reports usage, the same set as the usage popover.

Shift+Enter inserts a newline in pi

#755

Runner now supports the kitty keyboard protocol, so a two-line prompt in pi is no longer sent as two messages, and Alt shortcuts keep working.

Japanese kana render correctly in the macOS terminal

#730

One of Runner's own font fallbacks could draw kana as unrelated Han characters.

0.12.4

Bug-fix release

Runner 0.12.4 is a bug-fix release for macOS and Windows on top of 0.12.3.

Bug fixes

Keep crew messages flowing to Codex on Windows

#753

Inbox notifications could accumulate in Codex's input box without being submitted, delaying communication between mission members. Runner now gives pasted notifications more time before sending Enter. The fix was verified with native Windows Codex sessions receiving messages both while working and while idle.

0.12.3

Feature release

Runner 0.12.3 is a feature release for macOS and Windows on top of 0.12.2.

New

Run Antigravity CLI in Runner

#644

Start direct chats and crew missions with agy, choose supported models and effort levels, and resume conversations after relaunch. Runner detects the CLI and lists its skills and MCP servers in Settings. Mission slots use Bypass permissions; direct chats follow Antigravity's own permission settings.

See Antigravity models and usage

#747

Runner discovers models from your signed-in CLI, shows quota in the usage popover and weekly indicator, and installs the Runner skill for Antigravity.

Antigravity CLI support on Windows is included, but native Windows smoke testing is still pending.

Bug fixes

Keep Antigravity chats on the right conversation

#747

Using /new, /fork, or /resume now updates the saved conversation for the next relaunch. Esc and Ctrl+C no longer leave the activity status stuck on Working.

0.12.2

Bug-fix release

Runner 0.12.2 is a bug-fix release for macOS and Windows on top of 0.12.1.

Bug fixes

Scroll Codex transcripts with the mouse wheel

#724

Wheel input now uses the pointer's terminal position, so a pinned prompt header no longer prevents transcript scrolling.

Paste copied files from File Explorer

#742

Ctrl+V now inserts absolute file paths into an agent terminal, including multiple files, without submitting the prompt.

0.12.1

Bug-fix release

Runner 0.12.1 is a feature and bug-fix release for macOS and Windows on top of 0.12.0.

New

Choose Codex Speed in Runner

#740

Select Inherit, Standard, or Fast in role settings, Start Chat, and crew-slot overrides. Explicit chat and slot choices survive Resume, and Fast shows a reminder about higher credit use.

Configure Speed from the CLI

#743

Use --speed inherit|standard|fast with runner role create/update, runner crew add/set, and runner chat start. Inspect the choice in human-readable and JSON output without editing raw Codex arguments.

Bug fixes

Resume the right conversation after Codex /clear

#738

Resume and Fork now use the new conversation instead of reopening the context from before /clear.

Recover Codex status after rollback

#736

A conversation rollback and restart no longer leaves the status stuck at “Status unavailable” while Codex continues working.

0.12.0

Feature release

Runner 0.12.0 is a feature release for macOS and Windows on top of 0.11.5. It redesigns the role and crew pages and brings undo to every text field.

New

A new role page

#393

A role opens as a profile: its pixel avatar, name and handle, Chat now and Edit, then its setup (runtime, model, effort, permissions, command and working directory), the crews that use it, and its activity. The system prompt sits beside it, rendered as markdown and collapsed to its first lines until you choose Show all. Edit works in place on the page, with a Markdown | Preview switch for the prompt.

The role list is a table

#393

Each role gets one row showing its runtime, model, effort, crews and last activity. Hover over a row to start a chat. The count shows the total, and while you search it shows how many roles match.

A new crew page

#699

A crew opens the same way. On the left are a picture made from its slots' avatars, its lead, Start mission and Edit, and then its slots. On the right are the team conventions, rendered as markdown, and the crew's missions. Drag a slot to reorder it. Click a slot to compare its setup with its role's and to change its runtime, model and effort overrides in place.

The crew list is a table

#699

Each crew shows its picture, runtimes, mission count and last mission, and a Start mission button appears on hover.

Undo and redo in every text field

#728

On macOS, use ⌘Z and ⇧⌘Z or Edit → Undo and Redo. On Windows, use Ctrl+Z to undo and Ctrl+Y or Ctrl+Shift+Z to redo. Typing undoes a run at a time. A paste, a cut or a new line is its own step, and so is a phrase typed through an input method.

Changes

Crews no longer have a purpose or a default goal

#699

Neither is shown or searched, and Start mission no longer fills in a crew goal. A mission's goal is always the one you give it.

Roles must run an agent

#721

You can no longer create a role with the shell runtime, or switch one to it, in the app or through runner role. An existing shell role can still be renamed or deleted.

Bug fixes

Clicks and selections in text fields land on the right character

#726

Before, they drifted along long lines and after wrapped lines. Now the caret, selection and clicks line up with the text everywhere:

  • dragging a selection past the field's edge keeps selecting and scrolls a long prompt;
  • Up and Down move by visual line;
  • the input-method candidate window sits at the caret.

0.11.5

Feature release

Runner 0.11.5 is a feature release for macOS and Windows on top of 0.11.4. You can now update agent CLIs from Settings → Agents, and splits and new terminals open where your shell is.

New

Update agent CLIs from Settings → Agents

#533

Each installed agent shows its version, and when a newer one is available it shows the new version and an Update button. Update runs the CLI's own updater in a terminal inside a dialog, then reports the new version or the exit code. Claude Code, Codex, Copilot and pi can be updated; Claude Code is compared against its release channel, so users on the stable channel are not offered a version claude update will not install. The gear in the usage popover shows a dot while an enabled agent has an update. On macOS, running sessions keep their old version until they relaunch; on Windows, stop the agent's running sessions before updating.

Splits and new terminals follow your shell

#575

Split Right, Split Down and New terminal on a terminal tab now open in the directory your shell is in, not the one it started in. Runner adds this to zsh and bash on macOS through environment variables only, without editing your startup files, and skips its hook when your configuration already reports the directory. Agent sessions and mission slots are unchanged. Windows support will come later.

Bug fixes

Chats started from Recents stay out of projects

#718

A chat, terminal or mission started from Recents, the roles page or the crew editor is no longer filed under the project that owns its folder. Starts from a project's pane, split or drawer still join that project.

Deleting a role in use by a crew is refused

#619

Before, deleting the role quietly removed it from every crew that used it and stopped its sessions in running missions. Runner now lists the crews that use the role; remove the role from them first.

Sidebar menus open under their button

The create menus list New chat, New mission, New terminal, open below the button unless they don't fit, and a project row's + and … buttons open their menus under the button and close them when you press it again.

0.11.4

Feature release

Runner 0.11.4 is a feature release for macOS and Windows on top of 0.11.3, with Claude Code and Codex plan usage on the main window, tidier keyboard shortcuts with stop and resume for the focused session, and a fix for panes that went black.

New

Plan usage for Claude Code and Codex

#706

A gauge icon at the right end of the sidebar's Settings row opens a popover with each agent's 5-hour, weekly and per-model windows, how much of each is used, and when it resets. The icon turns amber when any window reaches 80% and red at 100%; hover it for the headline numbers. Usage refreshes at launch, every 15 minutes, and from the popover's refresh button. The icon only appears when Claude Code or Codex is installed and enabled in Settings → Agents. On macOS, the first read of Claude Code's sign-in asks for Keychain permission.

Stop and resume the focused session from the keyboard

#697

⇧⌘X stops and ⇧⌘R resumes the chat, terminal or mission slot in focus (Ctrl+Shift+X and Ctrl+Shift+R on Windows), and the pane menu shows both keys.

Tidier keyboard shortcuts

#697

Settings → Keyboard shortcuts shows Go to tab 1–9 as one row, and fixed shortcuts such as New window, Go to tab and Close pane can now be turned off and restored from the same list.

Resume running agents on launch is on by default

#711

for new installs. Existing installs keep their current setting.

Agents follow the missions they start

#686

An agent that starts a mission through the runner CLI now keeps watching it, so crew handoffs, questions for you, completion and failures reach it without a separate ask, and an expired watch picks up where it left off instead of replaying the whole mission.

Runner is now MIT-licensed

Releases from 0.6.0 through 0.11.3 were GPL-3.0.

Bug fixes

Panes no longer go black after toggling the sidebar

#647

When an agent's redraw lost its end marker, the pane stayed blank until more output arrived. Runner now applies the held redraw once its short deadline passes.

App text uses the bundled monospace font

#703

Monospace text across the app now uses the same font as the design instead of Menlo or Consolas. The terminal font choice is unchanged.

Tab archive reads Archive

#700

The sidebar and top-bar menus say Archive, the confirmation reads "Archive tab?", and a split tab being archived shows one Archiving pill instead of one per pane.

0.11.3

Bug-fix release

Runner 0.11.3 is a bug-fix release for macOS and Windows on top of 0.11.2, with steadier Codex status when hooks are not reporting and reliable pi resume for relocated session directories.

Bug fixes

Codex settles to Idle when a turn ends, even without hooks

#688#692

Before the first hook report, with hooks disabled, or after the hook bridge fails, Runner falls back to terminal activity, and Codex's animated thread-title spinner kept a finished turn showing Working. Runner now reads Codex's terminal title in that fallback, so the session settles to Idle when the turn ends. Hook-reported status still takes precedence.

pi resumes relocated conversations

#666#693

A pi agent whose environment sets PI_CODING_AGENT_DIR or PI_CODING_AGENT_SESSION_DIR now resumes its conversation after a relaunch instead of starting fresh and resending the mission goal.

Tidier Not installed cards

#695

In Settings → Agents, Install instructions now sits on the same line as the agent's description.

0.11.2

Bug-fix release

Runner 0.11.2 is a bug-fix release for macOS and Windows on top of 0.11.1, with clearer agent settings and fixes for Codex sessions stuck on Working.

New

A clearer Settings → Agents page

#617#684

Installed and unavailable agents are grouped separately. The Default pill and Set as default action sit beside the agent name, with redundant detection badges and the separate default summary removed.

Bug fixes

Untouched Codex sessions settle to Idle

#687#689

A freshly opened or resumed Codex session could stay Working while waiting for your first input, including sessions without a saved session key. Runner now handles that startup gap while preserving Working for automatic mission prompts and actual hook-reported work.

Early Esc no longer leaves Codex stuck Working

#687#689

Cancelling immediately after submitting a prompt can produce an interruption before the first prompt hook. Runner now recognizes that sequence and clears Working when Codex confirms the interruption.

0.11.1

Runner 0.11.1 is a fixes release. A session that had just started, been cleared, or come back from a relaunch could sit on Status unavailable while the agent was alive and waiting — that is fixed for all four hook runtimes, along with a Windows PATH refresh, the splitter's drag feedback, and project membership for anything started from a terminal.

New

A live mission's flag is the accent colour

#653#674

In the sidebar a mission's flag now draws in the accent while any of its sessions is live, and goes neutral when they are all stopped — the same rule the Claude Code, Copilot and TRAE marks already follow, so colour means live everywhere in the rail. Terminal rows stay neutral on purpose: an accent on every live row stops meaning anything.

A mission or chat started inside a project's directory belongs to that project

#680#682

Starting one with the runner CLI from anywhere under a project's folder files it in that project, with no --project flag. The deepest matching project wins, an explicit --project still overrides, and a directory that matches nothing is left unfiled as before. Nothing is auto-created.

Changes

The default crew is "pair coding", not "peer coding"

#676#679

The seeded crew and the example in the docs now use the term the loop is actually named after. Existing crews are untouched.

Bug fixes

A session could read "Status unavailable" while the agent was waiting for you

#659#670#677

Every hook runtime treated a session start as "we no longer know what this agent is doing" and cleared its status. /clear in Claude Code left the row unavailable until the next prompt; a Codex slot read unavailable for about twelve seconds after the app relaunched, and indefinitely if the resumed agent printed nothing. A session start now reports Idle, which is what it means — the agent is up and waiting. Fixed in the Claude Code, Codex, GitHub Copilot CLI and pi adapters. The same change removes a startup completion that could steal the first turn's "agent finished" notification.

The splitter's accent bar vanished the moment you dragged it

#673#675

The bar was a hover style, and dragging clears hover, so the feedback disappeared exactly when it was most useful. Every splitter in the app — sidebar, chat side panel, split gutters, terminal drawer — now uses one style that stays lit through the drag, with a thinner 3px bar in a wider 6px grab area.

Windows: Refresh did not find an agent CLI installed since launch

#672#681

Settings → Agents searched the PATH the app inherited when it started, which never changes while it runs, so a newly installed agent stayed "not installed" until you restarted Runner. Discovery now reads the user and machine PATH from the registry on every refresh, expanding %VAR% references, and falls back to the last known good environment if the registry cannot be read. macOS was unaffected.

0.11.0

Runner 0.11.0 adds pi as a fifth agent and makes the bundled runner command the way agents, scripts and people drive Runner. Runner's own MCP integration is removed in the same release.

New

Runner supports pi

#539#646#649

Chats and missions run pi like the other four: the role's model and thinking level, resume after a relaunch, fork, the model list read from pi --list-models, and the folder-trust prompt answered ahead of time so a mission slot never stalls on it. pi reports its status through a Runner-owned extension in the same vocabulary as the others: Working, Using tools, Idle, Interrupted after you stop a turn, Approval needed while an extension asks to confirm, and Response failed. It takes its own row in Settings → Agents with its own mark in the sidebar, pane headers and switcher. pi is bring-your-own-provider, so it is also the way into Runner on a ChatGPT or Copilot subscription. Needs pi 0.84.4 or newer for hook status; older pi falls back to estimated status.

The bundled runner command drives everything

#648#650

Every workspace and mission operation is a runner <noun> <verb> command: projects, roles, crews and their slots, missions, chats and sessions. Inside a mission the binary crew members already use for msg and signal takes its mission and handle from the environment; outside one, --mission names the mission and the caller acts as you. --json is what agents read, tables and summaries are for people, and the exit status says what happened: 0 success, 1 Runner refused, 2 a usage or reference error, 3 Runner is not running, 5 a sandbox blocked the local connection. runner help agents prints a guide matched to the installed version.

runner is on your PATH after the first launch

#648#654

macOS links ~/.local/bin/runner, or a writable /usr/local/bin, when that folder is already on your login PATH; anywhere else it is one click in Settings → General → Command line, through the administrator prompt if the folder needs one. Windows adds the sidecar directory to your user PATH. A runner that Runner did not create is never replaced, and a removal is respected.

Agents find Runner through a skill, with no setup

#648#652#654

Runner installs a runner skill for every agent it detects, into the three roots that cover all five runtimes: ~/.claude/skills/, ~/.agents/skills/ for Codex, GitHub Copilot CLI and pi, and ~/.trae/skills/. The skill names the command and points at runner help agents. One switch in Settings → General controls it; the Skills pane shows the managed folder with a "Managed by Runner" badge.

Follow a mission from a terminal

#648#652

runner mission feed <id> --follow streams a mission's events as they land, with --types and --from to narrow them and --json for one flushed event per line. mission show, mission answer, msg post --mission, mission stop and mission archive cover the rest of the loop.

Changes

Runner's MCP integration is removed

#648#664

Runner no longer registers itself as an MCP server with any agent, and the runner-mcp bridge is no longer shipped. Two ways in at once would be confusing, and pi has no MCP client at all, so the CLI and its skill are the one way in. On its first launch, 0.11.0 removes the runner entry it wrote from Claude Code, Codex, TRAE CLI and GitHub Copilot CLI, once. An entry Runner did not write is left alone, including one that points at another Runner installation, and a config Runner cannot read is left untouched and retried later. If you wrote a runner entry by hand, it will point at a binary that no longer exists and that agent will show it as a failed server until you remove or update it. Agent sessions already running keep their bridge process until they end. Settings → MCP stays as the catalog of your own servers, and the runner name is an ordinary row there now.

Stopped provider marks lose their hue

#641#642

A stopped Claude Code or Codex chat in the sidebar kept its colour at low brightness and still read as running; stopped marks are now neutral, so colour means live.

The bundled CLI's source moved

#658#660

to crates/runner-cli. No change to the installed command.

Bug fixes

A sandboxed agent was told Runner was closed

#648#655

Codex runs its commands in a sandbox that denies the local socket, and the CLI reported that Runner was not running, so an agent asked you to open an app that was already open. A blocked connection is now its own exit status 5 with its own message, and the skill tells the agent to retry outside the sandbox.

The Windows installer left the old bridge behind

#648#664

An upgrade now deletes runner-mcp.exe from the install directory.

0.10.0

Runner 0.10.0 brings hook-based agent status to Windows, shows what an agent is doing right in its status label, renames the Runners menu to Roles, and gets a new icon.

New

Hook-based status on Windows

#610#627

Claude Code, Codex and GitHub Copilot CLI now report their status through lifecycle hooks on Windows as they do on macOS: Working, Idle, Approval needed while a permission dialog is open, Answer needed while the agent asks a question, and a crew delivery is held only while a dialog is unresolved. Claude Code runs its hooks under its own Git Bash, Codex under PowerShell, and Copilot under PowerShell 7 (pwsh); when the shell a hook needs is missing, that session falls back to estimated status.

The status label says what the agent is doing

#624#631

Pane headers, a one-pane tab and mission role cards show the detail next to the state: Working · Using tools, Working · Compacting context, Idle · Interrupted after you stop a turn, and how long a wait has been open, such as Approval needed · 2m. A failed response gets its own red mark on the sidebar row and its own count in the sidebar rollups until you view the pane. Claude Code's manual /compact now shows Compacting context too.

The Runners menu is now Roles

#604#618

The reusable agent configurations you add to crews are now called roles, so the Runners entry in the sidebar and its page are now Roles. The app is still called Runner. Saved settings, routes and chats carry over. Breaking for MCP clients: Runner's MCP tools are now role_create, role_get, role_get_by_handle, role_list, role_update and role_delete, and slot_create and slot_update take role_id. Reconnect Runner's MCP server in any agent session that was open before the update.

A new icon

#633#640

The app icon, the Windows executable and installer icon, and the in-app brand mark use the new Trail mark: one prompt ahead with two echoes behind it, drawn to stay legible at small sizes.

Changes

Estimated status follows terminal output only

#625#638

Sessions without a hook bridge (TRAE CLI, roles that turn off Runner's hooks, or a failed bridge) no longer read the terminal title's spinner; status is estimated from output activity alone.

The mission log's status signal is now session_status

#632#636

Mission logs written by earlier versions still read correctly, and an old brief that emits runner_status still works.

The bundled runner CLI and its MCP server report the app version

#635#637

instead of 0.1.0.

Bug fixes

Mission roles showed Status unavailable for their whole first turn

#623#639

when their status came only from terminal output. They now show Working from the moment they start.

Some modals rendered their fields at about 60 % of the panel width

#626#629

on certain machines, including the Start project and Start chat forms; drawers had the same defect.

Copilot chats could not connect to Runner's MCP server

#621#622

, because Copilot sends a discovery request before the MCP handshake.

0.9.4

Runner 0.9.4 adds a fourth agent, GitHub Copilot CLI, on macOS and Windows on top of 0.9.3.

New

Runner supports GitHub Copilot CLI

#540#347#614

Chats and missions run copilot like the other three: the runner's model and effort, the three permission modes, resume after a relaunch, the folder-trust prompt answered ahead of time so a mission slot never stalls on it, Runner's MCP server registered for it, and its skills listed under Settings → Skills with a toggle that writes the same disabledSkills list copilot plugins disable --skill keeps. On macOS a Copilot session reports its status through hooks in the same vocabulary as Claude Code and Codex: Working, Idle, Approval needed while its permission dialog is open, Answer needed while it asks a question; a crew delivery is held only while a dialog is unresolved. Windows keeps the estimated status for now. It takes the third row in Settings → Agents with its own purple mark in the sidebar, pane headers and switcher.

Agents rows show their mark

#609

Settings → Agents puts each agent's mark before its name, so the four rows read the way the sidebar does.

One rule for every sidebar glyph

#606

Folder, shell, layout and mission glyphs are now neutral and dim when nothing is running in them, the same way provider marks already did; the accent is reserved for the state at the tail of a row. Projects show a closed folder when collapsed and an open one when expanded.

Bug fixes

Settings → Skills under Copilot showed Codex's caption

#609

, truncated the agent's name in the picker, and counted "0 off" for an agent that had no toggles.

0.9.3

Bug-fix release

Runner 0.9.3 is a bug-fix release for macOS and Windows on top of 0.9.2.

New

Chats show which agent they are talking to

#593

Claude Code, Codex, and TRAE CLI each have their own mark in the sidebar, workspace and pane headers, the quick switcher, and Settings → Archived, so a rail of mixed work is readable without reading titles. Split tabs keep their layout icon, shells keep the terminal glyph, and a chat with nothing running dims its mark rather than changing colour.

Bug fixes

TRAE CLI chats start

#596

They never had: Runner passed --permission-mode auto, which TRAE CLI does not accept, so every Trae chat exited within a fraction of a second of opening.

Chats no longer prompt differently than you configured

#596

A chat now runs on its agent's own permission default instead of the mode stored on its runner, leaving missions the only place a permission posture is set. If you have a runner set to Auto or Bypass, chats started from it will ask for approvals where they previously did not — missions are unchanged.

The pane title stops flickering

#597

Codex blinks its "Action Required" prefix in the terminal title once a second; Runner absorbed one phase of the blink and not the other, so the chat's label flipped back and forth while Codex waited on you.

Every chat from a runner is no longer called the same thing

#602

Runner hands a runner's instructions to the agent as its first message, so the agent titled every chat from that runner identically. A runner-backed chat is now labelled @handle until you rename it.

The TRAE CLI runner form stops offering a mode it cannot save

#599

Picking Auto wrote nothing and the form showed Default the next time it opened; TRAE CLI has no auto-approve mode, so the option is gone.

0.9.2

Feature release

Runner 0.9.2 is a feature release for macOS and Windows on top of 0.9.1.

New

Conversation titles for agent chats

#587

Agent tabs show clean titles supplied by Codex, Claude Code, and other agents, without directory suffixes or spinner symbols. Custom names take priority; chats keep their runtime default until a useful title arrives, and conversation titles survive restart and resume.

Bug fixes

Consistent tab labels

#587

The header and sidebar stay in sync as conversation titles update. Unnamed split tabs follow the first pane, so switching pane focus no longer changes the tab name.

Archiving split tabs

#594

Archiving a running multi-pane tab no longer shows a spurious node not found error. Archived chats remain available in Settings → Archived.

0.9.1

Feature release

Runner 0.9.1 is a feature release for macOS and Windows on top of 0.9.0, with model discovery and clearer effort controls for Codex and Claude Code.

New

Models from your installed agents

#590

Codex and Claude Code model pickers now use the models reported by each CLI, including newly available models. Custom model names remain supported, and TRAE CLI keeps its existing behavior.

Cached lists that keep working offline

#590

Model lists and supported effort levels survive app restarts. Refresh runs in the background when needed after ten minutes, and failed queries silently retain the last good list. Settings → Agents → Refresh retries immediately.

Effort choices follow the model

#590

Supported effort options come from the cached model catalog when available. Choosing Default model resets effort to Default and disables its selector; known default model and effort values are shown without pinning them.

Bug fixes

Aligned agent settings

#590

Model and Effort labels now share a consistent baseline and spacing in Settings → Agents.

0.9.0

Feature release

Runner 0.9.0 is a feature release for macOS and Windows on top of 0.8.9, bringing clearer agent status and human attention across chats and crews.

New

Hook-based agent status on macOS

#347

Claude Code and Codex report work, completion, and interruption through lifecycle hooks. Quiet tools stay Working, and background-agent activity cannot finish the parent session.

See which session needs you

#347

Status appears consistently in chat headers, split panes, the sidebar, and mission views. Claude Code can show Approval needed, Answer needed, and Response failed; clicking an attention indicator focuses the relevant terminal.

Safer crew delivery for Claude Code

#347

Queued crew messages wait while a supported approval or question is unresolved, then resume delivery when it clears. Typed drafts remain protected.

Reliable cancellation and resume

#347

Claude command approvals are detected promptly, answered or cancelled questions clear their attention, and Escape/Ctrl+C during ordinary Claude work returns to Idle without a false completion dot. Codex status follows fresh sessions, resumed conversations, and in-process conversation changes.

Support in this release: hook integration is available for Claude Code and Codex on macOS, tested with Claude Code 2.1.270 and Codex 0.154.0. Codex approval/question attention and protection against crew-message delivery into those dialogs are not supported yet. Windows continues to estimate activity from terminal output and titles; Windows status hooks are a follow-up. TRAE CLI retains estimated status and has no Runner hook integration. Codex shows a hook-trust warning because per-hook review is skipped for that launch, including existing user hooks. Add --disable hooks to the runner arguments to use estimated status instead. (#347)

0.8.9

Bug-fix release

Runner 0.8.9 is a bug-fix release for macOS and Windows on top of 0.8.8.

Bug fixes

Better busy/idle detection for agent sessions

#583#584

Runner now recognizes the title-spinner pattern observed in Codex and Claude Code, so a completed turn can show Idle even while the terminal keeps animating. Sessions without a recognized title signal continue using byte activity. This is a heuristic improvement; hook-based detection is planned next.

0.8.8

Feature release

Runner 0.8.8 is a feature release for macOS and Windows on top of 0.8.7.

New

Split panes, redesigned

#570

Focus is brightness, not a frame: the accent border is gone and unfocused panes fade to 70 %. Every pane carries one split icon with Split Right ⌘D and Split Down ⇧⌘D, there is no pane limit, only a size floor, and the layout picker is gone.

Drag panes to reorder

#568

A grip on every pane's identity line. Drag it onto the left, right, top or bottom edge of another pane and the highlighted half shows where it lands. Sessions keep running through the move.

Terminal tabs split too

#574

Split Right and Split Down on a terminal tab open another shell right there, in the same directory, the way Ghostty does. New terminal on a terminal tab does the same.

Closing a chat pane archives the chat

#567

× on a chat pane asks Archive chat? and archives the session before the pane goes, so a chat is never lost behind a closed pane.

README refresh

#566

, with a 简体中文 edition.

0.8.7

Feature release

Runner 0.8.7 is a feature release for macOS and Windows on top of 0.8.6.

New

Runner Light

#529

A light theme designed for Runner replaces Codex Light. Appearance → Light uses it by default; Catppuccin Latte stays available.

Terminal palettes per mode

#529

Settings → Appearance now sets an app palette and a terminal palette for light and for dark, with a live preview of both modes. Terminal palettes are Rosé Pine Dawn, Runner, and Catppuccin Mocha; Monokai is gone.

Claude Code chats follow the app theme

#563#564

Light app, light Claude Code; dark app, dark Claude Code; a theme change reaches running chats too.

Manage projects over MCP

#554

Create, rename, and delete projects, and file a mission into one, from an outside agent.

Settings → MCP

#555

One catalog of the MCP servers configured in Claude Code, Codex, and TRAE, with add, edit, and remove for any of them.

Bug fixes

  • Settings and list scrollbars start below the titlebar and stop at their region instead of running the full window height. (#553)
  • An armed terminal link colours its text, not only its underline. (#560)

0.8.6

Feature release

Runner 0.8.6 is a feature release for macOS and Windows on top of 0.8.5.

New

Per-slot stop, resume, and restart

#542

Each runner card in the mission rail now carries its own Stop and Resume control, and a stopped slot shows a docked card with Resume and Restart. Resume continues the runner's conversation; Restart asks for confirmation, then relaunches the slot fresh with its original brief, so a stuck or drifted runner comes back without restarting the whole mission. The lead is notified over the mission bus when a slot restarts. The mission workspace opens on the runners rail, the sidebar flag turns green as soon as any slot is running, and feed rows for signals and router notices show an avatar and their full payload.

Wider app zoom

#549

⌘+ and ⌘− and the Settings → General stepper now run from 60% to 200% instead of 80% to 150%, in the same 10% steps.

Bug fixes

  • Missions in Bypass mode no longer stall on Claude Code's first-run "bypass permissions" consent dialog. Runner acknowledges it in the settings it hands to the sessions it spawns, so nothing is written to your own Claude Code config. (#541)
  • Splitting a terminal pane with ⌘D, ⇧⌘D, or the layout picker now opens a new terminal in the same project and directory instead of an empty chat pane. (#545)
  • Renaming a single-pane tab from the sidebar and from the pane header now keep one name; the two surfaces used to drift apart. (#547)

0.8.5

Feature release

Runner 0.8.5 is a feature release for macOS and Windows on top of 0.8.4.

New

Mission permissions

#527

A new Settings → Missions pane holds one setting for how mission slots handle permission prompts: Bypass (the default), Auto, or Runner default. It applies to every slot when a mission starts and again on resume, so a slot never stalls on a prompt nobody is watching. Codex slots under Bypass also leave the sandbox, so git push, gh, and cargo fetches work inside a mission. The mission panel shows the mode a mission started with, and Default crew moved to this pane from General. Direct chats keep their runner's own mode.

Skills pane

#73

Settings → Skills lists the skills each agent can see — Claude Code from ~/.claude/skills, Codex from ~/.agents/skills and ~/.codex/skills — with a global on/off per skill, and opens any skill in a detail view with Preview, Source, Reveal in Finder, and an in-place SKILL.md editor. Turning a skill off writes only the override entry in that agent's config; turning it back on removes it.

Runner MCP on the Agents pane

#530

Runner now registers itself as an MCP server in every detected, enabled agent by default on macOS, as it already did on Windows — once per agent, so Unregister sticks. The Agents pane shows one card per runtime with its model and effort defaults and a Runner MCP line with Register or Unregister; the separate MCP settings pane is gone.

Bug fixes

Windows:

#524

stray [6c and C characters no longer appear in the Codex and Claude Code composers. The terminal answered each query twice under the Windows Terminal ConPTY shipped in 0.8.4.

  • Select menus with option descriptions now size to their content, so a description stays on one line and the check mark sits centred.
  • No scrollbar thumb is drawn for a sub-pixel scroll range at fractional zoom.

0.8.4

Bug-fix release

Runner 0.8.4 is a feature and bug-fix release for macOS and Windows on top of 0.8.3.

New

Signed Windows builds

#497

Runner.exe, both CLI sidecars, the installer, and the uninstaller are now signed with a Certum code-signing certificate issued to Yicheng Wang, and nightlies are signed with the same certificate. Windows shows that publisher instead of "Unknown publisher". SmartScreen may still show its warning on some PCs until the certificate builds reputation.

Faster, cleaner terminal output on Windows

#492

Runner now bundles the Windows Terminal ConPTY beside Runner.exe instead of using the console host built into Windows. Codex frames arrive whole instead of split mid-redraw, key echo drops from about 47 ms to 31 ms, and the short output hold Runner used to work around the old host is gone.

Bug fixes

No more stray [6c or C in the composer

#524

Under the new ConPTY, Runner's second reply to the terminal's startup queries reached Codex and Claude Code as typed text, most visibly after resuming a chat. Only the terminal answers those queries now, on both platforms.

Calmer scrollbars, and the terminal scrollbar no longer covers text

#520

App scrollbars keep the resting visibility from 0.8.3 at lower brightness, the terminal scrollbar is quiet at rest, and every terminal reserves a gutter for it so the last column is never hidden under the thumb.

The monospace UI font on macOS is the bundled JetBrains Mono

The mission feed, sidebar, crews, and text fields silently fell back to Helvetica unless JetBrains Mono was installed system-wide. They now use the bundled face, as they already did on Windows.

Nightly channel

For anyone on the nightly builds. Production installs are not affected.

  • Version labels read Nightly (<sha>). Settings, About, and the update dialog showed vNightly (<sha>). (#519)
  • Two builds per platform are kept. The nightly release now retains the live build and one rollback target instead of ten; the appcast and the Windows updater always pointed at the newest build anyway.

0.8.3

Bug-fix release

Runner 0.8.3 is a feature and bug-fix release for macOS and Windows on top of 0.8.2.

New

Previous and Next page arrows in the macOS header

#494

The macOS titlebar now has the same leading cluster as Windows: sidebar toggle, Previous page, Next page. The arrows walk the window's page history, the same one ⌘[ and ⌘] use, and grey out at either end of it and in Settings. They stay available with the sidebar collapsed and in fullscreen.

Bug fixes

The sidebar scrollbar is readable on the dark theme

#470

The thumb no longer disappears into the Carbon sidebar at rest, brightens while the list is scrolling and for a moment after, and keeps its bright state on hover and drag. The terminal pane's scrollbar behaves the same way.

The pin stays put while ⌘ is held

Holding ⌘ to show the 1–9 tab shortcuts used to hide the pin on pinned chats and missions and shift the row. The pin now stays.

The collapsed sidebar's edge preview no longer opens by accident

Resting the pointer on the left edge still opens the preview, but only after a short pause. Dragging a text selection to the edge and sweeping the pointer across the window on the way to another screen no longer trigger it.

No more render-error spam on panel transitions

#512

Collapsing the sidebar flooded the log with can't render at a zero size lines because its icons were squashed to nothing during the animation. The transition now clips instead, and every icon in the app is fixed-size.

Nightly channel

For anyone on the nightly builds. Production installs are not affected.

  • One release for both platforms. The nightly prerelease now carries the macOS DMG with its signed Sparkle appcast and the Windows installer with its signature. nightly-win is retired; a Windows nightly installed before this release needs one manual install from nightly, after which it updates in-app from there. (#502, #504)
  • The macOS nightly is Runner.app and updates itself. It installs over the production app with only the update feed differing, the same rule Windows already had, and receives updates through Sparkle. A previously installed Runner Nightly.app needs one manual install of the new DMG and can then be deleted. (#505)
  • Builds are identified by commit. Nightlies show as Nightly (<sha>) and are named Runner-Nightly-<sha>.<stamp>-arm64.dmg and Runner-Setup-nightly.<sha>.<stamp>-x64.exe. The nightly tag follows the built commit and the release notes list the commits since the latest official release. (#507)

新功能

  • macOS 标题栏新增"上一页 / 下一页"箭头。 macOS 标题栏现在与 Windows 一样,左侧依次为侧边栏开关、上一页、下一页。箭头沿窗口的页面历史前后切换,与 ⌘[ 和 ⌘] 走同一份历史;到达历史两端或在 Settings 中时会置灰。侧边栏收起或全屏时依然可用。(#494)

问题修复

  • 深色主题下侧边栏滚动条清晰可见。 滚动条静止时不再与 Carbon 侧边栏融为一体,列表滚动时及停止后的短暂时间内会变亮,悬停和拖动时保持高亮。终端面板的滚动条行为相同。(#470)
  • 按住 ⌘ 时图钉不再消失。 之前按住 ⌘ 显示 1–9 标签快捷键时,已固定的聊天和任务上的图钉会被隐藏并导致行内元素移位。现在图钉保持原位。
  • 收起的侧边栏不再被误触发预览。 将鼠标停在左边缘仍会打开预览,但需要短暂停留。把文本选区拖到边缘,或鼠标在跨屏幕移动时扫过窗口,都不会再触发。
  • 面板过渡时不再刷屏渲染错误。 收起侧边栏时,图标在动画过程中被压缩为零尺寸,导致日志中大量出现 can't render at a zero size。过渡现在改为裁切显示,应用内所有图标均为固定尺寸。(#512)

Nightly 渠道

仅面向使用 nightly 构建的用户,正式版安装不受影响。

  • 两个平台合并为一个 release。 nightly 预发布现在同时包含 macOS DMG 及其签名的 Sparkle appcast,以及 Windows 安装包及其签名。nightly-win 已停用;在此版本之前安装的 Windows nightly 需要从 nightly 手动安装一次,之后即可在应用内自动更新。(#502, #504)
  • macOS nightly 就是 Runner.app,并支持自动更新。 它会覆盖安装到正式版应用上,仅更新源不同,与 Windows 的规则一致,并通过 Sparkle 接收更新。之前安装的 Runner Nightly.app 需要手动安装一次新的 DMG,之后即可删除。(#505)
  • 构建以提交标识。 Nightly 显示为 Nightly (<sha>),文件名为 Runner-Nightly-<sha>.<stamp>-arm64.dmg 和 Runner-Setup-nightly.<sha>.<stamp>-x64.exe。nightly 标签跟随所构建的提交,发布说明会列出自最近正式版以来的提交。(#507)

下载与升级

  • macOS,Apple Silicon: 下载 Runner-0.8.3-arm64.dmg,或通过 Sparkle 更新。应用已签名并完成公证。
  • Windows x64,Windows 10 1809 或更高版本: 下载 Runner-Setup-0.8.3.20260908.0850-x64.exe 安装包,或由应用内更新器自动获取。安装包目前未签名,Windows 可能显示 SmartScreen 警告。设置、聊天和任务均会保留。

Windows ARM64、Intel Mac 和 Linux 暂不支持。

完整变更记录: https://github.com/yicheng47/runner/compare/v0.8.2...v0.8.3

0.8.1

Bug-fix release

Runner 0.8.1 is a bug-fix release for macOS and Windows on top of 0.8.0.

Bug fixes

Launch no longer aborts on an early Dock reopen

#472

On macOS, a reopen event arriving during startup could reach the app before its state was in place and crash Runner from the AppKit callback. Reopen events are now ignored until startup completes; the usual reopen behaviour afterwards is unchanged.

Quitting with many live sessions is much faster

#473

Quit, mission stop, and runner deletion tore down sessions one at a time, so quitting with ten sessions took about 16 seconds. Teardown now runs per session in parallel, and quit logs the session count and elapsed time after each sweep. Sessions are still stamped for resume before teardown; per-session kill behaviour, signals, and grace periods are unchanged.

0.8.0

Runner 0.8.0 is the first stable release for Windows, alongside the existing macOS app. Direct chats, crew missions, and MCP coordination now run natively on Windows.

Windows support

  • Native Windows x64 app. Windows window controls, fonts, Ctrl shortcuts, file opening, and Explorer reveal, with agent terminals running through ConPTY. No WSL required.
  • Claude Code and Codex. Native agent launching, Claude conversation resume, bundled CLI helpers, and MCP integration for detected and enabled clients. Process-tree cleanup stops a session's child processes with it.
  • Per-user installer. Installs without administrator access, adds a Start Menu shortcut, and includes the app and both CLI helpers. Settings, chats, and missions are retained across upgrades.
  • Update notifications. The Settings update icon and Settings → Updates link to newer stable builds. Download the installer, close Runner, and run it to upgrade.

Also in this release

  • New chats default to Direct mode on both platforms, with Direct listed first in the mode selector.
  • Terminal output batching reduces cursor jumps during bursts of agent output, including Windows ConPTY sessions.

0.7.5

A maintenance release: one real bug fix for fresh installs, and the first of four consolidation passes over the codebase with no behavior change.

Fixes

  • Fresh installs get the runner CLI and the MCP proxy. Since the native rewrite, the app never copied its two bundled helper binaries into app data. Existing machines still had copies from before the cutover and kept working; a new install had neither, so missions could not coordinate (runner was not found inside the crew's terminals) and the Claude Code / Codex / TRAE MCP entry pointed at a binary that did not exist. Both are now installed on every launch and refreshed after an update. (#480)

Internal

  • Consolidation pass 1. Every comment left over from the Tauri, webview, and xterm.js era is rewritten for the native app or removed; code with no caller outside its own tests is gone, including the unused launch-script renderer and the pointer-first move-to-project operations; and every non-test unwrap/expect on an IO, parse, environment, or user-data path now propagates an error or falls back with a log line instead of panicking. 44 files, +224/−997, no behavior change. Passes 2–4 split the largest surface files. (#478)
  • The Windows nightly pre-release has a spec again (#437).

Upgrading

Sparkle offers this update to every 0.7.x install. On first launch after the update the app replaces the pre-cutover runner and runner-mcp in ~/Library/Application Support/com.wycstudios.runner/bin/ with the bundled ones; nothing else changes on disk and no configs are rewritten.

Download

  • Apple Silicon: Runner-0.7.5-arm64.dmg

0.7.4

The terminal stops being a pane. Every chat tab and every mission gets a terminal drawer that slides up from the bottom, so a shell sits beside the agent instead of taking one of the split's cells.

Added

  • Terminal drawer in chat tabs. ⌥F12, the new panel-bottom glyph in the header, or the command palette's New terminal opens a drawer under the pane split at the focused chat's working directory. Drag the hairline to size it (120–600 px, remembered per tab), add shells with +, switch them with the chips, hide with the chevron or ⌘W from the drawer. Hiding keeps every shell running; a chip's × closes that one, with the same foreground-process confirmation a terminal pane gets. A shell that exits shows the Shell exited card with Restart in place. The drawer belongs to its tab — switching tabs switches drawers.
  • Terminal drawer in missions. The same drawer under a mission's Feed and runner tabs, owned by the mission: switch between Feed and a runner's terminal and the shell stays put, at the mission's working directory. Drawer shells are never crew slots — they stay out of the Feed, runner statuses, the sidebar, and attention — and mission Stop / Resume act on slots only. Archiving the mission closes its shells.
  • Lazy relaunch. Drawer shells are no longer respawned at launch. Their chips come back, and each shell restarts the first time its drawer is actually shown — the active chip on open, the others when clicked. A hidden drawer costs nothing after a relaunch. Terminal-only tabs keep respawning eagerly as before.
  • The empty pane offers New chat only, as a single ⌘N New chat button that reads your actual binding; ⌘N fills a focused empty pane before it opens a new tab.

Changed

  • Panel toggles use one glyph family. The sidebar, side panel, mission rail, and drawer toggles now draw Codex's pair — a short tick while the panel is hidden, a full divider while it is open — in the same 24-unit space and stroke as every other icon. The solid-fill glyphs and the drawer's raised pill are gone.
  • Fork moved beside Stop. The chat header's left cluster acts on the session (icon · title · ⋯ · Stop · Fork); the right cluster only toggles surfaces (split · drawer · side panel).
  • RECENT is now RECENTS in the sidebar and the command palette.

Upgrading

Sparkle offers this update to every 0.7.x install; older installs on the 0.6.x line pick it up through the normal update path. Existing tabs and missions open with the drawer hidden; nothing about pane terminals in terminal-only tabs changes. ⌥F12 is the default drawer binding and can be rebound in Settings → Keyboard shortcuts.

Download

  • Apple Silicon: Runner-0.7.4-arm64.dmg

0.7.3

A small release on the 0.7 line: the terminal font is now JetBrains Mono.

Changed

  • JetBrains Mono is the terminal font. Runner bundles the Nerd Font Mono build of JetBrains Mono (2.304, Nerd Fonts 3.5.1) and uses it in every terminal pane by default, replacing MesloLGS Nerd Font. It is the face Ghostty and WezTerm ship out of the box, with the full Nerd Font icon set for starship, eza, and Powerlevel10k prompts, and ligatures for ->, !=, and friends. Settings → Terminal → Font family offers JetBrains Mono and Menlo.

Upgrading

Sparkle offers this update to every 0.7.x install; older installs on the 0.6.x line pick it up through the normal update path. Installs that never touched the font setting switch to JetBrains Mono automatically, a saved "Meslo Nerd Font" choice migrates to it, and a saved Menlo choice stays Menlo.

Download

  • Apple Silicon: Runner-0.7.3-arm64.dmg

0.7.2

Feature release

A small feature release on the 0.7 line: file paths in terminal panes are links, and links finally tell you they are clickable.

New

Open file links in your editor

#458

(#458). Paths agents print — crates/runner-app/src/surfaces/panes.rs:1311 in every summary, cargo's --> src/foo.rs:12:5, bare git status paths — are ⌘-clickable in every terminal pane. Runner links a path only when it resolves to a real file against the session's working directory, so and/or and version strings never underline. Settings → General → Open file links in picks Zed, VS Code, or Cursor (through their CLIs, at the cited line and column) or the default app. A missing CLI shows where its installer lives in the editor, and the click falls back to open. OSC 8 file:// links from ls, eza, or rg --hyperlink-format open the same way.

Links tell you they are links

Rest the pointer on a path or URL and it underlines; after half a second a tooltip names the gesture — "⌘-click to open in Zed", "⌘-click to open in browser". Hold ⌘ and the underline turns accent, the pointer becomes a hand, and the tooltip names the target: "Open in Zed · panes.rs:1311". URLs never had a hint before.

Fixes

  • Link hover now works in Claude Code and Codex. The ⌘-hover underline was wiped on every repaint by a gpui hitbox timing detail, so TUIs that redraw constantly never showed it — clicks worked, the hover did not. It shows everywhere now.

Upgrading

Sparkle offers this update to every 0.7.x install; older installs on the 0.6.x line pick it up through the normal update path. The editor defaults to Default app so the first ⌘-click works without any CLI; pick Zed, VS Code, or Cursor in Settings → General.

Download

  • Apple Silicon: Runner-0.7.2-arm64.dmg

0.7.1

A patch on the 0.7.0 line — two session-identity bugs that made resume lie to you, and one crooked icon.

Fixes

  • /clear no longer orphans a claude-code chat (#459). /clear doesn't clear a conversation — it ends the session and starts a new one with a new id. Runner only knew the id it assigned at spawn, so stopping and resuming a cleared pane silently brought back the pre-clear conversation, and forking it forked the old history. Every claude spawn now carries a SessionStart hook that reports the live session id back to Runner the moment it changes; resume and fork follow the conversation you can actually see. The hook merges with your own Claude hooks — nothing in ~/.claude is touched or overridden.
  • Chinese text no longer turns to mojibake (#461). Dock-launched apps inherit no locale, so every spawned session ran in the C locale and claude's clipboard reads decoded UTF-8 as Mac Roman — paste 曾思艺, get ÊõæÊÄùËâ∫. Sessions now get LC_CTYPE=UTF-8 when nothing else supplies a locale, the same fallback real terminals set on their PTYs. A locale you set yourself — in your shell or on a runner — still wins.
  • The fork icon is now the actual lucide git-fork. The shipped glyph was a mis-graft — git-fork's three dots with git-branch's connectors — so the tab-menu and header icons read lopsided. One-line swap for the real trident.

Upgrading

Sparkle offers this update to every 0.7.0 install; older installs on the 0.6.x line pick it up through the normal update path. The /clear fix applies to sessions spawned after the update — resumed sessions respawn, so they pick it up too.

Download

  • Apple Silicon: Runner-0.7.1-arm64.dmg

0.7.0

Fork a chat into a new tab

Fork any claude-code or codex chat — from the chat header's ⑂ button, or the sidebar tab's ⋯ → Fork chat. The fork opens in a new tab titled <source> (fork) with the full conversation history; the source chat is never touched, so you can fork one mid-turn while it keeps working.

  • Fast: forks open at CLI-boot speed on both runtimes. Codex captures the new session key in a ~0.2s headless step; claude forks spawn directly with an assigned session id.
  • Fork controls are disabled with an explanatory tooltip where forking isn't possible (TRAE chats, or a chat whose session key hasn't landed yet).
  • Each fork logs a one-line timing breakdown (fork timing:) for observability.

Known behavior

  • A codex fork briefly shows a "Conversation interrupted" banner at the top — cosmetic, left by the key-capture step.
  • A claude fork you never type into isn't durable yet (claude only materializes the conversation file on the first message): stop and resume it untouched and it comes back empty. Type anything and it's permanent. Codex forks are durable from birth. Re-fork the source to recover.

Docs

  • Feature specs now carry their GitHub tracking-issue number (05→73, 58→393, 61→403); docs/ and docs/impls/ gained index READMEs.

Full changes: https://github.com/yicheng47/runner/commits/v0.7.0

0.6.6

A one-fix release: the crew-delete confirm from 0.6.5 could still render wrong on some machines.

Fixes

  • The delete confirm no longer renders as a blank panel taller than the window. 0.6.5 fixed the dialog on the machines where its buttons hung below the panel, but on others the same dialog came up as an empty column with the title and buttons pushed off-screen — the panel's height came from a layout probe that measured the text one glyph per line, and which machines hit it depended on layout order. The dialog's text now has explicit widths, and a layout test pins it at two zoom levels and three window sizes. Applies to every confirm dialog in the app (crew delete, runner delete, project delete).

Upgrading

Sparkle offers this update to every 0.6.x install on Apple Silicon. 0.5.x installs still bridge automatically: they land on 0.6.0 first, then Sparkle brings them here — the bridge stays in place through the 0.6.x line.

Download

  • Apple Silicon: Runner-0.6.6-arm64.dmg. macOS is packaged for ARM64 only since 0.6.2; Intel Macs are not supported.

0.6.5

A cleanup release from a day of daily-driving: stopping a session no longer leaks the work it was doing, the Starting pill stops lying, deleting a crew works again, and two small settings changes.

What's new

  • The Starting chat pill waits for the TUI. It used to drop about a second after spawn while Claude Code was still booting behind a blank pane. It now stays until the first frame is actually on screen — for new chats, resumes, and mission slots alike. Claude's own 1–2 s startup is unchanged; you just no longer stare at an empty pane through it.
  • Stopping a session cleans up what it was running. Agents now get 6 s to shut down on their own after Runner's SIGHUP — Claude Code uses that window to kill its tool shells. Codex has no shutdown handler at all, so Runner also records the session's live descendants at stop time and terminates any that outlive the agent: a cargo test or sleep 600 left behind by a stopped Codex chat no longer keeps burning CPU. Applies to Stop, closing a pane, Archive, Archive all, and ⌘Q. The log records how long each runtime took to exit and anything Runner had to clean up after it.
  • A runner chat's default name is its handle. Start a chat → Runner prefills @coder, not "Chat with @coder". Direct chats still default to the agent's name.

Fixes

  • Deleting a crew works again, with one confirm. The confirm dialog was sized for a one-line body while its text wrapped to three, so the Cancel / Delete crew buttons were painted below the panel — and a click there closed the dialog instead of deleting. Dialogs now grow with their text (the runner-delete dialog had the same flaw), and the crew delete asks once, naming the slots, archived missions, and session history it takes with it.

Removed

  • The App font picker. Only Inter ships with the app; Geist and Roboto resolved to whatever the machine had — on most Macs, silently, the system font. Settings → Appearance no longer offers the choice and the UI is pinned to Inter. A saved appFontFamily in an existing settings file is ignored on load; every other preference is kept.

Upgrading

Sparkle offers this update to every 0.6.x install on Apple Silicon. 0.5.x installs still bridge automatically: they land on 0.6.0 first, then Sparkle brings them here — the bridge stays in place through the 0.6.x line.

Download

  • Apple Silicon: Runner-0.6.5-arm64.dmg. macOS is packaged for ARM64 only since 0.6.2; Intel Macs are not supported.

0.6.4

The headline is terminals: a pane can now hold a real shell instead of a chat, so git diff --stat or a long pnpm dev runs beside the agent editing the code it serves — without leaving the app or burning a chat on it.

What's new

  • A pane can hold a terminal. Your $SHELL in a real PTY, in any pane a split can build. Start one from New terminal — in the Recent and project + menus, which open it in a new single-pane tab, in an empty pane's placeholder, or from the command palette. There is no modal: a terminal has nothing to configure that cd does not cover. It opens in the cwd of the focused sibling session, else the active project's directory, else your default working directory, else $HOME, so it lands where the agent beside it is working.
  • Split shortcuts. ⌘D adds a side-by-side pane and ⇧⌘D a stacked one, growing a tab from one pane to two to at most three. The new pane stays empty so you choose New chat or New terminal in place. The layout button's tooltip advertises both.
  • A slimmer pane identity line. The pane header drops from 34 px to a 26 px line — icon, name, status dot, ⋯, with × alone at the far right. ⋯ holds Stop (⌘.), Rename…, and Archive.
  • Rename a pane. ⋯ → Rename…, or a double-click on the name, edits it inline. Enter commits, Escape reverts, and an emptied value restores the default. The name survives closing and reopening the pane, moving it to another pane, and relaunching the app.
  • ⌘. stops the session in the focused pane — chat or terminal.
  • Terminals come back live after a relaunch. A fresh shell at the pane's recorded cwd: no command replay, no scrollback. Chats still follow your resume-on-launch setting. If the recorded directory no longer exists, the shell opens at the nearest existing parent and says so in the pane rather than silently landing in $HOME.
  • Shell exited card. A shell that exits shows its exit code, shell, and cwd with Restart and Close — the terminal twin of Chat paused.
  • Terminals never nag for attention. No status dot, and they are left out of working / unread / needs-you: a streaming pnpm dev is not "working", and its going quiet is not "done".

Closing a terminal is permanent

A chat archives and can be restored from Settings → Archived; a terminal cannot. So Runner asks before it takes one away. Closing a single terminal confirms only when a foreground process is still running — a shell sitting at its prompt closes silently. Archive all on a tab that mixes chats and terminals always confirms, and says how many of each it will touch.

Upgrading

Sparkle offers this update to every 0.6.x install on Apple Silicon. 0.5.x installs still bridge automatically: they land on 0.6.0 first, then Sparkle brings them here — the bridge stays in place through the 0.6.x line.

Download

  • Apple Silicon: Runner-0.6.4-arm64.dmg. macOS is packaged for ARM64 only since 0.6.2; Intel Macs are not supported.

0.6.3

A terminal theme swap and the fixes that came out of smoke-testing it, plus two changes that landed after 0.6.2 was tagged.

What's new

  • Monokai terminal theme. Settings → Appearance → Terminal theme now offers Monokai — the Monokai Pro palette, #2D2A2E canvas, pink #FF6188 swatch — alongside Runner and Catppuccin Mocha. Switching repaints open panes live, and the choice persists across relaunch.
  • Brighter selection in the Runner theme. The Runner terminal's text-selection highlight is now #3B3E49, so selected text reads clearly in panes and in the mission feed.

Removed

  • Solarized Dark is gone. If your saved settings still say solarized-dark, the app falls back to Runner on launch and keeps every other preference — pick Monokai or Catppuccin Mocha from the dropdown if you want a different palette. More generally, a saved terminal-theme label the app no longer recognizes no longer invalidates the whole settings file.

Fixes

  • Popup clicks no longer fall through. Choosing an Agent in Start Chat → Direct used to open the Model dropdown underneath the menu; popup panels now cover the controls beneath them.
  • Single-line dropdown options are vertically centered (swatch, label, checkmark); options with a description keep their top-aligned two-line layout.
  • A runner row the app cannot read no longer breaks the runner list — it is skipped instead of failing the whole query.

Upgrading

Sparkle offers this update to every 0.6.x install. 0.5.x installs still bridge automatically: they land on 0.6.0 first, then Sparkle brings them here — the bridge stays in place through the 0.6.x line.

If you installed the first 0.6.3 build (published and withdrawn on 2026-08-24), this one is offered as an update too: it is the same release with the Runner terminal canvas back at its original #15161B after the lifted canvas made the terminal and the chat's side panel read as one surface.

Download

  • Apple Silicon: Runner-0.6.3-arm64.dmg (macOS is packaged for ARM64 only since 0.6.2).

0.6.1

The first update on the native line — one new feature and the fixes from a day of daily-driving 0.6.0.

What's new

  • ⌘1–9 jump to tabs. Hold ⌘ on its own for a beat and every row in the sidebar shows its number; ⌘1…⌘9 switch to that row the way a click would — chats and missions alike, counted top to bottom across PINNED, expanded projects, and RECENT. Works from a terminal, the composer, Settings, and with the sidebar collapsed. The nine shortcuts are rebindable in Settings → Keyboard.

Fixes

  • Option, Shift, and Control with arrow keys now reach the agent the way a real terminal sends them. Option+→ used to type [C into Codex's composer (and Claude Code mis-read the same bytes); ⌥←/⌥→ word-jump, ⇧arrows select, and ⌃arrows work. ⇧Tab now sends a real backtab, so Claude Code's permission-mode cycle responds to it.
  • ⌘W closes the window (or the focused pane in a split); ⌘M minimizes. Both were wired but never fired — the handler ran while the window was already being updated and the error was swallowed.
  • Sidebar drag and drop is reliable again: the accent drop line no longer survives a release, drops that land between rows or below the list commit to the highlighted target, and dragging a row out of a project back to RECENT works again.

Upgrading

Sparkle offers this update to every 0.6.0 install. 0.5.x installs still bridge automatically: they land on 0.6.0 first, then Sparkle brings them here — the bridge stays in place through the 0.6.x line.

Download

  • Apple Silicon and Intel: Runner-0.6.1-universal.dmg

0.6.0

Runner 0.6.0 is a rewrite of the app, not a release of the old one. The Tauri shell, the WebView, React, and xterm.js are gone; what ships is one native Rust binary — the UI rendered by GPUI, the terminal model and the renderer sharing a single alacritty_terminal grid. Everything behind the PTY (sessions, router, event log, SQLite, the bundled runner CLI and MCP server) is the same core 0.5.x ran on.

Why

0.5.x kept two terminal parsers in the loop — Rust behind the PTY, JavaScript in front of it — and every mismatch between them became a bug: garbled glyphs after the WebGL atlas desynced, wrong widths on CJK and emoji, panes that repainted blank, hidden panes starved of a GPU context. One parser and one grid removes that class of bug by construction rather than patch by patch (#307).

What's new

  • Native everything. GPUI rendering, Metal-backed; terminals are the real grid, not a serialized mirror. Resize is smooth and tab switches no longer blank the pane.
  • Universal build. One Runner-0.6.0-universal.dmg for Apple Silicon and Intel; macOS 12 or later.
  • Sparkle updates. The standard macOS update sheet, checked silently in the background; a new version only lights the sidebar hint until you click it.
  • Sidebar entry points. New chat is the first row of WORKSPACE (⌘N); every project row has a + for a chat or a mission inside that project; tab and mission menus are down to Pin / Rename / Archive (⇧⌘N + a sidebar pick still opens a session in another window; drag to RECENT still moves a row out of a project).
  • Real draft detection. The router holds a message only when the agent's composer actually has text in it, read off the grid — the "Inbox waiting" pill no longer fires on an empty prompt, and Submit draft always releases it.
  • Mission feed renders Markdown with proper weights and rhythm; text is selectable and copyable.
  • Archiving a mission returns you to the tab you came from instead of stranding you on the archived feed.
  • Keyboard shortcuts are rebindable (Settings → Keyboard), with a command palette; Diagnostics reveals the real log file; About links open natively.

Upgrading from 0.5.x

  • Nothing to migrate: 0.6.0 opens the same data directory and the same runner.db — runners, crews, missions, chats, and event logs are all there.
  • 0.5.x installs update themselves: the old updater fetches this release once, relaunches into the native app, and Sparkle takes it from there. That bridge stays available through the 0.6.x line and is removed at 0.7.0 — after that, install the DMG by hand.
  • The bundled runner CLI and runner-mcp server are refreshed from the new bundle on launch; your MCP client configs keep working unchanged.

What's next

Post-GA work is tracked in #432: hook-based session status (working / waiting / done from the agents' own signals), terminal render and ingestion performance, ⌘1–9 tab switching, and the backend hygiene remainder.

Download

  • Apple Silicon and Intel: Runner-0.6.0-universal.dmg

0.5.2

What's New

  • Per-slot model and effort overrides — pick a model and reasoning effort per crew slot, right in the slot edit drawer. Overrides apply on the next spawn and survive respawn/resume. (#402)

Bug Fixes

  • Codex missions no longer stall on the trust dialog — Runner now pre-seeds the project's trust entry in ~/.codex/config.toml before spawning codex, so the "Do you trust this folder?" prompt never appears and the mission's first turn delivers immediately. Existing trust decisions (including explicit untrusted) are never overwritten, and linked git worktrees resolve to the main repo root. (#404)

Download

  • Apple Silicon: Runner_0.5.2_aarch64.dmg
  • Intel: Runner_0.5.2_x64.dmg

0.5.1

Bug Fixes

  • Mission workspaces opened right after app launch no longer stick on a stale "stopped" state while auto-resume brings the slots back — session changes now refresh the workspace, Resume is race-proof against already-running sessions, and action errors are dismissible instead of a permanent raw banner (#399).
  • The macOS traffic lights stay in their custom titlebar position through window resizes, including live drags — the frames are re-applied from the AppKit side instead of resetting to the stock layout until the next zoom change (#395).

Download

  • Apple Silicon: Runner_0.5.1_aarch64.dmg
  • Intel: Runner_0.5.1_x64.dmg

0.5.0

What's New

  • Chat-style mission feed (#394) — the feed now reads like a Discord/Slack channel: every runner gets a deterministic pixel-identicon avatar and identity color, consecutive messages from the same author group under one header, the mission start renders as a divider and your kickoff goal as a regular message with a GOAL chip, system signals collapse into one-line rows with expandable payloads, and the needs-your-input card sits under the asking runner's avatar. The runner rail picks up the same identity: identicon avatars with a presence dot for busy / idle / stopped.

Bug Fixes

  • Mission runner status no longer gets permanently stuck on busy after a router nudge — the synthetic wake-busy now updates the status stores atomically, and status events retry instead of dropping under log contention, so the reconciliation safety net can't be silently disabled (#385, #396).
  • Markdown list markers in feed messages stay inside the message block, and message typography breathes more (#392).

Download

  • Apple Silicon: Runner_0.5.0_aarch64.dmg
  • Intel: Runner_0.5.0_x64.dmg

0.4.12

Features

  • Model and effort pickers, everywhere you pick an agent. The Model combobox now seeds codex's current catalog (GPT-5.6 Sol/Terra/Luna, GPT-5.5 and friends, with per-model descriptions) and adds the fable alias for Claude Code; the effort menu gains codex's max and ultra tiers. Direct chats can set model and thinking effort at start, and replacing a runner's agent in Start Chat now exposes the same controls instead of forcing the replacement engine's defaults. Free text still works for anything unlisted, and blank still means the agent's own default. (#386)
  • Chats remember their model across restarts. Direct and agent-overridden chats persist their model/effort choice and resume with it — previously a chat started as e.g. Sol + ultra silently came back on CLI defaults.
  • Agents are now opt-in beyond the daily drivers. Only Codex and Claude Code ship enabled; Qoder and TRAE stay hidden from pickers until switched on in Settings → Agents. Pickers also self-correct while executable discovery is still probing, instead of briefly claiming no agents exist.

Fixes

  • Opt+C no longer yanks the terminal to the last row. On keyboards with swapped Cmd/Opt (external boards in the wrong Mac/Win mode), an intended copy arrived as opt+c: xterm typed a stray ç into the agent and snapped the viewport to the bottom. The chord is now swallowed in terminal panes. (#387)
  • A runaway agent message can no longer crash the app. runner msg post rejects payloads over 32KB with an error telling the agent to write large content to a file and reference the path — after a 353KB channel message (an entire embedded model catalog) took down a mission. (#389)

Download

  • Apple Silicon: Runner_0.4.12_aarch64.dmg
  • Intel: Runner_0.4.12_x64.dmg

0.4.11

Features

  • The mission feed is now a channel you can talk in. A composer sits under the feed: type and hit Enter to broadcast to every runner in the crew, or start with @ to open a roster picker and address one runner directly. Posts land in the timeline as ordinary channel messages and reach each runner's inbox at its next turn boundary — the same path runners already use to talk to each other, rather than a separate "reply to the human" mechanism. (#378)
  • Adding a project opens a proper dialog. The sidebar's + used to jump straight into a directory picker and create the project silently under the folder's name. It now opens a modal like starting a chat or a mission: the directory is prefilled from your configured default working directory, the name defaults to the folder's name and follows it as you browse until you edit the name yourself. (#383)
  • New installs ship with a Peer coding crew. A two-runner coder/reviewer crew, with prompts and team conventions filled in, is seeded on first launch so a fresh install has a working crew to start a mission with.

Fixes

  • Inbox delivery no longer interrupts you mid-keystroke. When a message is waiting and you have unsent text typed into a runner's input, delivery holds until you send it or press Ctrl-C. Terminal escape traffic — notably the color-query replies agent CLIs emit at startup — no longer counts as typing, which previously wedged the gate as phantom input and stalled delivery indefinitely. (#359)
  • Nudges sent while a mission is spawning are no longer dropped. Fresh mission sessions are registered before their PTYs come up, so deliveries wait in the outbox and land once the session is live.
  • A runner's own broadcast no longer lands in its own inbox. runner msg read now excludes messages the caller sent. runner msg post --to human also explains the channel instead of pointing at the terminal: broadcast by omitting --to.

Download

  • Apple Silicon: Runner_0.4.11_aarch64.dmg
  • Intel: Runner_0.4.11_x64.dmg

0.4.10

Improvements

  • Runners and Crews lists now paginate in the backend. Paging and search moved into SQL, so a search matches across every page instead of only the rows currently on screen. The pager stays pinned at the bottom behind a divider aligned with the sidebar footer, and the list scrolls with a visible scrollbar — a card cut at the fold now reads as a scrollable region instead of content hidden behind the pagination block. The esc keycap hint is gone from the search field (Esc still clears). (#377)
  • No more spellcheck squiggles or autocapitalized input. spellcheck, autocorrect, and autocapitalize are off app-wide — noticeable when typing handles, commands, and working directories.

Download

  • Apple Silicon: Runner_0.4.10_aarch64.dmg
  • Intel: Runner_0.4.10_x64.dmg

0.4.9

Bug Fixes

  • Terminal rendering no longer corrupts during everyday navigation. Two follow-ups to v0.4.8's resize-storm work: the viewport clear now travels in-band with the settled repaint instead of firing per push, so switching to Settings and back while an agent streams no longer smears frames across the pane; and background mounts are fully frozen (no push, no refit), so leaving a streaming claude-code tab and coming back no longer stacks duplicated frames into the buffer.
  • Restored missions can be archived again. Archiving a mission restored from Settings → Archived previously failed with "mission is not running"; archive now handles already-stopped missions on the visibility axis alone. (#376)

Download

  • Apple Silicon: Runner_0.4.9_aarch64.dmg
  • Intel: Runner_0.4.9_x64.dmg

0.4.8

What's New

  • Paste a copied file into a terminal — copying a file in Finder or GoLand and pressing ⌘V over a pane now inserts its absolute path, shell-quoted when needed; multiple files paste space-separated. Text and image pastes — including Finder-copied image files — behave exactly as before. (#368)

Improvements

  • Settings → Archived: the row action is now Restore (was "Unarchive").

Bug Fixes

  • Terminal scrollback survives resize storms: dragging the sidebar, a split gutter, or the window edge across a live pane now coalesces into one settled resize instead of purging the replay ring per frame, and a drag that ends at its starting width costs no purge at all. Launch auto-resume no longer loses the transcript it just restored. (#373)
  • Restoring an archived mission now actually returns it to the sidebar under its project.

Download

  • Apple Silicon: Runner_0.4.8_aarch64.dmg
  • Intel: Runner_0.4.8_x64.dmg

0.4.7

Runner 0.4.7 stops backend-started missions from destroying their own scrollback, and gives the packaged app the diagnostics to finally pin the launch-resume width bug.

Bug Fixes

  • Missions started from MCP keep their scrollback. A mission started by an agent through the MCP mission_start tool forked every slot terminal at 80×24 — the first time you opened a slot tab, the real-width resize purged the session's entire output ring, and minutes of the agent's transcript vanished. The app now records the mission pane's real grid whenever the frontend measures it and uses that as the fork size for backend-started missions, so the first tab visit is a no-op resize and the history stays. Missions started from the UI were never affected.
  • The launch width estimate can no longer lie. When the shell's content area couldn't be measured, the estimator fell back to the full window width — sidebar included — and could also read the wrong element entirely while Settings was open. A failed measurement now abstains, letting the persisted per-session geometry take over instead of a confidently wrong guess.

Improvements

  • Launch-resume is now observable in packaged builds. Every session fork logs its width and where that width came from (caller, persisted geometry, mission hint, or default), every width-change ring purge logs old→new columns, and the launch dims pipeline — settle outcome, chosen source, measurement inputs, estimate, and the pane's first real fit — writes a [launch-dims] trace into the rotating log file under ~/Library/Logs. If a restored terminal ever comes back wrong again, the log now says why.

Download

  • Apple Silicon: Runner_0.4.7_aarch64.dmg
  • Intel: Runner_0.4.7_x64.dmg

Existing installs update in place via the built-in updater.

0.4.6

Runner 0.4.6 fixes two ways a terminal could come back looking wrong — after waking your Mac, and after relaunching the app.

Bug Fixes

  • Glyphs no longer render jammed together after your Mac wakes. Characters were drawn at the wrong advance width, so $ pnpm tauri dev came out closer to $pnpmtauridev — the text was correct, the spacing wasn't. The renderer caches each glyph as a rasterized image, and nothing on the wake path told it that cache had gone stale; the only thing that ever cleared it was changing your terminal font. Runner now clears it on the events that actually invalidate it: system wake, and moving the window to a display with a different backing scale. Wake is detected natively rather than inferred from window focus, so ordinary app-switching doesn't pay for it (#360).
  • Sessions restored at launch come back at the right width. With auto-resume enabled, a restored session forked its terminal at whatever size it had when you last quit — so if you resized the window, moved to another display, or the session returned into a split, its resume banner and first repaint were hard-wrapped at the old width. For Claude Code and Qoder, which keep their scrollback across a resume, those mis-wrapped lines were permanent. Runner now works out the width the session will actually be displayed at before starting it, and waits for the window to finish restoring first. A session with no remembered size no longer falls back to 80 columns when the real geometry is knowable (#363).

Download

  • Apple Silicon: Runner_0.4.6_aarch64.dmg
  • Intel: Runner_0.4.6_x64.dmg

Existing installs update in place via the built-in updater.

0.4.5

Runner 0.4.5 adds a fourth agent runtime and lets crew slots pin their own model.

What's New

  • TRAE CLI is now a supported runtime. Runner ships a first-class adapter for traecli alongside Claude Code, Codex, and Qoder — direct chats, crew slots, conversation resume, model and effort flags, permission modes, and one-click MCP registration into ~/.trae/traecli.toml. TRAE CLI is an internal-edition binary, so it isn't publicly installable; the runtime simply appears once traecli is on your PATH, and Settings → Agents shows its detected path with the usual override field. The README now carries a Supported agent runtimes table covering all four adapters and what each one supports.
  • Crew slots can override the model, not just the runtime. A slot could already run a different engine than its runner template; now it can also pin a different model. The slot summary shows the effective engine and model together — codex (model gpt-5-codex) — and setting it on the slot never rewrites the underlying runner, so one template can serve several crews at different model tiers.

Improvements

  • Switching a runner's runtime no longer leaves a stale model behind. Changing the runtime on a runner used to keep whatever model name was already in the field, which meant a value from the previous engine's catalog could be handed to a CLI that doesn't recognize it. The model now resets when the runtime changes, in both the create form and the edit drawer.

Download

  • Apple Silicon: Runner_0.4.5_aarch64.dmg
  • Intel: Runner_0.4.5_x64.dmg

Existing installs update in place via the built-in updater.

0.4.4

Runner 0.4.4 fixes the terminal width of restored sessions and makes auto-resume something you opt into.

Changed

  • Auto-resume on launch is now opt-in. Runner no longer resumes your agents automatically when it starts — including if you had been relying on the previous default. Agents spawning unprompted at launch should be a choice, not a surprise. Turn it back on in Settings → General → Resume running agents on launch; sessions are still marked at quit either way, so enabling it takes effect from your next launch.

Bug Fixes

  • Restored sessions come back at the right width. A session brought back by auto-resume could fork its terminal at a stale width, leaving its resume banner and first repaint hard-wrapped — and for Claude Code, which keeps its scrollback across a resume, those mis-wrapped lines were permanent. Two things caused it: a terminal that measured itself while its session was still stopped had that measurement silently discarded, and the pane then believed it had already reported the size, so it never sent it again. Panes now record their geometry whether or not the process is running, and re-assert it the moment a session goes live. This also repairs any other case where a resize was dropped in flight — a session exiting mid-resize, or a window handing off a shared session.

Download

  • Apple Silicon: Runner_0.4.4_aarch64.dmg
  • Intel: Runner_0.4.4_x64.dmg

Existing installs update in place via the built-in updater.

0.4.3

Runner 0.4.3 adds a third agent runtime and tidies where runtime settings live.

What's New

  • Qoder CLI is a first-class runtime. Pick qoder anywhere you'd pick Claude Code or Codex — direct chats, runner templates, crew slot overrides — and it behaves like a full citizen rather than a bare process: the first turn and mission preamble are delivered at spawn, stopping and resuming reopens the same conversation from ~/.qoder/projects, and a session file that's gone falls back to a fresh spawn instead of an error loop. Settings → Agents discovers the qodercli binary on your PATH and takes an override like the other runtimes, and Qoder can be registered as an MCP client from Settings → MCP (#341).

Improvements

  • Runtime settings live in one place. The Chat settings pane held a single control — the default runtime for new direct chats — while everything else about runtimes had moved to Settings → Agents in 0.4.2. That control now sits with the rest of them, and the Chat pane is gone. Your existing selection carries over untouched.

Download

  • Apple Silicon: Runner_0.4.3_aarch64.dmg
  • Intel: Runner_0.4.3_x64.dmg

Existing installs update in place via the built-in updater.

0.4.2

Runner 0.4.2 makes the app pick up where you left off — agents come back on launch, and the CLIs behind them are now something you can see and fix from Settings.

What's New

  • Agents settings pane. Settings → Agents shows exactly which claude and codex binary Runner will spawn, resolved against your real login-shell PATH, with a per-runtime override when discovery can't reproduce your environment. The shell probe no longer blocks startup or forgets what it found: it runs in the background, keeps its last known good result across launches, and can be re-run on demand after you install or upgrade a CLI. Version-manager installs (mise, asdf, volta, fnm, nvm, pnpm, Bun) are covered by the fallback path. A runtime that can't be resolved now fails before the terminal opens, naming the runtime, instead of printing command not found into a dead pane (#279).
  • Resume running agents on launch. Quitting used to kill every live agent and leave you to restart each one by hand. Runner now marks the sessions it stops at quit — direct chats and mission slots alike — and resumes them on next open, staggered, conversation intact. Only graceful quits are marked, so a crash never auto-respawns agents into whatever caused it, and a session whose resume key is gone stays stopped with its normal Resume button rather than starting a fresh conversation you didn't ask for. Toggle it off in Settings → General (#320).

Improvements

  • Missions started over MCP now infer their project from the working directory when one isn't passed, so agent-started missions nest in the sidebar like the ones you start yourself (#350).

Bug Fixes

  • Switching tabs no longer disturbs the terminal. Returning to a pane fired a forced resize even when nothing about the geometry had changed — two SIGWINCHes, a full agent repaint, and for Claude Code a scrollback purge on every single switch. Activation now pushes size only when the size actually changed; the forced repaint survives only where a pane's canvas genuinely went stale (#352).
  • Sidebar project collapse survives restart. Collapsed projects came back expanded on every launch — the only sidebar state that didn't persist (#354).
  • Terminals now fit against the renderer that will paint them, closing a window where a freshly activated pane could measure against stale geometry.
  • Resumes interrupted mid-flight are preserved rather than dropped, so a launch that gets cut short doesn't lose the sessions it hadn't reached yet.
  • Terminal frame and scrollbar rendering refined — no more stray strip along the right edge of a pane.

Download

  • Apple Silicon: Runner_0.4.2_aarch64.dmg
  • Intel: Runner_0.4.2_x64.dmg

Existing installs update in place via the built-in updater.

0.4.1

Runner 0.4.1 is a stability release that hardens session lifecycle and terminal rendering — the two rough edges left after the 0.4.0 header work.

Bug Fixes

  • Paused missions no longer strand live agents. When one slot in a running mission exited on its own, its sibling sessions kept running indefinitely behind the paused card — an invisible agent process still holding the repo, with the sidebar correctly showing the project as active while the workspace looked stopped. Runner now reaps the surviving siblings when a slot exit is observed, so "paused" always means zero live processes (#346).
  • In-place resume renders cleanly. Resuming a stopped session without leaving the tab used to stream the new process into the dead terminal grid: stale mode state (bracketed paste, mouse reporting), a dirty seam where the resume banner collided with the old cursor, and — for codex — a stacked frame that silently vanished on the next tab switch. Resume now sanitizes the grid per-runtime, and sessions fork at their last-known width instead of defaulting to 80 columns, fixing the mis-wrapped scrollback after resume (#349).

Download

  • Apple Silicon: Runner_0.4.1_aarch64.dmg
  • Intel: Runner_0.4.1_x64.dmg

Existing installs update in place via the built-in updater.

0.4.0

Runner 0.4.0 marks the point where the workspace chrome caught up with the interaction model the 0.3 line converged on: the feed tells you what's happening, the pane is where you talk, and the header now gets out of the way.

Features

  • Codex-style workspace header (#343): chats and missions share one slim 44px single-line header — leading icon (terminal / flag) + truncated title + inline … overflow that absorbs the old kebab actions and subtitle metadata. Stop is demoted from the labeled red chip to a quiet muted-red icon beside the title (Resume takes the same slot when applicable). The right edge is pure surface toggles: split view for chats, and the runners-rail toggle always rightmost. The sidebar strip now owns the window chrome — traffic lights plus the sidebar-collapse button beside them, with a fullscreen-aware gutter so the button sits flush when macOS hides the lights.

Download

Existing installs update in place via the built-in updater.

0.3.23

Features

  • Read-mostly mission feed (#330): the feed now answers what is happening — talk to a runner by typing into its pane. The mission composer and the --to human reply protocol are gone, so worker prompts spend their entire budget on coordination verbs; ask_human cards remain the one structured escalation path, and historical logs still render every legacy event.
  • Blocked inbox delivery indicator (#336): when your half-typed draft in a runner's pane is holding back an inbox wake nudge, the pane now shows an amber "Inbox waiting — typing detected, delivery paused" pill with a Clear input (↵) button (shown while the runner is idle). One Enter through the normal input path releases the parked nudge — no new delivery machinery, every safety check intact.

Fixes

  • Session kills now verify and reap (#340): stopping a mission previously sent a single SIGHUP that claude-code ignores, silently leaking a live process per stop while the UI reported everything stopped. Kills now escalate (SIGHUP → SIGKILL), confirm death, and reap the child; kill sweeps continue past individual failures; and a startup sweep reaps historical orphans after verifying process identity.

Download

Existing installs update in place via the built-in updater.

0.3.22

Improvements

  • Mission messages can no longer be silently missed — each running mission now has a reconciliation clock: every 30 seconds it checks whether any idle runner has unread inbox mail whose wake-up nudge got lost (session died before delivery, respawn raced a parked notification, and similar), and re-nudges through the normal delivery path. Agents never poll and empty checks cost nothing; once the runner reads its inbox, the clock goes quiet. Together with v0.3.21's deferred nudges, mission wake delivery is now at-least-once (#332)
  • Parked nudges now wait 500ms after you submit or clear your input before delivering, instead of landing the instant you hit Enter — and if you start typing again inside that window, delivery re-parks (#332)

Download

  • Apple Silicon: Runner_0.3.22_aarch64.dmg
  • Intel: Runner_0.3.22_x64.dmg

0.3.21

What's New

  • Periodic update checks — Runner now re-checks for updates every few hours while running, and on window focus after sleep, so long-running sessions learn about releases without a restart. Updates get their own Settings pane (moved out of About), and "Check for Updates…" lives in the app menu where Mac apps keep it. Restart remains manual — the app never relaunches itself under running agents (#333)

Bug Fixes

  • Mission nudges no longer corrupt your typing — inbox nudges and message relays delivered to a pane where you're mid-draft are parked until you submit or clear your input, then delivered (coalesced) instead of appending to your half-typed text and submitting the mangled result (#328)
  • With the auto-download toggle off, Runner still checks for updates and tells you one is available — previously toggle-off meant it never looked at all (#333)
  • The sidebar workspace divider is visible again, separating workspace entries from content (#331)

Download

  • Apple Silicon: Runner_0.3.21_aarch64.dmg
  • Intel: Runner_0.3.21_x64.dmg

0.3.20

What's New

  • PINNED section — pinned chats and missions now live in one section at the top of the sidebar instead of sorting to the top of their own groups. Drag pinned rows to reorder them; unpinning returns a row to its project (or the root list). The section hides itself when nothing is pinned (#317)
  • Reorder projects by dragging — project rows can be dragged up and down within the sidebar, so active projects don't stay buried under dormant ones (#324)

Improvements

  • Folders retired — projects are now the only way to group chats and missions. Folders had become projects-without-a-directory, and carrying both meant two creation flows and two deletion behaviors. Existing folders are dissolved on upgrade: their contents move up to the top level, in place, and can be re-filed into projects (#321)

Bug Fixes

  • Sidebar section headers truncate correctly in a narrow sidebar, with the collapse chevron staying beside the label (#322)

Download

  • Apple Silicon: Runner_0.3.20_aarch64.dmg
  • Intel: Runner_0.3.20_x64.dmg

0.3.19

What's New

  • The sidebar is now one unified navigation tree (#318): MISSION and CHAT sections are merged, chats and missions nest under projects side by side, and manual ordering works everywhere — inside folders, inside projects, and in the recent list — with pinned rows sorting first. Backed by a new single nodes model with an automatic, order-preserving database migration.
  • Drag and drop is unified across all sidebar rows: move tabs and missions between folders, projects, and the recent list with the same interaction; dragging across a project boundary rebinds project membership (#318)

Bug Fixes

  • The PROJECT sidebar section no longer silently crops when projects outgrow its height cap — the whole nav column scrolls as a single surface (#315)

Download

  • Apple Silicon: Runner_0.3.19_aarch64.dmg
  • Intel: Runner_0.3.19_x64.dmg

0.3.18

Bug Fixes

  • Resuming an old claude-code chat no longer shows a black terminal until you manually resize the window — a blank grid now forces a repaint nudge on activation (#312, #314)
  • Opening Settings no longer leaves chat terminals rendered at the wrong size when you return (#314)
  • Mission session respawns start at the pane's real size instead of the 80×24 default (#314)
  • Stopped chats no longer carry a stale green unread dot across an app restart — unread completions from a prior run are cleared at launch

Download

  • Apple Silicon: Runner_0.3.18_aarch64.dmg
  • Intel: Runner_0.3.18_x64.dmg

0.3.17

Improvements

  • Slimmer sidebar right-click menu. The row context menu is now a fixed set — Pin, Rename, Open in New Window, Archive. The per-folder and per-project "Move to <name>" rows are gone: folder moves live on drag and drop, and project membership is decided when a chat or mission is created, since a session's working directory is fixed at spawn. (#311)

Bug Fixes

  • Returning to a chat no longer paints the terminal at half width. Chat and mission surfaces now stay mounted across route changes — visiting Runners, Crews, or a mission feed and coming back is an instant reveal of the live terminal instead of a cold remount that could mis-size the PTY and garble history. (#309)
  • Multi-window behavior stays correct across navigation. A hidden (kept-alive) surface no longer erases the visible surface's window-ownership claim, captures mission warnings as chat banners, or leaves the mission feed unanchored after events arrive while away. (#309)

Download

  • Apple Silicon: Runner_0.3.17_aarch64.dmg
  • Intel: Runner_0.3.17_x64.dmg

0.3.16

What's New

  • Runtime override per crew slot and direct chat — runner.runtime is now a default rather than a lock: override the engine on any crew slot or direct chat, so one persona can run on Claude Code, Codex, or any configured runtime without duplicating runner templates. Runtime-specific flags reset to registry defaults on override. (#305)

Bug Fixes

  • Claude Code scrollback no longer disappears on tab return. The backend replay buffer survives the tab-return resize handshake, so switching tabs or routes and coming back keeps your conversation history scrollable instead of showing only the latest frame. (#308)
  • Fixed terminal panes returning from a hidden tab with stale rendering that only corrected after a manual window resize — the renderer now attaches once the pane has settled geometry. (#308)

Download

  • Apple Silicon: Runner_0.3.16_aarch64.dmg
  • Intel: Runner_0.3.16_x64.dmg

0.3.15

Bug Fixes

  • Fixed stale or garbled terminal canvases when switching back to older chat tabs: hidden panes no longer hold WebGL contexts, so long chat-heavy sessions stay below WKWebView's context limit. Terminals also recover their GPU renderer after a genuine context loss instead of degrading permanently. (#300)
  • Typing in an idle mission runner's terminal no longer flips the mission to "working" — local keystroke echo is now suppressed from mission status, matching chat behavior, while submitted prompts still light the spinner immediately. (#302)

Download

  • Apple Silicon: Runner_0.3.15_aarch64.dmg
  • Intel: Runner_0.3.15_x64.dmg

0.3.14

What's New

  • Keyboard shortcut rebinding — Settings → Keyboard shortcuts is now editable. Click a shortcut (or its pencil) to record a new combo, delete to unbind, and restore a single shortcut or reset everything back to defaults. Conflicting combos are caught before they commit, and custom bindings apply everywhere — including while a terminal has focus. (#273)

Bug Fixes

  • Unread dots no longer appear on chat tabs that were already viewed and received no meaningful new activity. (#296)

Download

  • Apple Silicon: Runner_0.3.14_aarch64.dmg
  • Intel: Runner_0.3.14_x64.dmg

0.3.13

What's New

  • Projects — organize your chats and missions by working directory. A new PROJECTS section in the sidebar lets you create a project bound to a folder — "Start from scratch" (new directory) or "Use an existing folder" — and chats and missions started inside a project inherit its working directory and nest under it. Move work in and out of projects, reorder, and collapse them. (#292)
  • Project-aware MCP tools — agents can now discover projects (project_list / project_get) and start missions and direct chats under a project over MCP, defaulting the working directory from the project (with an explicit cwd still overriding). (#294)

Bug Fixes

  • Restored inline rename for chat tabs. (#291)

Download

  • Apple Silicon: Runner_0.3.13_aarch64.dmg
  • Intel: Runner_0.3.13_x64.dmg

0.3.12

What's New

  • Drag chat tabs reliably between sidebar positions and folders with clear insertion dividers.
  • See consistent live, working, and unread indicators across missions, chat tabs, folders, and collapsed sections.

Improvements

  • Keep sidebar rows fixed while dragging so only the drag preview and destination divider move.
  • Declutter folder and tab affordances while keeping their actions discoverable.

Bug Fixes

  • Rename folders inline instead of relying on a native prompt unsupported by the Tauri WebView.
  • Ignore SIGWINCH repaint bytes during session activity detection to prevent false busy states.

Download

0.3.11

What's New

  • Chat tabs now show a trailing spinner while any pane is working and an unread dot when a background tab settles.
  • Completion attention persists across navigation and restarts, synchronizes across Runner windows, and rolls hidden activity up to collapsed folders and the CHAT section.

Improvements

  • Direct-chat activity hydration now reflects live session state immediately without false busy indicators after reopening.
  • Multi-pane viewed state, focus-return clearing, and start/resume feedback are more consistent.

Bug Fixes

  • Corrected the multi-pane archive action label so it accurately describes archiving all chats.

Download

  • Apple Silicon: Runner_0.3.11_aarch64.dmg
  • Intel: Runner_0.3.11_x64.dmg

0.3.10

What's New

  • Sidebar folders — organize your chats into collapsible folders. Create one from the CHAT section's +, drag tabs in and reorder them with an insertion divider, and start new chats directly inside a folder. Every chat tab now renders as a single row (individual panes no longer clutter the sidebar), and folders, membership, and ordering persist in the database across restarts — from any window. Deleting a folder archives the tabs inside it behind a confirmation. (#281)
  • Search and pagination on Runners and Crews — a search box now narrows both lists as you type: runners match on handle, name, runtime, command, model, effort, working directory, and system prompt; crews match on name, purpose, goal, and member handles/runtimes. Long lists page through a numbered pager (at most 5 page numbers, with … collapsing the middle) with boundary-aware arrows, a visible result count, and a clear no-match state with one-click clear. Esc clears the search while focused. (#220)

Download

  • Apple Silicon: Runner_0.3.10_aarch64.dmg
  • Intel: Runner_0.3.10_x64.dmg

0.3.9

What's New

  • Window position restore (#271). Runner now reopens exactly where you left it — position, size, and maximized state persist across restarts. Built multi-monitor safe: geometry is tracked in logical coordinates after the official Tauri plugin approach failed on secondary displays (tauri#7890), with off-screen recovery when a saved display is no longer connected.
  • Delete all for archived items (#31). Settings → Archived gains a confirm-gated Delete all: archived missions are permanently removed along with their event logs and session rows; archived chats likewise.

Improvements

  • Settings pane content is centered on wide windows instead of hugging the left edge.

Download

  • Apple Silicon: Runner_0.3.9_aarch64.dmg
  • Intel: Runner_0.3.9_x64.dmg

0.3.8

What's New

  • Full-page Settings (#274). The settings modal is gone — settings now takes over the window with sidebar navigation (App / Integrations / System groups), search, and wide card-based panes, in the style of modern desktop apps.
  • Keyboard shortcuts pane (#257). A searchable reference of every app binding — window & navigation, chat panes, mission workspace — with key chips.
  • Archived pane (#31). Browse archived missions and chats under Settings → Archived: newest first, searchable (title + directory), filterable by type — and Unarchive restores items to the sidebar live. Also exposed as mission_unarchive over MCP.
  • New update experience (#276). When an update is ready, a slim pill appears above Settings in the sidebar and expands into an update card on hover — restart to install from right there. Version info and update controls now live in Settings → About (the Updates tab is gone).

Improvements

  • Sidebar search moved into the brand row (#275).

Download

  • Apple Silicon: Runner_0.3.8_aarch64.dmg
  • Intel: Runner_0.3.8_x64.dmg

0.3.7

What's New

  • Claude Code chats keep their scrollback across resume (#272). Resuming a session no longer wipes the terminal history Runner already had — prior conversation output stays scrollable above the resume repaint, matching what a real terminal keeps. Codex sessions are unaffected (codex restores its own transcript on resume).

Bug Fixes

  • Split chat group status alignment in the sidebar (#270).

Download

  • Apple Silicon: Runner_0.3.7_aarch64.dmg
  • Intel: Runner_0.3.7_x64.dmg

0.3.6

Bug Fixes

  • Fixed orphaned mission slot sessions leaking into the CHAT list as dangling direct chats after crew/mission deletion.
  • Fixed split-chat sidebar/tab presentation so the row icon order and default multi-chat tab names reflect the contained chats.

Download

  • Apple Silicon: Runner_0.3.6_aarch64.dmg
  • Intel: Runner_0.3.6_x64.dmg

0.3.5

What's New

  • Added the persistent titlebar sidebar toggle from #246, so the collapse control stays visible in both expanded and fully collapsed states.

Improvements

  • Refreshed the sidebar collapse UX with filled/open and hollow/collapsed panel glyph states, preserved the left-edge hover preview and pin behavior, and removed the old bottom chevrons control.

Download

  • Apple Silicon: Runner_0.3.5_aarch64.dmg
  • Intel: Runner_0.3.5_x64.dmg

0.3.4

Bug Fixes

  • Multi-pane tab layouts now stay in sync across windows. Splitting a chat into panes, grouping/regrouping tabs, collapsing a tab, or switching the active tab in one window now updates every other open window (#258).
  • No more sibling-pane flicker on resume/start. Resuming or starting a session inside a multi-pane tab no longer causes the other panes to flicker, blank, or repaint. The fix scopes the terminal atlas repaint and pane-geometry sync so a per-pane action leaves its neighbors untouched, while keeping the WebGL glyph-corruption protection intact (PR #262).

Download

  • Apple Silicon: Runner_0.3.4_aarch64.dmg
  • Intel: Runner_0.3.4_x64.dmg

0.3.3

Sidebar tab accordion

Multi-pane tabs now read as one unit in the sidebar CHAT list. A tab with 2+ chats collapses into an accordion group — a header (disclosure chevron · split icon · pane-count badge) over its member chats, indented under a rail. Single chats stay flat leaf rows, so single- vs multi-pane is legible at a glance.

  • Collapse to tidy — click the chevron/header to fold a group away; the state persists per tab across restarts. The active on-screen tab always stays expanded.
  • Still one tab — the active tab keeps its accent rail + focused-pane marker; pin, rename, and the row context menu work exactly as before, and pinning a group pins every member together.
  • Frontend-only display grouping — no backend changes (impl 0023).

0.3.2

Split-view (pane tabs) polish: pinning, pane fill, tab preservation, and resume stability.

Fixed

  • A chat added to a pinned split now inherits the pin, pin/unpin applies to the whole tab, and the sidebar renders a tab's members as one contiguous block — no more pinned groups torn apart by other rows. (#250)
  • Starting a new chat from the sidebar (or ⌘T) while a tab has an empty pane now fills that pane instead of collapsing the split, and a window reports pane ownership immediately — chats no longer appear to "jump" to another window. (#251)
  • Building a new pane layout from a non-member chat now preserves the previous pane tab instead of disbanding it. (#253)
  • Resuming panes one by one after an app restart no longer garbles sibling terminals: transient terminal row drops are gated, resume forks the PTY at the pane's real dimensions, and the renderer heals glyph-atlas eviction after each resume settles. (#253)

Internal

  • Canonical surface hierarchy — Window → Tab → Pane — defined in arch §3.6 and aligned across specs and impl logs; "chat group" is now a tab.

0.3.1

Maintenance release: crew prompt-layer fixes and an internal persistence refactor.

Fixed

  • Crew-level sequencing rules now actually reach agents (#247). orchestrator_policy turned out to be dead config — it was never injected into any prompt, so instructions like "reviewer waits for the coder's handoff" silently did nothing. Crew prompt guidance is now consolidated into a single layer, Team conventions (system_prompt_addendum), which reaches the lead and every worker; orchestrator_policy is deprecated (still readable, no longer written). (#248)
  • Mission start/reset now validate the composed first-turn prompt against the 32 KB argv ceiling and fail with a clear, slot-named error instead of silently dropping the entire launch prompt when crew briefs/goals compose too large. (#248)

Internal

  • The persistence layer moved to a repo/ module built on serde_rusqlite: derived row↔struct mapping replaces five hand-written mappers and scattered SQL, locked down by round-trip, legacy-format, and byte-stability unit tests. No schema change, no migration — existing databases are untouched. (#249)

0.3.0

What changed

  • Direct-chat split view (#245): a layout picker in the chat topbar splits the chat area into 2–3 panes — side-by-side, stacked, 1-big+2-stacked, columns, or rows.
  • Each pane is a self-contained chat with its own header, status dot, and focus ring; panes resize with a draggable divider, and terminals never remount when the layout changes.
  • Empty panes open the new-chat dialog with the current runner preselected, or fill from a sidebar click; Cmd+W closes the focused pane without stopping its session.
  • Cmd+[ / Cmd+] cycle pane focus while split; sidebar page navigation moved to Cmd+Shift+[ / Cmd+Shift+].
  • The split is a sticky chat group: it stays intact while you visit other chats, and the main window restores it across restarts with sessions stopped and resumable in their panes.
  • The sidebar highlights pane-open chats, with an accent bar on the focused pane's row.
  • Multi-window ownership is now tracked per visible pane, so a chat owned by another window overlays only its own pane.

Download

  • Runner_0.3.0_aarch64.dmg
  • Runner_0.3.0_x64.dmg

0.2.10

What changed

  • Added sidebar page keyboard shortcuts.
  • Sidebar shortcuts now follow page history, so returning to Mission restores the last active terminal session instead of moving up or down the sidebar.
  • Kept the shortcut behavior scoped to page navigation, without adding support for the Runner or Crew menus.

Download

  • Runner_0.2.10_aarch64.dmg
  • Runner_0.2.10_x64.dmg

0.2.9

What's New

  • Multi-window. Open additional windows with ⌘N (File → New Window) or right-click → "Open in New Window" on a mission/chat in the sidebar. Each window navigates independently. (New chat moved to ⌘T.)
  • Arc-style duplicate handling. When two windows show the same mission or direct chat, the most-recently-focused one owns it; the other shows a "Focus that window" overlay. The terminal mounts only in the owning window, so PTY input never double-lands. Closing the owner promotes the other automatically.

Download

  • Apple Silicon: Runner_0.2.9_aarch64.dmg
  • Intel: Runner_0.2.9_x64.dmg

0.2.8

Bug Fixes

  • Fixed the Runner MCP server advertising an invalid tool schema, which caused MCP clients (Claude Code, etc.) to fail loading all Runner tools. The mission_post_human_signal payload now advertises a valid typed schema.

Download

  • Apple Silicon: Runner_0.2.8_aarch64.dmg
  • Intel: Runner_0.2.8_x64.dmg

0.2.7

What's New

  • Added compact copy controls for direct chat and mission runner session_key displays.
  • Added a copyable Mission ID to the Mission Info panel.

Improvements

  • Cleaned up runtime and coordination documentation.

Bug Fixes

  • Restored the last selected mission PTY tab when reopening missions.
  • Honored Cmd/Meta shortcuts while terminal focus is active.
  • Added JPEG image paste support in the terminal.

Download

  • Apple Silicon: Runner_0.2.7_aarch64.dmg
  • Intel: Runner_0.2.7_x64.dmg

0.2.6

What's New

  • Direct chat runtime details now show the captured native session key when available.

Improvements

  • Added the Codex session-key capture implementation plan to docs.

Bug Fixes

  • Hardened Codex session-key capture so ambiguous sibling sessions fail closed instead of resuming the wrong conversation.
  • Fixed mission terminal repaint after app/system resume.

Download

  • Apple Silicon: Runner_0.2.6_aarch64.dmg
  • Intel: Runner_0.2.6_x64.dmg

0.2.5

What's New

  • Mission sidebar now shows activity state across the mission.

Improvements

  • Refreshed product and architecture docs.
  • Archived completed feature and implementation docs.

Bug Fixes

  • Fixed picker dropdowns not closing after runner selection.
  • Seed direct chat status as busy immediately after creation.
  • Preserve bracketed paste during terminal snapshot replay.

Download

  • Apple Silicon: Runner_0.2.5_aarch64.dmg
  • Intel: Runner_0.2.5_x64.dmg

0.2.4

What's New

  • Direct chats now show live activity status in the chat header and sidebar: busy, idle, stopped, or crashed. The busy/idle state reuses Runner's backend PTY idle detector instead of frontend timing guesses.

Bug Fixes

  • Closing the main Runner window now hides the window instead of quitting the app. Explicit Quit / Cmd+Q still follows the normal shutdown path.

Download

  • Apple Silicon: Runner_0.2.4_aarch64.dmg
  • Intel: Runner_0.2.4_x64.dmg

0.2.3

Improvements

  • Simplified the PTY session runtime boundary and removed stale tmux-era paths.
  • Consolidated per-session PTY state so live handles, retained output, alt-screen state, resume state, and kill state are tracked together.
  • Split the session manager into focused modules for spawn, lifecycle, output, and tests to make future agent and human investigation easier.

Bug Fixes

  • Tightened Codex rollout output capture.

Download

  • Apple Silicon: Runner_0.2.3_aarch64.dmg
  • Intel: Runner_0.2.3_x64.dmg

0.2.2

What's New

  • Added MCP mission tools for inspecting and operating Runner missions from external clients.

Improvements

  • Added mission tab number shortcuts.
  • Answered mission terminal startup queries so launched agents can proceed cleanly.

Bug Fixes

  • Fixed Codex mission spawn plumbing.
  • Required app context for MCP tool listing.

Download

  • Apple Silicon: Runner_0.2.2_aarch64.dmg
  • Intel: Runner_0.2.2_x64.dmg

0.2.1

Bug Fixes

  • Fixed mission PTY panes so terminal containers stay measurable and render correctly.

Download

  • Apple Silicon: Runner_0.2.1_aarch64.dmg
  • Intel: Runner_0.2.1_x64.dmg

0.2.0

What's New

  • Added Runner MCP server support for external Claude Code and Codex clients.
  • Exposed MCP CRUD tools for crews, runner templates, and slots.
  • Added Settings controls to register or unregister Runner as a Claude Code / Codex MCP server.

Improvements

  • Split the bundled mission CLI from the runner-mcp proxy so agent-side communication and external MCP startup use separate binaries.
  • Added docs for mission MCP tooling, direct chat status behavior, and Tokyo Night theme direction.

Bug Fixes

  • Fixed backend CI and sidecar staging so checks build and package the real CLI artifacts.

Download

  • Apple Silicon: Runner_0.2.0_aarch64.dmg
  • Intel: Runner_0.2.0_x64.dmg

0.1.24

New

  • Direct runtime chats can now start from a runtime without a saved runner template.
  • Chat settings now include default runtime and arguments for direct chats.

Improvements

  • Sidebar chat and mission rows now share the polished selected and loading styles.
  • Direct chat resume, archive, and reload flows now preserve runtime metadata.

Bug Fixes

  • Fixed terminal panes staying at a stale width after macOS sleep/wake.
  • Fixed session forwarder idle transition events.

Download

  • Apple Silicon: Runner_0.1.24_aarch64.dmg
  • Intel: Runner_0.1.24_x64.dmg

0.1.23

What's New

  • Redesigned the collapsed sidebar behavior: collapsed mode now hides the sidebar completely, with a narrow left-edge hover preview and footer chevron pinning.
  • Added Cmd+S as the macOS app shortcut for toggling the sidebar, including when terminal panes have focus.

Improvements

  • Kept Ctrl shortcuts available to terminal sessions and TUIs.
  • Improved sidebar traffic-light spacing and pinned row styling.
  • Added the feature spec for moving update checks into the native app menu.

Download

  • Apple Silicon: Runner_0.1.23_aarch64.dmg
  • Intel: Runner_0.1.23_x64.dmg