Changelog

Every release.

The app updates itself. This is what changed.

BoxDo Terminal 0.4.11 lets a workspace change folder without losing anything. Right-click a workspace and choose Change Folder: every session comes along, and Claude Code, Codex and Grok carry on the same conversation in the new place.

Projects on an external drive are easier too: if the drive is out, the workspace says so and its sessions start again by themselves when you plug it back in.

What's new

  • Change Folder. Right-click a workspace, choose Change Folder, pick the new folder. Before anything happens you see which sessions move, which running ones restart, and which engines start a fresh conversation. Every session keeps its chat, and gets one line saying the folder changed.
  • Folders that come and go. When a workspace's folder isn't there (a drive that is not connected), the sidebar shows Folder not found and Locate Folder. Its sessions wait instead of failing, and start again on their own when the folder is back. If you rename the drive or move the folder, BoxDo Terminal usually finds it by itself.
  • The folder remembers its workspace. Each workspace folder now keeps a small hidden file, .boxt/workspace.json, with the workspace's name, emoji and look. Nothing else: no sessions, no chats, nothing about your Mac. It is kept out of git commits automatically. Adding a folder that was already a workspace brings its name, emoji and look with it. If it is a workspace you already have somewhere else, you can move that workspace here with all its sessions, or add the folder as a new one.

Good to know

  • Kimi, Gemini, Antigravity and OpenCode can't carry a conversation to a new folder yet. Their sessions start a new conversation there, and their chat history stays.
  • To share a workspace's name and look with your team through git, commit the file once with git add -f .boxt/workspace.json.

BoxDo Terminal 0.4.10 fixes a crash at launch in 0.4.9. It affected people who had turned on sharing diagnostics with BoxDo: the app could quit a few seconds after opening, again and again. If you turned sharing off to work around it, you can turn it back on in Settings → Privacy.

Fixes

  • No more crash at launch with diagnostics sharing on. Two uploads of the same events could overlap, and the second one made the app quit. Uploads now run one at a time.

0.4.9

1 October 2026.dmgRelease page

BoxDo Terminal 0.4.9 makes starting from zero painless. On a Mac with no coding agent, the app now shows every agent it supports and installs the one you pick for you. You no longer paste a command into a terminal. It then takes you to your first session.

If an install fails, BoxDo Terminal tries to fix it by itself, and tells you plainly what happened if it can't.

New

  • Choose your first agent. The first-run page lists Claude Code, Codex, Antigravity, Kimi, Grok, OpenCode, Copilot, Qwen, Crush and Gemini. Press Install and the agent's official installer runs in the background. You see one line of progress, then "Ready" with the version once the agent actually starts.
  • Node.js when it's needed. Some agents are installed with npm. If your Mac has no Node.js, BoxDo Terminal installs the current LTS for your user account first, with no password.
  • Installs that repair themselves. A failed install is retried, switched to the agent's other official installer, or moved to your own folder when the system one is not writable. If that isn't enough, a helper on boxdo.com reads the end of the installer's output and explains what went wrong. A fix it proposes is shown as a button with the command visible; it never runs by itself.
  • Straight to a session. After installing, one button takes you to pick a folder and opens your first session with that agent. The first session of a new agent tells you it will ask you to sign in.
  • Forgot password. The sign-in page BoxDo Terminal opens in your browser now has "Forgot password?": a code by text message, a new password, and you are connected.
  • Mac stats in the toolbar. A gauge next to Awake opens CPU, memory, top processes, battery, disk and network.

Fixes

  • Install and Update in Settings work without a workspace. Settings → Agents → Install used to do nothing on a Mac with no workspace yet. Installs and updates now run in the background from there too.
  • Copying part of a list item copies just the text. Selecting a few words inside a bullet no longer brings the bullet and indent along. Two or more items copied together are still a list.
  • Antigravity shows whether it is up to date. It had no status in Settings → Agents because it is not on npm.
  • The Files panel follows the selected workspace.
  • Signing in from the browser no longer ends on a dead page when it takes longer than three minutes.

