The Git panel lists Staged Changes and Changes as separate groups in one scroll, conflicts first, each with its own Unstage All or Discard All. Discarding a file under Changes leaves its staged edits alone. A refused commit keeps your message, and a commit can't start during a pull, push or publish.
A commit with nothing staged now says “Nothing staged to commit” instead of “git commit failed”.
The Fork session dialog no longer hides its agent choice the first time you open it; the list fills in when the machine answers.
Forks now default to This workspace for every agent, so your uncommitted changes come along. Before, a fork into the same agent defaulted to New workspace.
File viewers have a Download button. On Android it opens the system Save as screen, with Share beside it; on iPhone it opens the share sheet, where you can save to Files.
Markdown previews now open links to files on your machine, such as file: URLs, absolute paths and Windows drive paths, instead of refusing them. A file: link that names another computer is still refused, so a link can't send your machine to a network share.
Remote access lists each connected device's model, and its memory while it's online. Hover over the host chip in the title bar to see the host's memory.
Select text, Paste and Copy host clipboard have moved from the terminal's quick actions bar into the session menu.
Clicking in a terminal without selecting anything no longer freezes its output.
A notification from another session now names that session, with the agent's own title moved into the body.
Windows: clicking an Antgrid notification now opens the copy that's already running instead of starting a second one.
32 builds since 27 August 2026
Changelog
Every build we ship, newest first. Where one only moved plumbing around we say so rather than dressing it up, and where we haven't written it up the full generated list is one link away.
- v1.20692.1002, 27 August 2026
- v1.20693.1003, 28 August 2026
- v1.20695.1004, 30 August 2026
- v1.20696.1005, 31 August 2026
- v1.20697.1006, 1 September 2026
- 2 builds on 2 September 2026
- v1.20699.1009, 3 September 2026
- v1.20700.1010, 4 September 2026
- v1.20702.1011, 6 September 2026
- v1.20704.1012, 8 September 2026
- 2 builds on 9 September 2026
- v1.20706.1015, 10 September 2026
- 2 builds on 14 September 2026
- v1.20711.1020, 15 September 2026
- v1.20713.1021, 17 September 2026
- v1.20714.1022, 18 September 2026
- v1.20715.1023, 19 September 2026
- v1.20716.1024, 20 September 2026
- v1.20717.1025, 21 September 2026
- 2 builds on 23 September 2026
- v1.20727.1029, 1 October 2026
- v1.20729.1030, 3 October 2026
- v1.20731.1031, 5 October 2026
- v1.20732.1032, 6 October 2026
- v1.20738.1034, 12 October 2026
- v1.20746.1035, 20 October 2026
- v1.20750.1036, 24 October 2026
- v1.20752.1037, 26 October 2026
Carry on in another agent
You can now fork a session into a different agent and carry on with the same context, say when one runs out of quota mid-task. A fork into another agent works in the same workspace by default, so your uncommitted edits come along. The new agent reads the old one's transcript from a file in your project that's kept out of git.
A prompt queued while an agent started, such as a message from another session or a Handler reply, could be typed into the agent's folder-trust dialog and pick the highlighted option, which for Codex and Kimi trusts the folder. It now waits until you've answered the dialog yourself. Affected: v1.20711.1020 to v1.20746.1035, and possibly earlier releases.
Refreshing a stuck connection, or cancelling one project, no longer disconnects other projects open on the same machine for good.
The app no longer crashes when a machine reconnects while its old connection is still closing.
A single failed read of Scheduler's storage no longer turns schedules off until you restart; they resume as soon as the storage can be read.
Codex: forks, session names and Handler see the conversation again, including in sessions Codex has compressed, rolled back or compacted.
Codex: undoing a turn in a chat works again.
Claude Code: sessions are no longer named after a slash command or a compaction summary.
Claude Code: Handler no longer mistakes request logs for the conversation.
Claude Code: an account hold or credential error now reaches you, instead of Handler telling the agent to carry on.
Copilot: sessions take their name from your first prompt, since generating one would cost a Copilot request, instead of staying “Session N”.
OpenCode: slash commands that take no arguments now run instead of failing.
The sample project now has a working Scheduler, with example schedules and simulated runs, so you can try it before connecting a machine. Anything you make there is gone when you leave the sample.
Without a machine connected, Scheduler explains what it needs instead of showing an error every five seconds.
Errors in Files, Git, Preview and settings now give a readable message instead of a raw exception.
Windows: punctuation in an opening prompt, including a scheduled one, could run as commands in the Windows command shell. Prompts are now escaped and reach the agent as text. Affected: Windows releases up to v1.20738.1034; we haven't pinned down when it started.
Windows: launches keep quoted arguments, paths with spaces and opening prompts intact, sending any prompt too long for the command line after launch.
Windows: extra agent arguments are now passed as arguments. Shell operators, redirections and dynamic variables such as %CD% stay literal; ordinary environment variables still expand.
Kimi and Kilo: terminal sessions can resume a conversation and fork natively. A Kimi fork into a new workspace uses a transcript handoff instead, because Kimi's native fork keeps the original workspace.
Opening your phone's notification shade or a system dialog no longer resets a healthy connection when you return.
A file you attach is no longer lost if the connection drops while the file picker is open; it uploads once the connection recovers.
Markdown links printed in the terminal can now open a preview of files outside the session's workspace, including plans and reports an agent saves elsewhere.
In a remote terminal, you can now copy text from the host's clipboard to the device you're using. A setting on that device turns off copies started by terminal programs.
Selecting terminal text now holds the view still while output continues, so copying doesn't chase a moving screen.
Terminal history has a Copy action on touch screens.
You can schedule a prompt to run once, alongside recurring schedules, for supported agents while the desktop app is open. The schedule editor shows upcoming runs and gives each chat schedule its own permission mode.
With the desktop app open again, recurring schedules now catch up the most recent missed run unless the next is less than fifteen minutes away. Earlier misses are recorded together, and you can choose to skip catch-up instead.
The browser preview has Clear site data. The app also clears supported preview data when a port changes project and when you sign out. Clearing affects all previews and signs you out of their dev apps; older Android WebViews keep some data.
Terminal hyperlinks with a relative target, such as OpenCode's, now open in the Files tab at the line they name instead of being refused.
Phone controls are easier to tap.
Image previews zoom with a pinch or the mouse wheel.
Long lines and wide tables show a scrollbar, so you can see there's more.
Undelivered push notifications now expire after twelve hours, so a phone coming back after days offline doesn't receive a backlog of old agent updates.
You can open support chat from the sample project without signing in.
You can schedule prompts for supported agents to run while the desktop app is open. Manage schedules from connected devices, review each run and open its session when it needs your input.
Resending a sign-in link no longer fails when the old link's expiry arrives mid-resend.
The sign-in page shows how long until you can resend a link.
The site has a public roadmap, so you can see what we're building and what's still under consideration.
Help lives in the main menu now, with support, logs, version information and a way to check for updates yourself.
The app does less work while you type, while an agent streams a reply and while files change. Long conversations, search results and terminal scrollback no longer make every small update reprocess everything already on screen.
Moving the mouse over an agent terminal no longer floods it with motion reports. We cap those reports at twenty a second.
A temporary connection failure no longer leaves your phone stuck on a permanent refusal. You can also share its log files from the app when something goes wrong.
The web sign-in page remembers which method you last used, so coming back doesn't mean guessing which button got you in.
File paths and bare web addresses printed in the terminal are clickable. A file opens at the line the agent named, a folder is revealed in the tree, and relative paths resolve from that terminal's working directory. They keep the terminal's colours and underline on hover.
The Git panel has an inline commit box, so writing a commit stays beside the changes you're reviewing.
Old git results and workspace notices no longer announce themselves again when you open a session or switch focus. Errors and agent notifications also reach you while the New Session screen is open.
Session status no longer gets stuck needing you after an abandoned prompt or a local slash command. OpenCode's permissions and questions reach Antgrid again, and a question still waiting for an answer keeps its status.
Windows packages declare the firewall rules the bridge needs for remote connections.
Android notifications use a monochrome Antgrid icon rather than a solid block.
A steadier remote connection
Action needed: update the app and the bridge to this release together. Remote terminal, file and preview traffic now travels over an encrypted connection between your authorised devices; our server carries only account and connection control.
The browser preview forwards the dev server's traffic without rewriting HTTP headers or cookies. It supports local HTTPS too, and keeps its address through a reconnect.
The phone terminal has a key bar with sticky Ctrl and Alt, a one-tap Ctrl+C and a prompt box for composing before you send. Long-press the keyboard key when you need to type directly into the terminal.
You can sign in with Apple on the web, on iOS and through the browser on macOS. Other iOS sign-in flows stay inside the app.
Returning to a session on your phone catches the conversation up with what happened while you were away.
Bringing the desktop window into focus no longer drops connected phones, and renewing account tokens no longer knocks an otherwise valid connection offline.
With the remote-access switch off, earlier releases still let remote commands and preview connections through. Every remote surface honours it now, as agent exchanges have since v1.20715.1023.
Revoking a device from your account takes effect even when no project is open.
Remote-access controls recover after the bridge starts, and launching the app no longer flashes a false request to restart the bridge while it's still warming up.
Session status no longer reads “working” or “needs you” long after the agent has moved on, such as after a finished command or an ignored Esc.
App notices stack at the bottom of the window, with repeated notices replacing themselves. Following a local link opens the right preview tab even when the preview isn't on screen.
Signing in on macOS survives an app restart. The notarised app can now use the keychain where it stores your credentials.
Agent terminals consistently advertise colour support, including on Windows.
The site and your web account have a light theme. They follow your system setting, with a switch when you'd rather choose yourself.
An agent turn inferred from terminal activity no longer stays open forever when its end wasn't reported.
Remote connections no longer lose data while redialling, and notice a dead connection sooner.
A bridge that started in local mode can answer an exchange from another agent after it connects remotely.
The file tree loads folders as you expand them instead of fetching the whole repository. Large projects have less to send before you can start browsing.
The tree shows git-ignored files too. Collapse and reopen a folder to refresh them; file search and agent mentions still leave ignored files out.
Replies to exchanges between agents arrive, and a refused exchange says so instead of leaving the sender waiting.
Incoming agent exchanges respect the machine's remote-access switch.
Narrowing a terminal pane no longer leaves the agent's full-screen display at its old width.
Handler's backlog numbers its items instead of labelling them with a status word most of them share, so a dependency can point at the one it's waiting on. The sheet no longer says your sentence twice in two voices.
The bar above the prompt says what Handler is actually doing, and the lens row is legible.
Switching sessions no longer resizes the agent terminal in front of you. It used to open at the previous session's width and correct itself a frame later. Pane dividers belong to their session too, so dragging one doesn't move it everywhere else.
The site has a blog, for the things that need more room than a release note.
Antgrid's source is MPL-2.0. The relay and the web service stay Elastic 2.0; everything else, including the wire format and the Dart relay client, is MPL now.
Remote sessions were timing out with nothing to explain it. A request the bridge refused was dropped in silence, so the app waited for an answer that was never coming. Every refusal is answered now.
A burst of output that outran the terminal used to cost you the display for the rest of the run. It costs you the burst instead, and the app tells you what it dropped.
Handler was judging on far less than it thought. It asks for twenty messages of context and was usually getting one. It reads a wide enough window now, and the activity pane shows the history from before you opened it.
You can write your own lens when you arm Handler instead of picking one of ours.
The remote-access switch is inbound only, which is what its name and its own wording have always promised. It governs what can be done to this machine, so with it off your agents here can still open an exchange with another machine and get a reply. Nothing unsolicited gets in.
Switching sessions while a side pane is moving no longer hard-wraps the agent's output.
Maintenance build. Nothing here changes what you'd notice using it.
The terminal, over a remote link
Action needed: update the app and the bridge to this release together. There's no fallback, so an app or bridge too old for the new terminal asks to be updated rather than half working.
The terminal works differently at a distance. Rather than streaming every byte to your phone, the bridge keeps the real screen and sends pictures of it, up to twenty a second. Scrollback stays on the machine and pages in as you scroll.
There's live chat on the site, in your account and in the app. Nothing is requested from the chat provider until you click the launcher, so it costs nothing on a page you never chat from.
We were pushing terminal output at apps with nothing listening for it, indefinitely. One link measured 17,000 dropped frames in 24 minutes. It stops when the listener goes.
Analytics moved to an Umami instance we host ourselves. It's cookieless and first-party, and the privacy notice says so.
The bridge makes model calls on your own provider account to name sessions and to run Handler's judge, and until now they were invisible: they spent your money and left no record of what ran or on which model. Now there's a record of every one.
Signing out signs you out. Account state was surviving in a cache for the life of the process, and a machine that had left the account was still listed.
Windows opens relay frames with the operating system's own AES-GCM. The pure Dart cipher it fell back to ran at around 12 MB/s on the UI thread, which a busy terminal or a tunnelled preview paid for directly.
An isolated Codex session could refuse to open, printing “Resuming session…” and exiting a couple of seconds later. It was trying to resume a helper thread that was never a session.
On Windows a session action could fail outright because a virus scanner or the search indexer had one of our files open for a moment. We wait it out.
And this page.
Opening a remote session could land you on a frozen agent terminal with nothing saying why. The pane couldn't tell “there are no terminals” from “the terminals haven't attached yet”, and some of the waits had nothing behind them that could ever end.
The file tree no longer re-sends unchanged snapshots, which made up half of a remote session's traffic and held up your typing.
The app reports its own stalls, rather than leaving them visible only from the other end.
Windows: Ctrl no longer sticks down after a paste.
Image previews open where they were opened from, and a narrow pane stops overflowing.
An opened folder resolves to the project that owns it, so one repository can't appear twice under two identities.
Remote sessions were timing out on large repositories. We sent the whole file tree the moment you connected, which swamped the link before anything else could get through. The tree is paced now, and browser preview traffic streams.
Resuming a session keeps what it had, and Codex approval alerts don't fire before the agent has actually asked for anything.
The file tree's selection no longer points at the wrong row after a refresh.
The browser preview's annotation panel can send a capture straight to the agent.
Downloads have a page of their own now. It also stopped handing a Windows installer to anyone reading on a phone.
Tapping a push notification opens the session it's about.
Live reload works in the browser preview again; we weren't forwarding its connection to the dev server properly.
Handler grows up
Handler belongs to the session now rather than the machine, and when it refuses to arm it tells you why.
It asks the agent before answering on your behalf, and it confirms any undo that would leave your machine.
Notify-only is retired. Handler acts, and the wrap-up it writes survives a restart.
Markdown files open in a real viewer, with a heading outline and links that go where they say.
The Git panel gained commit history, pull and push.
Maintenance build. Nothing here changes what you'd notice using it.
Maintenance build. Nothing here changes what you'd notice using it.
Remote connections notice a dead link sooner and check the connection is still alive when the app resumes.
Handler's backlog dialog says what happened to each item and shows the instruction in flight, and you can correct an item's text.
Approval policy is set per session, so you can let one session skip prompts without touching the others.
Workspace context is scoped to the session it belongs to.
Point at anything in the browser preview and draw on it to leave the agent feedback.
Isolated sessions were becoming permanently undeletable. A coding agent's helpers outlive the terminal that started them and keep hold of the checkout, so git couldn't remove it. A terminal takes its orphans with it now.
Coding agents get to shut down properly. Every teardown path killed an agent's terminal outright, which is why Claude Code kept announcing that its renderer hadn't finished starting last time.
Coming back to a session shows you the screen as it stands rather than the tail of a stream you missed the start of. Files and preview recover the same way.
A session keeps the title we generated for it across a restart.
Push notifications work on Android. They never had: the Firebase config the build needs was ignored by git and had never shipped.
You can fork a session into a new workspace cut from where it got to, or into the one it's already using, and carry the conversation over.
Two-finger scroll works in the terminal on a laptop trackpad.
Handler reports what it couldn't send instead of calling the work done. Traced from a real session where it sat armed all morning, sent the agent nothing, and wrote a wrap-up anyway.
Claude Code: /background and similar commands no longer move a session out of Antgrid into a job it can't see.
Updating on Windows brings the app back afterwards, shuts the bridge down rather than having it killed mid-install, and reports what the Store actually did instead of calling every outcome a success.
Known issue: Claude Code: pressing Left twice at the prompt still moves the session to Claude Code's background agents, where Antgrid doesn't follow it.
Sessions are named for what they're about rather than for the first thing you typed.
Tapping a remote session opens that session, not whichever one the cache happened to list first.
Links in the terminal open on a plain click. A full-screen agent takes the mouse before it prints anything, which is why they didn't.
You can see where a link goes before you follow it, and we ask first when the address is built to be misread.
The projects drawer indents. Every level used to start at the same place, so a three-level tree rendered flat.
Running an older build? The app checks for new ones and tells you when there is one, or you can download the latest directly.