Privacy

  • Failed installs. When an install fails and the app cannot fix it, the agent's name, the install command, the kind of failure, your macOS version and processor type, and the last lines the installer printed are sent to boxdo.com to get an explanation. Your home folder and account name are replaced first, and nothing is stored. "Send to BoxDo" on a failed install emails the same information to us, only when you press it. The privacy policy describes this.

0.4.8

29 September 2026.dmgRelease page

BoxDo Terminal 0.4.8 fixes copying from the chat: when you select part of a message and choose Copy from the right-click menu, you now get just the words you selected, not the whole message. Copy Message, right below it, still copies everything.

Codex sessions also no longer get stuck on "starting" when Codex wants to update itself.

Fixes

  • Right-click Copy takes your selection. With text selected in a message, Copy in the right-click menu copies exactly that, the same as Cmd-C. The whole message moves to a new Copy Message item. With nothing selected, the menu works as before.
  • Codex no longer hangs at startup. Codex's "Update available" screen used to leave a session showing "starting" forever. BoxDo Terminal now starts Codex without its update check, and if that screen ever appears, it shows you the terminal so you can answer it.

Privacy

  • Crash reports and active days. Usage reports now also include which days the app was open, plus crash reports. They are sent on first launch and checked hourly while the app is open, instead of only at startup. Settings → Privacy describes what is sent and turns it off.

0.4.7

24 September 2026.dmgRelease page

BoxDo Terminal 0.4.7 lets you right-click any chat message: copy it, pin it, resend or schedule it, or send it to another session. You can also select several messages and copy them together. And "Continue with…" hands a whole conversation to a new session, even one running a different engine.

This update also fixes a crash when opening the first file preview after launch, and every engine's sessions now reopen on their original conversation.

What's new

  • Right-click on chat messages. Right-click (or Control-click) any message for Copy, Copy as Markdown, Copy Code, Open Files and Read Aloud. On your own messages you also get Edit & Resend, Send Again Later… and Save to Prompt Studio. Send to Session puts the text in another open session's input bar (it never sends by itself), and Continue in New Session… carries the conversation up to that message into a new session.
  • Pin messages. Pin any message from the same menu. Pinned messages are marked in the chat, and the Pins submenu jumps back to them.
  • Select Messages. Pick several messages with the check circles (Shift-click selects a range), then Copy (Cmd-C) puts them on the clipboard as Markdown, with who said what and when. Esc cancels.
  • Continue with… Right-click a session in the sidebar to carry its conversation into a new session: choose the engine, the folder, how much of the conversation to bring, whether to include the agent's steps, and optional instructions. The new session starts from a handoff note BoxDo Terminal writes into that folder. It also works for a session on another Mac, once that Mac has saved it with Cloud Resume.
  • Better text selection in chat. Double- or triple-click and drag now extends by word or paragraph in both directions, Shift-click extends a selection, and clicking elsewhere clears the old highlight, so Cmd-C copies only what you see selected.
  • Answer Codex's multiple-choice questions. When Codex asks you to choose between options, the question now shows up as buttons in the chat (and on your phone for remote agents) instead of plain text you couldn't answer.
  • Line length presets are back. Settings → Appearance → Chat → Line length offers Readable, Cozy, Comfortable, Wide and Full.
  • Startup status above the input bar. While an engine is starting, a strip above the input bar says so and shows how many messages are waiting. You can keep typing, and it offers the terminal when the engine needs you to act.
  • Remote agents: one editor, any installed engine. Creating, promoting and editing a remote agent now happen in a single Remote Agent… editor. Pick an engine installed on this Mac first, then one of its models.

Fixes

  • No more crash on the first file preview. Opening a Quick Look preview right after launch could crash the app, and so could a file row from the agent disappearing while its preview was open. Both are fixed.
  • Sessions reopen on their own conversation. Codex, Kimi, Grok, Gemini, Antigravity and OpenCode sessions now resume the exact conversation they were in, and older sessions that had lost it are recovered when reopened. A local Codex session can no longer attach to another session's conversation.
  • Faster, clearer engine startup. Reopening a Codex session no longer sits behind a loading screen for 20 seconds, and queued messages wait for a ready prompt instead of being sent blind.
  • No endless "working" after /compact. Running /compact in Claude Code no longer leaves the session stuck in a working state.
  • Links written by the agent open. A link to a file path in the agent's reply, absolute or relative to the session's folder, now opens the file (or says it's gone) instead of showing "The application can't be opened. -50".
  • Remote agents deliver reliably. Messages from your phone are no longer dropped when an agent's settings changed: the session picks up the new settings and delivers. A reply interrupted by the engine restarting now lands in the chat where you asked. Remote Codex agents can use BoxDo's tools, and if phone messages stop arriving, the session now tells you.
  • Scheduled sends never fire twice. A crash right at send time can no longer make a scheduled prompt go out a second time after relaunch.

0.4.6

14 September 2026.dmgRelease page

BoxDo Terminal 0.4.6 fixes two bugs that made the app feel broken. Typing /clear used to leave the mirrored chat silent for the rest of the session, and delay every message sent right after by five seconds. Both are fixed: the chat now follows the new conversation immediately.

Accented letters are fixed too. On the US International keyboard layout, an apostrophe, backtick or quote followed by a letter stopped composing an accent, and a stray mark could linger in the terminal. Both are fixed: composing works like macOS again, and a space still cancels the accent, leaving just the mark behind.

What's new

  • Photos reach your agent. Sending a photo to your agent from a BoxDo chat now actually reaches it — from the session's own chat, a group @mention, or a whisper. Before, it disappeared silently with no attachment and no message at all.
  • Chat width and line length. Settings → Appearance → Chat now has four controls — conversation width as a percentage of the pane, line length, text size, and density — with a live preview. Message bubbles size to their widest content: prose still wraps at a comfortable column, code and tables can stretch wider and scroll.
  • Inline suggestions in the Input Bar (#32). Claude Code's own composer suggestion now shows as ghost text in the Input Bar when it's empty and idle. Press the right arrow to accept it.
  • Remote sessions get the local input bar (#39). A session running on another Mac now shows the same input bar as a local one — Studio, a Send Later control (dimmed, since it can't act on another Mac), and the collapsed strip (Cmd-Shift-J) — and dropping or pasting a local file into it is rejected with a clear message instead of silently vanishing.

Fixes

  • Chat survives /clear. Typing /clear used to leave the mirrored chat silent for the rest of the session and delay every following message by five seconds. Both are gone.
  • Accented letters compose again. On the US International layout, an apostrophe, backtick or quote followed by a letter composes an accent the way macOS always has. Space still cancels it.
  • Stop actually stops (#43). The Stop button now sends the right key for each engine — Escape for Claude Code, Ctrl-C for Codex — so Codex no longer keeps working after you press Stop.
  • Interruptions show up in chat (#44). Interrupting a turn on Claude Code or Codex now adds a "Turn interrupted" line, instead of the reply just stopping mid-sentence with no explanation.
  • Codex compaction is no longer silent (#45). Compacting context in a Codex session now shows a "Context compacted" line, the same feature Claude Code already had.
  • Update alerts read cleanly. The "update available" alert now shows plain, readable release notes instead of raw Markdown cut off mid-word.
  • Settings open from anywhere. Opening Settings from the file/git panel, the command palette, Keyboard Shortcuts, or a tip no longer silently fails when BoxDo Terminal isn't the frontmost app, and the Cloud Resume settings link now opens the right page instead of General.

0.4.5

10 September 2026.dmgRelease page

Send a prompt later, once or on a schedule, into any session: Claude Code, Codex, or a plain shell. Open Send later with the clock button next to send, or with Cmd-Shift-Return. Say when in plain English, like "tomorrow 6:00", "every weekday at 6" or "when idle". Shift-Cmd-S opens the Scheduled page: every queued prompt on one timeline, with edit, run now, skip and cancel.

The session column has a scope menu (active, closed, all), two filters that stack, and a search that also finds closed sessions.

Send a prompt later

  • Three ways in, one panel. The clock button sits between Studio and send, in the order of the gesture: write it, decide when, send it. ⌘⇧↩ and a right-click on send do the same thing. The panel opens above the bar rather than as a sheet, so the session stays in view behind it.
  • Chips fill the field, they don't open another screen. When idle, In 1 h, Tonight 21:00, Tomorrow 06:00 — offered by the hour, so tonight stops being offered once tonight has gone.
  • The sentence is resolved before it is saved. Under the field you see the schedule in words and the next few real instants. Schedule stays disabled until the sentence resolves, and an unresolved sentence is never written to disk.
  • What it understands is a fixed list, not a starting point: when idle, after this turn, in 45m / in 2 hours / in 3 days, at 18:30 / 6pm, tonight 21:00, tomorrow at 6, mon 9:00 / next monday at 9, every day at 6 / daily 06:00 / every 2 days at 7, every weekday at 6, every hour / hourly / every 2 hours, every monday at 9 / every mon,wed,fri at 9 / every 2 weeks on friday, every month on the 1st at 8 / monthly on the 15th. Anything below hourly is deliberately not accepted. Repeat, Ends, To and If busy are rows under the field for the rest.
  • The prompt is in the panel, and it is editable. A box at the top holds the text — the composer draft for a new schedule, the saved body when you edit one. Editing opens the panel where you already are, on the Scheduled page or on the band chip, without moving you to another session, and Save updates the same rule rather than making a second one.
  • The band tells you what is coming. After Schedule a chip appears on the identity band, a small clock and Tomorrow 06:00, with 2 more beside it when there are. Open it for this session's queue, where every row can be edited. In the last ten minutes before a send the chip becomes a live countdown, ticking by the second and only then.
  • The Scheduled page, ⇧⌘S. Every session on one spine, now a third of the way down. j/k or the arrows move, ↩ opens, e edits, r runs it now, s skips the next occurrence, p pauses the rule, x cancels and asks whether you mean this occurrence or the whole rule. History sits below, and the "ran on time" row opens with ↩.
  • A schedule can target a session that does not exist yet. Under the sessions in To there is "New session in <folder>" for each workspace, with an Engine row: Default, any agent from the catalogue, or Terminal. At the fire BoxT makes the session, names it from the first words of the prompt, and delivers the text there without stealing your selection.
  • When the Mac was asleep. A missed occurrence still runs when the Mac wakes, as long as the day it was due has not ended. Past that it is history, and the row says which thing happened to it: the Mac was asleep, BoxT was not running, a turn was still running, the session or the folder is gone. Three runs in a row that could not be attempted stop the rule, and say so.
  • It stays quiet. Notifications only for the three anomalies — ran late, skipped, rule paused. An ordinary fire tells you on the band and nowhere else.
  • It says what it means. Delivered means the text reached the terminal, not that the task worked. A row bound for a shell says "terminal, no reply". A body starting with / says it runs as a command, decided when you schedule it rather than discovered at 06:00. A schedule never turns Keep Awake on by itself; it only says the Mac may not be there.

The session column

  • Scope: Active, Closed, All — ⌥⌘1, ⌥⌘2, ⌥⌘3. One lifecycle question with one answer at a time.
  • Two filters that stack: With Scheduled Prompts (⌥⌘S) and From a Chat (⌥⌘L). Both off is the column as it was.
  • Search ignores the scope on purpose (⇧⌘F puts the keyboard in the field). Searching from Active still finds closed sessions, and says which hits live there. A session you can only reach by search is how these lists go wrong elsewhere.
  • A small clock on rows that have scheduled prompts waiting.
  • The selected session never disappears. If a filter would hide the session the detail pane is showing, the row stays and is dimmed instead.
  • Sessions started from a chat are collected in a folded "Chats" group.

Also in this release

  • The session name is in the window title, with "workspace · branch" under it. With nothing selected, the header goes back to the workspace and its path.
  • Links in chat. A URL written between backticks is now clickable and keeps its monospace. Inline code, links, list markers and kicker headings sit on a chip tinted from the accent, with the ink moved until it clears 4.5:1 against the real bubble colour, in both themes.
  • Stop from the progress bar in a BoxDo chat now actually stops the agent's turn, and a finished bar stays finished.
  • Whispers, groundwork. Asking your agent with @@ inside a group chat will let it read the group for context and answer only in your private session. The terminal side is in; the feature switches on with the next BoxDo iOS update.
  • Hardening after a prompt-injection audit. Who the owner is comes from an id and not from a name, nobody in a chat can wear an owner's label, and the agent cannot offer to let anyone else in, because that switch does not exist.
  • Signing in with a password no longer reads your account row before it is authenticated.

0.4.4

9 September 2026.dmgRelease page

Mention your remote agent in any chat — a group, a direct message, anywhere you already talk to people. Type @, pick it from My agents, and the answer arrives threaded under your message where everyone can read it.

Two things before you do: remote agents need you signed in to BoxDo, and the mention picker needs the iOS app, TestFlight build 109 or later. The privacy policy has also been rewritten to say what actually happens now that agents read chats: https://www.boxdo.com/terminal/privacy

Fixes a request lost while the engine was still starting.

Mention your agent in any chat

  • @Name, from the picker. The composer's My agents section lists the agents you own, wherever you are. The row reads like a colleague's — @Sydney above, @sydney-agent below — and picking it writes the name, the way a mention of a person does. The handle still works typed by hand, and an @ glued to a word is still an address: me@sydney-agent.com wakes nobody.
  • Only you can ask it. A mention written by anyone else is refused in the composer before a line is written anywhere. Your agent takes orders from you and from nobody else in the room.
  • The answer goes back to the chat, threaded under the message that asked, as activity everyone sees. Files the agent produced along the way arrive in the same chat as real attachments, once each.
  • A progress bar only you see. Received, working, queued, needs input, answered, failed — in the chat where you asked, visible to the owner and to nobody else. Tap it to open the private session behind it.
  • The machinery stays private. Approval cards, question forms and the Pulse remain in your own session with the agent. A permission request in a group would be shown to people who cannot grant it, with buttons that press keys on somebody else's Mac.

The agent is a participant, not a command line

  • It reads the room. Every mention now carries the recent conversation: the lines since it last looked, in your time zone, each one saying who wrote it and whether it arrived as a voice note or over BoxDo MCP. Other people's words are marked as information, never as instructions. A brand-new session starts from local midnight, not "the last 24 hours".
  • Standing instructions travel with it. The Mandate you wrote for the agent goes into every session, quoted verbatim and attributed to you by name, so the agent knows whose rules it is following.
  • It talks to the person, not about you. The preamble tells it to answer whoever asked directly, rather than narrating your request back at them.
  • Replying to it is asking it something. Swipe-reply on one of its messages and you have made a mention, no handle to retype. Voice notes count too, as soon as they are transcribed.
  • Busy agents queue. A mention that lands mid-turn is not typed into a working engine — it waits, you get one Queued frame, and it runs next. A request that arrives while the session is still starting waits for the input line rather than being typed at a resume screen that has none, and the phone says Starting the session — your request is queued. If a request somehow still fails to reach the engine, you are told so within seconds — The request didn't reach the engine — mention it again — instead of watching a progress bar that has nothing behind it. Nothing is dropped and nothing arrives half-answered.
  • Sessions, your choice. One session per chat keeps each conversation's context separate (recommended). A fresh session for every prompt means no memory between questions. Set at creation, changeable later.

Files people send

  • Chat files: Shared or Off. New setting, and the most consequential switch in the sheet. Shared downloads the files sent in chats where you mention the agent into a private inbox — ~/Library/Application Support/BoxDo Agent Inbox, granted to the engine as a readable folder and never inside one of your project folders. 25 MB per file, ten per delivery, swept after 14 days. Off lets the agent see that a file was sent, and its name, and nothing else.

Before it speaks, the chat is told

  • One line, once. The first time your agent is put to work in a chat, and before any word of its own lands there, the chat gets a single plain sentence: "Aurora is Giacomo's AI agent. When Giacomo mentions it, it can read recent messages and files in this chat to answer." No push, no unread badge, and never a second time — the people in a group did not ask for somebody else's assistant, and the first thing they learn about it should not be an answer from a participant they have never seen.

Settings and fixes

  • What you write in the session stays in the session. A confirmed bug: the destination of a turn was one slot per project, set by the first mention and cleared by nothing. Every later reply from that session went to the group — including answers to prompts typed in the session's own chat, from your phone or from this keyboard. It is a queue now, in the order turns were injected: only a turn born from a mention answers in the chat.
  • Agent Settings… — right-click an agent in the sidebar. Name and handle (the handle was called permanent; it is unique, which is a different promise), chat files, and session policy. Renaming the agent renames the bot and nothing else: the workspace keeps the name it has in your sidebar. The handle follows the name until you choose one yourself.
  • Rename Workspace… — a folder's label in this Mac's sidebar can be changed without touching the folder or anything in it.
  • Privacy policy, rewritten. The old one described a local-only app with no account, which stopped being true in 0.4.2. It now says plainly that signing in is optional and what it enables, that a mentioned agent reads the recent messages and files of the chat through the engine running on your Mac under your own subscription with that provider, and how Cloud Resume seals what it stores. https://www.boxdo.com/terminal/privacy

Remote agents require a BoxDo account; the BoxDo iOS app is invite-only for now.

0.4.3

7 September 2026.dmgRelease page

The chat view is no longer Claude-only: Codex and Kimi sessions open straight into the conversation, and Codex now resumes where it left off — history intact, its replies visible in chat instead of an empty mirror.

One caveat, once: a Codex session started before this update begins fresh a single time. After that first turn it binds and resumes normally, every time.

Also here — files an agent creates are clickable in chat and arrive on your phone as real attachments, chat text selects across paragraphs and block quotes in one drag, and workspaces reorder by dragging, like sessions.

Chat, for more than Claude

  • Codex and Kimi open in chat. The waitlist door is gone for both: if the engine is ready and the mirror is bound, the badge in the header is the real toggle between the terminal and the conversation. A dialog that needs an answer still hands you back to the terminal, for every engine and not just Claude.
  • Codex resumes. The check that decides whether a transcript belongs to this session read only the first 4 KB of the file — and Codex opens its transcript with an 18 KB record. It never matched, so nothing bound: no resume, and no assistant lines in chat. It now reads the whole first record.
  • Codex says what it says. codex-cli 0.153 changed the shape of its transcript, and the reader had no case for the new one — a bound session with an empty conversation. Both shapes are read now, and its tool commands carry their exit code and output.
  • One huge record no longer cuts the conversation short. A single transcript record over the 5 MB read cap used to send the reader to the end of the file, taking everything written after it along. Oversized records are now skipped one at a time, and reading continues.
  • Kimi says when it needs you. Kimi announces a question or an approval on its own wire, the request and the answer both, so the chat hands you back to the terminal exactly when there is something to answer — the way Claude's hook does, rather than guessing from the screen.
  • Kimi's own vocabulary. A compaction reads as Context compacted, an interrupted turn as Turn interrupted, and an answered question shows the answer you gave.

Files the agent touches

  • Clickable in chat. File paths in a reply become links that open the file. A file that has since moved says so by name instead of doing nothing.
  • Real attachments on your phone. After a reply that came in over the bridge, files it just wrote are uploaded and posted as one media bubble, signed by the workspace itself. Only files the reply actually names, under 25 MB, and never the same file twice. A file merely mentioned counts only if it lives inside the workspace.

Reading and writing

  • Selection spans the whole answer. Text now selects across paragraphs and block quotes in one drag, and copies with its line breaks intact.
  • US International keyboards. Typing " or ' in a composer types the character instead of arming a dead key. Accents still work through the Option key and through input methods; a ' followed by a vowel now gives you both characters.
  • Text arriving mid-accent survives. A draft, a file tag or a transcription landing while you were composing an accented character used to be dropped on the floor. It now waits and lands when the character commits.
  • Typography, put back. Space between list items, small caps on third-level headings, air above headings that scales with the heading, and [ ] / [x] drawn as real checkboxes that survive a copy.

Workspaces

  • Reorder by dragging — the same gesture as sessions, and the order survives a restart. Never dragged one? Your sidebar is exactly as it was. The Command Palette lists them in that order too.
  • Clicking a workspace works again, a regression from the drag work that lasted a day.

Your account

  • Signing in sticks. The account session is stored in the keychain it belongs in, carried across once from where older versions kept it, and a write that fails is now reported instead of swallowed. A network hiccup at launch no longer reads as "no account" — it retries.

Remote control from iPhone requires the BoxDo iOS app (invite-only for now).

0.4.2

2 September 2026.dmgRelease page

Everything remote is now open to everyone. Sign in with your BoxDo account and this Mac joins your fleet: workspaces can go remote, every conversation from a shared folder is sealed and saved to your account, and any of your other Macs can pick one up and continue it — context intact, mid-thought. No flags, no beta switch: it's just there, in the titlebar cloud and in Settings.

Your Macs, one fleet

  • Remote workspaces — make a folder remote and watch or drive its sessions from another Mac, live.
  • Saved conversations — folders you share keep their conversations in your account, sealed on your Mac before they leave. We store the sealed copy and cannot read it; the key travels only through your own iCloud Keychain.
  • Pick up from another Mac — from the new-session menu or the Cloud page: every saved conversation, newest context first, with the honest door for each — open the live one in Remote, or open a copy here.

Git knows the way

  • Picking up a project conversation on a fresh Mac offers Clone & Continue — the repo's origin and branch travel (sealed) with the conversation. Already have the repo? It says so, and offers Pull to catch up when you're behind. No remote at all? It tells you plainly and continues anyway.
  • If a clone needs credentials, Sign in to GitHub opens right in the terminal — gh auth login, the real thing, no re-implemented dialogs.

The Cloud page

One page in Settings that answers the only question that matters — is my work safe, and where can I resume it? Folders with switches and honest per-conversation status, a Save now that reports what it did row by row, and a recovery phrase under Technical detail so your archives outlive even your Macs.

Also in this release

  • A queued message shows as queued, and ↑ pulls it back before it goes.
  • Everything from 0.4.1's reading overhaul, now with the fleet to read about.

Remote control from iPhone requires the BoxDo iOS app (invite-only for now).

0.4.1

2 September 2026.dmgRelease page

The chat learns to be read. Inline code is now coloured with your workspace accent — every identifier becomes an anchor instead of grey-on-grey — prose gets real rhythm (air between paragraphs, bold that guides instead of shouting), and lines end where your eye expects them to. Two new controls in Settings → Appearance: Chat text size (S to XL — everything scales together, headings, code and the reading column) and Chat width, so on a big display the conversation's two sides sit near each other instead of at opposite poles.

Reading, not squinting

  • Coloured code anchors — identifiers, paths and ids take the workspace accent on a soft chip, ten anchors per technical paragraph. The texture of the page changes before you read a word.
  • Rhythm — body ink softened so bold means something again; headings get air above; list markers take the accent; code blocks sit on a quiet surface.
  • A reading column — text wraps near the classic 66 characters regardless of how wide the window is. The bubble didn't change; the line did.

Your text, your size, your width

  • Chat text size in Appearance: Small, Default, Large, XL. The whole layout scales — not a bigger font squeezed into the same page.
  • Chat width in Appearance: Narrow brings the two shores together on large displays. Width is points, not a percentage — a conversation has an optimal width that doesn't grow with your monitor.

A queued message is visible — and yours to take back

  • Send while the agent is working and the bubble shows it's queued; press ↑ within a few seconds to pull it back into the bar and fix that typo. Once handed to the terminal, the bubble says so honestly — and on interrupt it reads "back in the terminal prompt", never a false "sent".
  • Save now (and every quiet state in the app) now answers with what actually happened, row by row.

Smaller, but you'll notice

  • Messages sent between your Claude sessions render as quiet, expandable rows — never as giant bubbles in your own voice.
  • Companion agents working in a chat show what they're doing: real descriptions on fork capsules, honest clocks, a popover with their live feed.
  • Step headers press on the whole row, and ⌘J on an engine without chat opens an honest door — "not ready yet" — with a one-tap way to ask for it.

0.4.0

28 August 2026.dmgRelease page

The conversation view is back — and this time it lives beside the terminal instead of replacing it. ⌘J flips every Claude session between a chat that reads like messages and the raw terminal, the input bar stays exactly where it was, and the app finally answers "is it working? what did it just do?" without making you squint at escape codes.

Chat or terminal — your call, one key

  • ⌘J switches the view — a proper conversation with bubbles for you, quiet prose for the agent, and collapsible steps between them. It's an app-wide mode, like light and dark: the last ⌘J you pressed is how every session opens, and it survives a restart. The terminal remains the default, and shells always stay terminal.
  • The switch lives in the titlebar too — the capsule names the view you're in ("Chat" / "Terminal"), one click toggles. The model picker that used to sit there moved where it belongs: the model in use shows on the input bar, /model opens the real picker (and flips you to the terminal to show it), and "Choose Model…" waits in ⌘K.
  • ⇥ hands the keyboard to the terminal when you need to type into the TUI itself — and inside the terminal, Tab is still the terminal's Tab. ⇧⌘J summons the input bar from anywhere, always.
  • Some things only a terminal can show — a slash command that opens a screen, a dialog the chat can't render — and the view flips there by itself, exactly then. If you're mid-sentence in the bar, it asks instead of yanking the floor out.

A conversation that tells the truth

  • You can see it working. While the agent runs, the latest activity breathes at the bottom of the chat — a slow pulse in your project's colour, lines dissolving into the conversation as they age. It stops the moment the agent is waiting on you, because waiting isn't working.
  • Steps open up. Every tool line with something inside grows a chevron: click it and see the whole command, the full path, the actual diff of what changed — red and green, like it should be. It turns out nearly half of those lines were being cut off mid-command before; now the cut is gone.
  • Your bubbles wear the bar's colour. Whatever your input bar actually paints — including the colour a pattern mix rotates it into — your messages, the working pulse and the links all speak in that one colour. One place, one voice.
  • Links look like links — tinted and underlined in chat, and in the terminal a plain URL now underlines on hover and opens with a simple click. No modifier keys, no guessing what's clickable.

Sixteen colours, and new projects arrive dressed

  • The palette doubled — a true cyan, a full orange, rose, lime, emerald, violet, clay, and the deep magenta that the "Aurora" mix creates, now available as a direct choice. Your existing projects keep their colours to the decimal.
  • New workspaces start styled — pattern, slim band, immersed paint, watermark name — with a colour drawn at creation and kept forever. The "stack" file style retired; anyone who had it lands on cards, its nearest neighbour.
  • The terminal wears your theme. Themes that never shipped an ANSI palette — including the default — now derive one from their own colours, so switching themes actually changes the terminal too. Themes with a hand-made palette keep it untouched.

Sturdier where it hurt

  • A long-running app no longer starves itself. A leak made the app slowly run out of file descriptors over days of git activity — the visible symptoms were sessions that silently refused to start and a spinner that never gave up. The leak is fixed, the engine's death now gets logged with its last words, and after three failed starts the app tells you instead of retrying forever.
  • Sessions survive CLI updates. A session could refuse to reopen after the claude CLI updated underneath it ("Session ID already in use"). The app now resolves the conversation the robust way, and falls back automatically instead of dying.
  • The input bar stopped locking up on ghosts. Whether the engine is really asking you something is now read from the engine's own signals, not guessed from what's painted on screen — so a table or a quoted phrase can't freeze your typing anymore. If the app merely suspects a dialog, it says so in a quiet line and keeps letting you type.
  • Agents stopped being called "not installed" by mistake. A probe could truncate a CLI's --help mid-answer and then blame the CLI. The probe now reads to the end, waits properly, and forgives a stray byte.
  • Switching sessions is quick and measured — view changes are instant, session switches sit well under a tenth of a second, and the app now records its own switch times so a regression can't hide.

← Back to the app