# MAO changelog

Release notes for MAO desktop, newest first. Each release is also at https://trymao.dev/changelog/<version>.md.

## MAO 0.12.1

Released 2026-10-29. [Release page](https://trymao.dev/changelog/0.12.1), [Markdown](https://trymao.dev/changelog/0.12.1.md).

### Changes

- **Grab part of a page for an agent.** Press Grab on a browser portal's bar, or choose it in the command palette, then drag a box over the page. Hold Shift for a square. The picture is attached to the composer of the agent connected to the portal, which opens ready to type. With several agents connected, you choose one first. Press Escape, click, or press Grab again to stop.
- **Agents can drag and wait on a page.** `mao portal drag` holds the button down and moves from one element or point to another; on an Android device it is a swipe. `mao portal wait` waits until a page shows an element, some text or an address, or until an element is gone, for up to two minutes.
- **Recruit onto another canvas.** An Orchestrator can place a new agent on another canvas of its own workspace with `mao recruit --canvas`, and the two can send each other work. If nobody has that canvas open, the agent waits there as a draft until you press Start. Connections between canvases need a licence.
- **Recruit onto a layer that is not open.** `mao recruit --layer` now works for any layer of the canvas, not just one you opened this session. On a closed layer the agent waits as a draft until you press Start. An agent recruited onto another layer is now connected to the one that recruited it.
- **Start an agent in a folder.** `mao recruit --dir` starts the new agent in a folder inside the project. A folder outside the project is refused.
- **"New layer for this" in the composer.** In the attach menu, it asks the agent to create a layer for the task and recruit its helpers there.

### Fixes

- **Packs install on Linux.** In 0.12.0, adding a pack on Linux failed with "Permission denied", whether it came from a folder or from the official registry. Packs now install.

## MAO 0.12.0

Released 2026-10-29. [Release page](https://trymao.dev/changelog/0.12.0), [Markdown](https://trymao.dev/changelog/0.12.0.md).

### Changes

- **Packs: arrangements, roles and agents made by someone else.** A pack holds saved arrangements, the notes they bring, roles and ready-made agents. Open Apply arrangement and choose the Packs tab to add one. Before anything is installed, MAO shows everything the pack holds, every role in full and every command it would run. Installing never runs anything, and an arrangement cannot start one of the pack's own commands until you approve it. A pack's arrangements are read-only: put them on the canvas as they are, or use Duplicate to edit for a copy of your own.
- **Pack sources.** A source is a Git repository that lists packs, each pinned to an exact commit. The official MAO registry is built in. You can add your own, such as a company's private repository, in Settings, Pack sources. MAO uses the `git` you already have, so anyone who can read the repository can install from it. When a source has a newer version of a pack you installed, the update review shows what changed and asks you again about any new command.
- **Packs that ask questions.** When you add one of its arrangements, a pack can ask for a few answers, such as the topic or the tech stack, and fill them into its notes and roles. An answer is only ever text: it never goes into a command, an address or a path.
- **The first pack: Learn by rebuilding.** It is in the official registry. A Builder, a Student and an Explainer rebuild one concept from scratch, then turn it into a lecture and a post.
- **Packs from the command line.** `mao pack` checks, adds, lists, searches, updates and removes packs, and `mao source` manages the sources. `mao pack init` starts a new pack folder. `mao pack publish` opens a pull request that lists your pack in a registry, and only after you confirm. Agents can use a pack's roles and agents through `mao role` and `mao recruit`.
- **Tables in chat.** When an agent answers with a Markdown table, the chat now shows a table instead of raw `|` text. Release notes show tables too.
- **Chat over ACP (beta) shows more of the work.** Each step has an icon for its kind, and failed steps are marked in red. Open a step to see an edit's diff or the end of a command's output. Several reads, searches or fetches in a row become one line, such as "Read 6 files". A turn that changed files ends with a list of them and their added and removed lines, and clicking a file opens it in Changes. A folded thought shows its first line.
- **Drag empty canvas to move it.** With the Select tool, dragging on empty canvas now pans the view. To draw a selection box, hold Shift and drag.
- **Settings in the navigator.** The bottom of the navigator now has a Settings row, under Open on a server. Settings is still in the Draw and more menu too.
- **The welcome screen plays on its own.** The four rows on the first welcome screen now take turns until you pick one. With reduced motion, they stay still.

## MAO 0.11.10

Released 2026-10-25. [Release page](https://trymao.dev/changelog/0.11.10), [Markdown](https://trymao.dev/changelog/0.11.10.md).

### Fixes

- **Agents on a trial can send each other work again.** On the free trial, two agents wired together on the same canvas could not reach each other: `mao ask` and `mao send` were refused with "task sharing is not granted", even though `mao peers` listed the other agent. A connection drawn on one canvas now works on every plan. Connections to agents on other canvases still need a licence.

## MAO 0.11.9

Released 2026-10-21. [Release page](https://trymao.dev/changelog/0.11.9), [Markdown](https://trymao.dev/changelog/0.11.9.md).

### Fixes

- **Opening MAO no longer replays old results.** Since 0.11.7, every time MAO started, an agent that had sent tasks got every past result pasted into its terminal again, one after another. Now a result reaches the agent once, and after a restart MAO only delivers the results that never got there. The old results are still listed in `mao tasks`.

## MAO 0.11.8

Released 2026-10-20. [Release page](https://trymao.dev/changelog/0.11.8), [Markdown](https://trymao.dev/changelog/0.11.8.md).

### Fixes

- **Windows: agents installed with npm are found.** MAO now picks an agent the way your terminal does: the first one on your PATH. An agent installed with `npm install -g` (Codex, Gemini CLI, OpenCode and the others) is listed and starts, and after you update one, MAO runs the copy you updated instead of an older one further down your PATH.
- **Gemini CLI says when it is too old.** Gemini CLI before 0.41 cannot start a MAO session, and a Gemini agent on one used to fail with its own usage text. It now says which version it found, where, and how to update it.
- **Browser portals keep streaming.** A page left still for a moment could freeze its portal on the last frame, blurry if you had zoomed, while the agent still saw the live page. The portal now picks up again as soon as the page changes.

## MAO 0.11.7

Released 2026-10-20. [Release page](https://trymao.dev/changelog/0.11.7), [Markdown](https://trymao.dev/changelog/0.11.7.md).

### Changes

- **Every canvas has its layers.** Before, only the canvas MAO opened first in a window could show and switch its layers, so a canvas you opened later, and kept open in the background, showed no layers in the sidebar. Now every open canvas has its own layer list under its row, with its layers' status, and you can switch, land, archive or create layers on it. Ctrl+Up, the command palette's layer actions and Ctrl+Shift+Up (back to the previous layer) act on the canvas on screen.

### Fixes

- Quitting MAO now counts the agents running on the layers of every open canvas before it asks you to confirm, and saves those layers' layouts.

## MAO 0.11.6

Released 2026-10-20. [Release page](https://trymao.dev/changelog/0.11.6), [Markdown](https://trymao.dev/changelog/0.11.6.md).

### Changes

- **Your theme can change every colour, corner and motion.** `theme.json` now reaches every theme value MAO draws with: colours, shadows, the corners of buttons and panels, the press, focus, selection and disabled looks, every duration and easing curve, the type families and sizes, and the terminal's palette in each room. Changing one accent, hover or primary colour moves every control that uses it. Layout stays fixed: sizes, padding and gaps are not theme values.
- **Your editor can help you write a theme.** MAO now writes `theme.schema.json` beside `theme.json`. A new theme file points to it, so VS Code, Zed and the JetBrains editors complete the keys and flag values MAO would not apply. In an older file, add `"$schema": "./theme.schema.json"` to get the same.
- **MAO tells you when your theme was not applied as written.** Settings, Appearance lists the keys it could not read, the values it clamped, and the colours it moved to keep text readable. The canvas shows a short notice when there is something to read there. If the file stops reading while you edit it, the last theme that worked stays on screen. Theme files from earlier versions still work.
- **`--help` on every `mao` command.** `mao <command> --help` prints how to use that command, and `mao --help` lists the task commands (`send`, `next`, `tasks`, `result`, `wait`) with the other agent commands. `mao ask` prints which task it sent before it waits, so you can still `mao wait` for it if the wait is interrupted.

### Fixes

- MAO no longer crashes when you open Settings while a layer, or a canvas kept open in the background, is on screen. Back up now and `mao backup` from there no longer crash either.
- A task sent right after `mao recruit` is no longer lost while the new agent is starting. It waits until the agent is ready, and long pastes get a longer pause before they are submitted.
- A result that reached its sender's terminal while that agent was not ready is no longer dropped. MAO delivers it, oldest first, once the agent can take it. Tasks requeued after a restart also wait for agents still resuming their sessions.
- Browser portals no longer hand out passwords. A password or one-time-code field shows only whether it is filled, in snapshots and in `mao portal text` and `mao portal html`.
- Browser portal snapshots list every option of a menu, tree or grid, not just the one in focus.
- `mao portal navigate` to a link that only changes the `#` part of the address no longer times out after 30 seconds, and back, forward, reload and `mao portal ua` finish reliably.
- Clicks and other pointer actions in a browser portal aim at where the element really is after scrolling, and report an error when the element is hidden, off screen or covered, instead of reporting success.
- `mao portal check` fails when the click did not change the box, `scrollintoview` skips hidden matches, and `fill` checks what the field holds and types the value key by key when a field does not accept it at once.
- On Windows, the maximize button restores the window again, and dragging the title area moves the window, with snapping and Snap Layouts.

## MAO 0.11.5

Released 2026-10-17. [Release page](https://trymao.dev/changelog/0.11.5), [Markdown](https://trymao.dev/changelog/0.11.5.md).

### Changes

- **Crash reports reach the right person.** With crash reports turned on, a report is now linked to your MAO account, so when you write to us about a crash we can find it. The app sends your account id, never your email.
- **Failed updates are reported.** With crash reports turned on, MAO tells us when an update fails to download, to verify or to install, including a Windows installer that was cancelled or stopped after it started.
- **A health check at your first sign-in.** When you first sign in, MAO sends two numbers: how many times it crashed and how many times it quit unexpectedly before that sign-in. It sends them even when crash reports are off, because a crash before sign-in is exactly the problem we could not see. Only the two counts go, never a message, a file or anything you typed.
- **Each download carries an anonymous download number.** It is sent once, at sign-in, so we can tell whether a download became a working install. It says nothing about you.
- **The Linux install script reports how the install went.** It says whether the install finished, or at which step it stopped. Set `MAO_NO_INSTALL_REPORT=1` before running it to turn this off.
- **Genuine builds can be recognised.** Every release now records the identity of each build, and the update check sends the identity of the copy you are running, so a modified copy can be told apart from ours. An update is never refused because of it.

Our [privacy policy](https://trymao.dev/privacy) lists everything MAO and the website collect.

## MAO 0.11.4

Released 2026-10-16. [Release page](https://trymao.dev/changelog/0.11.4), [Markdown](https://trymao.dev/changelog/0.11.4.md).

### Fixes

- MAO no longer crashes when an agent runs `mao workspace list`, or another workspace or canvas command, from a terminal on a workspace that is kept open in the background.
- A new terminal no longer inherits what belonged to a terminal you deleted earlier. MAO could give a new node the number of an old one, and the new agent then showed a line running off the window and a cross-canvas peer in `mao list` that you never connected. A node's number is now never reused. Deleting a terminal, or deleting a canvas from the sidebar, removes its connections to other canvases, and connections left behind by earlier versions are cleared when the canvases open.

## MAO 0.11.3

Released 2026-10-16. [Release page](https://trymao.dev/changelog/0.11.3), [Markdown](https://trymao.dev/changelog/0.11.3.md).

### Changes

- **Older projects can be deleted from the sidebar.** A project opened before workspaces held canvases sits in the sidebar as a top-level row, and its menu now ends with Delete project. It asks first, then removes the row. The project's files and folder stay on disk, and opening the folder again brings it back. If the window was showing that project, MAO moves to your most recent remaining one.

## MAO 0.11.2

Released 2026-10-15. [Release page](https://trymao.dev/changelog/0.11.2), [Markdown](https://trymao.dev/changelog/0.11.2.md).

### Changes

- **The main button is blue in the light theme.** Every primary button in the app, such as Save, Buy, Done, the send button and Sign in, now uses the accent blue, with a focus ring that stays visible on it. The dark theme keeps its white primary button.
- **Buttons and pills take the website's corner.** Buttons, chips, key hints, tabs, the segmented controls, the tool rail and the node bar are now rounded squares in the same proportion as the buttons on trymao.dev, instead of full pills. The strips around them follow, so the gaps stay even.

## MAO 0.11.1

Released 2026-10-15. [Release page](https://trymao.dev/changelog/0.11.1), [Markdown](https://trymao.dev/changelog/0.11.1.md).

### Changes

- **On macOS the app is now named MAO in Applications.** The first time MAO opens after an update, it renames its own folder to `MAO.app` in the same place and reopens, so Finder, Applications and Cmd+Tab show the new name. It does nothing if a `MAO.app` is already there, if you renamed the app yourself, or if it is running from a disk image. If you pinned the app in the Dock, pin it again.

### Fixes

- Installing an agent's adapter no longer fails with "needs Node" while the computer is busy. A script that had just been written could be refused for a moment, and that was reported as Node being missing.

## MAO 0.11.0

Released 2026-10-15. [Release page](https://trymao.dev/changelog/0.11.0), [Markdown](https://trymao.dev/changelog/0.11.0.md).

### Changes

- **A new name.** The app, its window, its icon, the installers, the notifications and this website now say MAO. On the first launch after you update, your workspaces, canvases, notes, chats, arrangements and settings are moved to the new data folder. Nothing is deleted, and the old folder stays as a link to the new one for a while.
- **Sign in with your email.** The app opens your browser, sends you a link by email and connects the computer. There is no password. Your 7-day trial starts when you connect a computer, and a paid licence is renewed quietly in the background while you are online. If you already have a licence key it keeps working: sign in once to link it to your account. The sign-in screen is a single button.
- **One computer per account.** Connecting a second computer offers to replace the first, a limited number of times per year. The computer you replaced is disconnected at its next renewal, and you get an email when a computer is connected or replaced.
- **The command is now `mao`.** The `relay` command and the `RELAY_*` variables agents see are replaced by `mao` and `MAO_*`. The app replaces the agent skills it installed earlier with their new versions on first launch. Anything of your own that calls `relay` or reads a `RELAY_*` variable, such as a routine's script, has to be updated.
- **Backups are written as `.mao-backup`.** Existing `.relay-backup` files still restore.
- **Linux:** the launcher entry and icons are renamed, and the old launcher entry and the `relay` program are removed when you first open the update. If the old entry was pinned as a GNOME favourite, pin the new one again.
- **Trial and unlicensed installs do not update in place.** If you are on the free trial or have no licence, download MAO from [trymao.dev](https://trymao.dev) and open it as usual.

## MAO 0.10.0

Released 2026-10-13. [Release page](https://trymao.dev/changelog/0.10.0), [Markdown](https://trymao.dev/changelog/0.10.0.md).

### Changes

- **Chat over ACP (beta).** An agent's chat view can now talk to the agent through the Agent Client Protocol instead of its terminal. You get a real conversation thread, a composer, and permission cards you answer in place. Turn on "Chat over ACP (beta)" in Settings, then switch it on agent by agent. Claude Code starts on. If an agent's adapter is missing, the chat page offers to install it into MAO's own folder with one click. When an agent asks you to log in, the chat page shows its sign-in options. Switching chat off hands the same session back to the terminal.
- **Each thread colour is its own conversation.** For Claude Code, Grok and Codex, every thread colour now keeps its own provider session. Picking another colour resumes that colour's conversation instead of mixing them.
- **Gemini CLI.** Gemini is now a built-in agent, with its own tile in the agent sheet and its brand mark.
- **Workspace backups.** Back up a workspace to a `.relay-backup` file and restore it, either as a new workspace or over the original. A backup holds canvases, notes, chat transcripts and arrangements, never credentials or tokens. Turn on daily backups in the new Backups card in Settings, which keeps 14 days. The palette also offers "Back up this workspace".
- **Get around the canvas from the keyboard.** Ctrl+Alt+Shift+1 to 9 (Ctrl+Cmd on macOS) jumps to a terminal by number and gives it the keyboard. Hold the modifiers to see each terminal's number. Ctrl/Cmd+] and [ step along the selected node's connections, and Ctrl/Cmd+Shift+. jumps to the next agent that needs you, even on another layer.
- **Orchestrators can set up workspaces.** An Orchestrator agent can now list, create and rename workspaces, and create, move, rename or clone canvases, with `relay workspace` and `relay canvas`. A cloned canvas copies the layout with its agents as unstarted drafts.

### Fixes

- "Restart to update" works again while agents are running. The quit question used to open behind the update window, so the app could never restart into the update.
- Starting a new thread no longer hides the grey thread's bookmark.
- Switching canvases no longer fails with "Workspace was not saved". Two canvases saving at the same moment could also mix up their files.
- A new canvas no longer opens with the nodes and layers of a canvas you deleted earlier.

## MAO 0.9.0

Released 2026-10-12. [Release page](https://trymao.dev/changelog/0.9.0), [Markdown](https://trymao.dev/changelog/0.9.0.md).

### Changes

- **Review Git changes on the canvas.** Add a Changes node to browse modified files and inspect readable, side-by-side diffs. Filter by staged or unstaged changes, expand individual hunks, and move between changes.
- **Stage or restore as you review.** Stage and unstage files or individual hunks from the Changes node. Restore discarded edits with a confirmation, and undo a restore. File nodes also show change counts and inline diff hunks in the editor gutter.
- **Keep canvas tools close at hand.** The canvas tool rail now sits at the right edge, with node actions arranged alongside it in a compact dock.

## MAO 0.8.2

Released 2026-10-05. [Release page](https://trymao.dev/changelog/0.8.2), [Markdown](https://trymao.dev/changelog/0.8.2.md).

### Changes

- **Bookmarks stand behind the card.** Thread bookmarks now rise from behind the agent's card, the way bookmarks stand out of a book, instead of sitting over its header. The header no longer keeps space for them.
- **Easier to tell apart.** Each bookmark has a notched top, and the thread on screen stands tallest.
- **Waiting threads are easier to spot.** When you are waiting for an answer in a thread, its green light now sits on the tip of the bookmark, where it shows on any colour.
- **Selection stays clear.** The selection outline now runs unbroken in front of the bookmarks.

## MAO 0.8.1

Released 2026-10-05. [Release page](https://trymao.dev/changelog/0.8.1), [Markdown](https://trymao.dev/changelog/0.8.1.md).

### Changes

- **Thread bookmarks sit side by side.** The bookmarks for the threads you use now stand next to each other in colour order, with no gaps between them, so an agent with one or two threads looks tidy.
- **Start a new thread with one click.** A dashed bookmark with a plus now ends the row. Click it to start the next unused thread in the chat, for example "New thread · Orange". You no longer need to hover to find it. To pick a particular colour, use the thread menu.
- **Bookmarks look like part of the card.** Each bookmark is raised like the rest of the app's small metal parts, with a soft shadow along its edges and a line of light on top. The line that seemed to cut each bookmark where it met the card is gone.

## MAO 0.8.0

Released 2026-10-05. [Release page](https://trymao.dev/changelog/0.8.0), [Markdown](https://trymao.dev/changelog/0.8.0.md).

MAO 0.8.0 is the biggest release yet. Agents now get a chat beside their terminal, with seven threads each. Routines send prompts on a schedule. Notes stack into notebooks. And your agents can run more of the canvas themselves: they can post status, land layers, write roles and notify you.

### Chat with your agents

Any agent terminal can now show a chat in place of its terminal grid. The agent keeps running underneath, and you can switch back with one click.

- **Turn it on from the node.** Use **Chat** on the node's bar, in its right-click menu or in the command palette. The agent replies with `relay say`, and the skill that ships with MAO teaches it how.
- **Write at the bottom.** The prompt box sits at the foot of the chat. Enter sends and Shift+Enter starts a new line. Your message is saved before the agent sees it, so nothing is lost if the agent restarts.
- **See the work happen.** While the agent works, its progress updates appear as a live list under a small animated orb, with the time elapsed. When it answers, the steps fold into one line you can open again.
- **Readable answers.** Code comes in highlighted blocks with a copy button, each answer can be copied, messages are grouped by day, and a pill takes you back to the newest message after you scroll up.
- **Images and files.** An agent can show a screenshot right in its reply (`relay say --file shot.png`) and attach up to 8 files of up to 25 MB each (`--attach`). Click an image to open it in your viewer. Images in Markdown are shown only when they are files in your project; MAO never downloads a remote image.
- **Agents can catch up.** `relay chat recall` reads the conversation back after a restart or a compacted context, including by date: `--last day|week|month`, or `--from` and `--to`.

### Seven threads, as bookmarks

Each agent has seven chat threads, one per colour: red, orange, yellow, green, blue, purple and grey. Each thread is its own conversation.

- **Bookmarks on the node.** Every thread you have used hangs a bookmark ribbon from the top of the agent's node, in its colour. The thread on screen hangs longest, and the header names it, for example "Claude Code · Blue". The bookmarks show in the terminal view too, so you can see which threads are in use without opening the chat.
- **One click to switch.** Click a bookmark to open that thread. From the terminal view, the click opens the chat on that thread.
- **Start a new thread.** Hover over the bookmarks to show a dashed one for each empty thread, then click it.
- **See who's waiting.** A thread where you are waiting for an answer shows a small green light under its bookmark.
- **Right-click for the list.** Right-click any bookmark for all seven threads, with how many turns each has had and when it was last used.
- **The agent follows you.** The agent answers in the thread you last wrote in. Use `relay chat recall blue` to read one thread, or `relay chat recall list` for all seven.

Chat is not available on server workspaces yet.

### Routines

Routines send a prompt to an agent on a schedule, or show you a desktop reminder.

- **Schedules.** Run every few minutes or hours, daily at a time, on chosen weekdays, or once. A routine can stop after a number of runs or on a date.
- **Built-in checks.** By default a routine skips an agent that is still busy with a task or a reply. An optional script runs first, and its output is placed in the prompt wherever you write `{{output}}`.
- **The Routines panel.** Open **Routines** from the command palette, or choose **Schedule a routine…** from an agent's menu. Each routine shows its schedule in plain words, the agent it goes to and when it will run next. A switch pauses it, and the **History** tab shows each run, skip and failure.
- **Clear form.** The form shows when the routine would run next as you type. If something is wrong, the message appears under the field that needs fixing.
- **For agents too.** Orchestrator agents can manage routines with `relay routine`.

Routines run while MAO is open. A run missed by more than ten minutes while MAO was closed is skipped, not run late.

### Notebooks

Stack notes into a notebook: one card with a tab for each note.

- **Stack and unstack.** Select some notes and press **Ctrl+Shift+B** (Cmd+Shift+B on macOS), or drop a note onto a notebook. **Unstack note** puts the note on top back on the canvas.
- **Looks like a notebook.** A spiral binding runs down the side, with divider tabs on top and ruled paper inside. When you click to edit, you write on the same paper in the same size, so the text does not jump.
- **Tabs you can rearrange.** Drag a tab to reorder it, move it to another notebook, or drop it on the canvas. Right-click a tab to rename, unstack or delete it. When there are many tabs, they shrink evenly and the strip scrolls, and the tab you are on always stays readable.
- **One connection for all of it.** Connecting an agent to a notebook gives it every note inside, including notes added later.
- **Agents can use them.** Orchestrators can stack, unstack, create and delete notes with `relay note`. A note an agent deletes goes to a trash for seven days, and undo brings it back.

### Agents that run more of the canvas

- **Layer status.** Agents can post a one-line status for their layer with `relay layer status`, shown under the layer in the sidebar. A layer marked blocked or ready for review notifies you, which you can turn off in Settings. `relay layer list` shows every layer at a glance.
- **Land a layer.** **Land…** in a layer's menu, or in the command palette, shows a dry run first, then merges the layer's branch into your project. MAO never resets a branch, forces a change or stashes your work, and it refuses if a branch moved since the check. Landed layers are archived unless you keep them.
- **Agents manage layers.** Orchestrators can create, archive, restore and land layers, and place a new agent on a layer with `relay recruit --layer`. Every terminal now knows its layer through `RELAY_LAYER_NAME` and `RELAY_LAYER_PATH`.
- **Roles from the terminal.** Saved roles can now belong to one workspace or to all of them. Any agent can read roles with `relay role list` and `relay role show`, and Orchestrators can create, edit and assign them. Assigning a role never restarts the agent.
- **Presets and notifications.** `relay preset list` shows the agents that `recruit` can start. With **Allow agents to notify you** turned on in Settings (it is off by default), Orchestrators can send you a one-line desktop notification with `relay notify`.

### Devices and browsers

- **Apple simulators.** On a Mac with Xcode, device portals can now show iOS simulators. The screen streams live, and touches, keys and hardware buttons work. Agents can read the app's accessibility tree when they launch the app with `relay portal launch`. If Xcode's frameworks are not available, MAO falls back to `idb`.
- **Place devices like terminals.** The rail's device tool now works like the terminal tool: tap or drag to draw the frame, then choose what streams into it. Cancelling leaves nothing behind.
- **Finds your tools.** Browser portals now find Chrome and other Chromium browsers in Homebrew, `/Applications` and the usual Windows and Linux install locations, not only on PATH. Device portals find `adb` and the Android emulator through `ANDROID_HOME`, Homebrew and the SDK's default folders. This fixes MAO not finding them when opened from the Dock or Finder.

### Changes

- **Lighter with many agents.** A finished terminal keeps 1,000 lines of history instead of 10,000. Closed terminals no longer hold memory through background threads, the history of finished tasks has a limit, and portal frames that are off screen are released.
- **Smoother rounded corners.** Content inside rounded cards is now clipped to the curve instead of to a square box.

### Fixes

- Typing quickly in a note no longer shows a false "changed on disk" conflict.
- In a crowded notebook, the tabs no longer slide under the notebook's name or cut off the tab you are on.

## MAO 0.7.7

Released 2026-10-02. [Release page](https://trymao.dev/changelog/0.7.7), [Markdown](https://trymao.dev/changelog/0.7.7.md).

### New

- **A new first launch.** The four-step tour is replaced by a Welcome, a Choose your look screen and an Almost ready screen. On a first launch it goes on to open your first project (pick or drop a repository folder, with an optional workspace name) and start your first agent. On a free trial it also shows which day of the trial you are on, what the trial includes and what a licence adds.
- **Getting started checklist.** A small card at the bottom left of the canvas lists five steps and ticks each one off as you do it. A coach card points at the real control the current step needs, one at a time.
- **Terminal selection.** Double-click selects a word, triple-click selects a line, and Shift+click extends the selection. Dragging while output streams keeps the selection on the same text. Ctrl or Cmd+click opens a link, and typing clears the selection. On Linux, selecting fills the primary selection and middle-click pastes it. Nothing replaces your clipboard until you copy.
- **Mouse in terminal programs.** Programs that ask for the mouse, such as editors and pagers, now receive clicks, drags, the wheel and focus changes. Hold Shift to select text or open MAO's menu instead.
- **Cursor and text styles.** The terminal draws the cursor shape a program asks for, blinks it, and shows a hollow block when the terminal is not focused. Dim, struck-through, hidden and underlined text (single, double, curly, dotted and dashed) now render.
- **Scrollback keys.** Shift+PageUp, Shift+PageDown, Shift+Home and Shift+End scroll the terminal history (Cmd on macOS).
- **Paste protection.** Pasting text that would run several lines into a terminal that is not in bracketed paste mode now asks first, with a preview of what will be sent. Text that carries the end-of-paste sequence is always held.
- **Clipboard from programs.** Programs can write to your clipboard with OSC 52, for example a yank in Neovim over SSH. A program that asks to read your clipboard waits for you to click Allow.

### Changes

- **Light theme.** Neutral greys throughout, a canvas that sits under white, white card edges, a graphite primary button, readable secondary text and shadows at their true size.

## MAO 0.7.6

Released 2026-10-01. [Release page](https://trymao.dev/changelog/0.7.6), [Markdown](https://trymao.dev/changelog/0.7.6.md).

### Fixes

- **Switching canvases.** Opening a canvas that holds a browser portal or an Android device node, coming from another canvas, closed the app. It now opens normally, and so do layers with portal or device nodes.
- **Light theme.** Cards, menus, panels and modals no longer cast heavy, muddy shadows on the light background, and terminals keep their dark background so their text stays readable.

## MAO 0.7.5

Released 2026-09-29. [Release page](https://trymao.dev/changelog/0.7.5), [Markdown](https://trymao.dev/changelog/0.7.5.md).

### Fixes

- **Free trial.** A trial could still add a second project by moving a workspace that lives on a server into a workspace from the recent projects list. It now shows the upgrade window instead, and a licence is not affected.

## MAO 0.7.4

Released 2026-09-29. [Release page](https://trymao.dev/changelog/0.7.4), [Markdown](https://trymao.dev/changelog/0.7.4.md).

### Try MAO free for 7 days

You no longer need a licence key to try MAO. The activation screen now has a **Start 7-day free trial** button.

- **One trial per computer.** The trial starts when you press the button and is tied to your computer, so it can't be restarted by changing a setting.
- **Everything you need to try it.** A trial has one workspace holding one project, with as many terminals, agents, notes and connections on that canvas as you like.
- **Your licence always wins.** If a valid licence key is on the computer, MAO opens as licensed and never shows the trial.
- **See how many days are left.** Choose **Licence…** during a trial to see the days left and a way to buy.
- **When it ends.** MAO shows **Your free trial has ended** over your canvas. Nothing is deleted. Enter a key and everything is there as you left it. Escape does nothing on that screen; only Cancel quits.

### What needs a licence

During a trial these are part of the licence, and asking for one shows an upgrade window that says what it is and offers to buy:

- **More workspaces or projects.** A second workspace, or a second project, including one adopted from the recent projects in the sidebar.
- **Cross-canvas connections.** Agents on different canvases can't be connected. Connections on the same canvas work as usual.
- **Remote workspaces and the headless server.** A remote workspace you saved earlier isn't connected during a trial. MAO tells you why instead of trying.
- **Saved arrangements.**
- **In-app updates.** The launch update check runs only on a computer with a valid licence.

Nothing is removed when a trial ends or when you buy. A licence key entered later brings back everything that was held, including connections between canvases.

### Fixes

- Buy MAO now opens the pricing page directly.

## MAO 0.7.3

Released 2026-09-29. [Release page](https://trymao.dev/changelog/0.7.3), [Markdown](https://trymao.dev/changelog/0.7.3.md).

### Every agent keeps its own conversation

Close MAO with several agents open and each one comes back to the conversation it was having.

- **No more merged sessions.** Two Claude, Codex, OpenCode, Grok or Antigravity terminals in the same project could reopen as one conversation. Each agent now resumes its own conversation by its exact ID. If a workspace already has two agents sharing one conversation, MAO separates them when you open it and tells you which ones start fresh.
- **Codex and Grok remember which conversation is theirs.** MAO now learns each Codex terminal's conversation after its first reply, and follows Grok when you start a new conversation inside it.
- **Undo leaves your conversations alone.** Undoing a canvas change no longer sends an agent back to an older conversation.

### When a conversation can't be resumed

If an agent can't find its conversation when MAO reopens it, the terminal no longer just sits there until you delete it. It shows what happened and offers a way out:

- **Start fresh** opens a new conversation. The old conversation's ID stays in the agent's settings as the previous session, so you can still find it.
- **Resume by ID** opens a specific conversation from an ID you paste.
- **Pick a session** opens Claude Code's or Codex's own session picker right in the terminal.

Right-click an agent terminal to copy its session ID. The agent's settings show the current and the previous session.

### Launch options for your agents

The agent settings have a new **Launch options** section:

- **Extra arguments** passes flags straight to the agent, for example `-c model_reasoning_effort=high` for Codex. Flags that MAO manages itself, like the session and model flags, are refused, and the reason is shown under the field.
- **Skip permission checks** starts the agent with its own flag for running without asking (`--dangerously-skip-permissions` for Claude Code, for example). It is off by default, set per agent, shows a warning while it is on, and is never copied into saved arrangements.

### New sounds

MAO's sounds are now short, dry taps, closer to a trackpad click than to a notification. Changes an agent makes to the canvas, like adding a terminal, play more quietly than the ones you make. You can still turn sounds off or change their volume in Settings.

### Canvas and window

- **A slimmer sidebar handle.** The sidebar now opens and closes from a thin handle in the middle of the left edge, in the same place whether it is open or closed.
- **On macOS, the window buttons no longer cover the sidebar.** The close, minimize and zoom buttons get their own space, and the sidebar starts after them.
- **Agents recruited by an orchestrator are as big as the orchestrator** instead of the small default size.
- **Delete buttons are easier to read.** They now have white text on a deeper red in both light and dark themes.

### Fixes

- On macOS, agents could not reach each other or connected notes when your user name was long. MAO now keeps its connection files in a short folder in your home folder (`~/.relay/run`), so this works however long the user name is, including with two windows open on the same workspace.

## MAO 0.7.2

Released 2026-09-28. [Release page](https://trymao.dev/changelog/0.7.2), [Markdown](https://trymao.dev/changelog/0.7.2.md).

### Fixes

- **macOS, long user names.** Agents still couldn't reach each other or connected notes on Macs whose user name is long, and a second window on the same workspace could lose its connection. MAO now moves its connection files to a short folder of its own when the usual one would make the path too long.
- **Activating MAO.** Activating your licence on a computer that had no workspace yet could leave MAO stuck on the activation screen until you restarted it. It now goes straight on to the next step.

## MAO 0.7.1

Released 2026-09-28. [Release page](https://trymao.dev/changelog/0.7.1), [Markdown](https://trymao.dev/changelog/0.7.1.md).

### WSL workspaces

On Windows, **Open on a server** now has a **Where** list that includes your WSL distributions, each with its logo, next to **Another machine**. Pick a distribution to open a project inside it. There's no host name to type and no SSH to set up.

- **A better folder picker.** Hidden folders stay hidden unless you ask for them, folders and files have icons, and you can click any part of the path, or **Up**, to move around. **Add to** chooses the section the new workspace goes into.
- **Server workspaces live in the sidebar like the rest.** Each one is a canvas in a section, with its distribution's logo or a server icon. You can drag it to another section or use **Move to**. The row shows the connection: nothing while it's connected, an amber dot while it connects, red if it stops, and **Reconnect now** in the row's menu.

### Installing a missing agent

If an agent isn't installed where a terminal starts it, the terminal says so ("Claude Code is not installed on this computer", or on the server's name) instead of offering to change accounts.

- On a server, **Install** runs the agent maker's own installer inside the terminal and starts the agent when it finishes. If the install fails, its output stays on screen with **Install again** and **Try again**.
- On Windows, **Install** runs the official installer for Claude Code, Codex, Grok and Antigravity, and MAO picks up the new program without a restart. OpenCode doesn't publish a Windows installer yet, and on macOS and Linux the terminal offers **Try again** after you install the agent yourself.

### More reliable server connections

- **A lost connection is shown once.** While MAO reconnects, the sidebar and one notice say so, and your terminals wait quietly instead of each one turning red and playing a sound.
- **A dropped network or a sleeping laptop no longer locks you out.** The server now lets go of a connection that has gone silent for 30 seconds, so MAO can reconnect instead of being told that "another MAO is using this workspace".
- **Machines that don't answer fail faster.** MAO gives up after 15 seconds and retries, instead of showing "Connecting…" for minutes. Typing a password is never rushed.
- **MAO's skills stay current.** After an update, the copies of MAO's skills that your agents use are refreshed too. If they can't be copied to a server, MAO tells you.
- **Keyboard:** Tab now reaches the **Where** list, and the arrow keys move through it.

### Fixes

- On macOS, agents couldn't talk to each other or read connected notes when the connection file's path was too long. MAO now uses a shorter name for it.

## MAO 0.7.0

Released 2026-09-26. [Release page](https://trymao.dev/changelog/0.7.0), [Markdown](https://trymao.dev/changelog/0.7.0.md).

### Workspaces on a server

You can now open a workspace that lives on another machine over SSH. The canvas stays on your computer, while the project folder, the terminals and the agents run on the server.

- **Open on a server.** Choose **Open on a server** in the sidebar (under **Add project**, or by right-clicking an empty area) or in the command palette. Enter the machine, pick the project folder, and the workspace opens like any other.
- **Nothing to install by hand.** Every MAO download carries the small server it needs. MAO installs it on the machine the first time you connect and keeps it updated when you update MAO.
- **Sign in inside MAO.** SSH passwords, passphrases and "do you trust this host?" questions are asked in a MAO window. For a new host, MAO shows the full fingerprint with **Yes** and **No**. A password you type is used only for that connection and is never saved.
- **Connects in the background.** Opening a server workspace no longer freezes the window while it connects. A chip at the top of the canvas shows where the workspace lives and how the connection is doing.
- **Reconnects on its own.** If the connection drops, MAO keeps retrying, more slowly over time, and **Reconnect now** tries again straight away. When it reconnects, your terminals start again and your agents resume. If the workspace changed on the server while you were away, MAO asks whether to use the server's copy or keep yours.
- **Terminals start without waiting.** A new terminal on a server appears at once and says it is starting on the server if the server takes a moment.
- **MAO's skills travel with you.** The skills that teach your agents about the canvas are copied to the server when you connect, so agents there can use `relay` the same way they do locally.

### Fixes

- On Linux, updating from inside MAO now also updates the server and the agent skills that ship with it, not only the app.
- If MAO crashes and you have **Diagnostics** turned on, the crash report sent on the next launch is now readable and grouped by where the crash happened. Crashes that close MAO without warning are reported too. Nothing is sent while Diagnostics is off.

## MAO 0.6.2

Released 2026-09-25. [Release page](https://trymao.dev/changelog/0.6.2), [Markdown](https://trymao.dev/changelog/0.6.2.md).

### Release notes, right in MAO

You no longer have to wonder what an update changes.

- **See what's coming before you update.** When MAO finds a new version, a window opens with its release notes: every version between the one you're on and the new one. It shows the download as it happens and offers **Restart to update** when it's ready, or **Later**. You don't need the sidebar open to know an update is waiting.
- **Check whenever you like.** **Check for updates** in the overflow menu or the command palette opens the same window straight away, and tells you when MAO is already up to date.
- **What's new.** The first time you open MAO after an update, it shows you what changed in that version.
- **Release notes, any time.** **Release notes** in the command palette and the overflow menu shows the notes for the version you're running. **View on the website** opens the full changelog.

### Smoother canvas

- **The pointer goes back to Select after you create something.** After you place a terminal, an agent, a note or any other node, the canvas returns to Select, so your next click selects and moves things instead of creating another node. This was most noticeable while working on a layer.
- **Pan with Ctrl+drag** (Cmd+drag on macOS). Hold Ctrl and drag with the left mouse button on empty canvas or on a node's header to move around the canvas, whatever tool is selected. Inside a terminal, an editor or a browser portal, Ctrl+click keeps doing what it did before. Space+drag, the middle mouse button and the scroll wheel still pan too.

### Fixes

- On Linux with Wayland, MAO no longer crashes when you open your first project right after creating a workspace.
- When a layer's files can't be set up because a file is in the way, MAO now names that file instead of showing a generic error.

## MAO 0.6.1

Released 2026-09-24. [Release page](https://trymao.dev/changelog/0.6.1), [Markdown](https://trymao.dev/changelog/0.6.1.md).

### Maintenance

This release only changes how MAO is built and published. Nothing changes in how MAO works: everything behaves as it did in 0.6.0.

## MAO 0.6.0

Released 2026-09-24. [Release page](https://trymao.dev/changelog/0.6.0), [Markdown](https://trymao.dev/changelog/0.6.0.md).

### Select, move and act on many nodes at once

- **Selection box.** Dragging on empty canvas now draws a selection box, and every node it touches is selected. Hold Shift to add to the current selection, or press Ctrl/Cmd+A to select everything. Dragging any selected node moves the whole selection together, as one undo step.
- **Panning has moved.** Because a left-drag now selects, pan with Space+drag, the middle mouse button or the scroll wheel.
- **Nudge with the arrow keys.** The arrow keys move the selection one grid cell at a time, or five with Shift. With nothing selected, they pan the view. A quick run of nudges undoes as one step.
- **Delete several nodes at once.** Delete removes every selected node in one undo step. If any of them are still running, MAO asks once first.
- **Prompt several agents at once.** With more than one agent selected, the prompt composer sends the same prompt to each of them. If delivery fails for some agents, the composer stays open with only those agents, so trying again never sends the prompt twice.
- **See what is connected.** Selecting a node brings its connections and the nodes on the other end of them forward, and fades the rest of the canvas. Tap Alt/Option to include everything that is connected, however indirectly.
- **Lock nodes.** Ctrl/Cmd+L, the command palette or a terminal's menu locks a node so it can't be moved, resized or deleted by accident. A locked node can still be selected, focused and connected.
- **Tidy up.** "Tidy up" in the command palette arranges the selection, or the whole canvas, along its connections. Orchestrators go at the top and the agents they lead are laid out in rows below them.
- The bar that appears over a selection now shows only the actions that apply to it, such as Group only when grouping would change something and Prompt only when an agent is selected.

### Moving around the canvas

- **Focus mode.** Press `f`, press Ctrl/Cmd+Shift+Enter or double-click a node's header, and the camera zooms in until that node fills the canvas. Everything else fades back. The same keys, Escape or the button on the focus pill take you back to where you were. The node itself is never resized, and clicking another node also leaves focus mode.
- **Saved views.** Each canvas has nine camera bookmarks. Ctrl+Alt+1–9 (Cmd+Option on macOS) saves the current view, and Alt+1–9 (Option on macOS) takes you back to it. You can also save, name, open and delete views from the command palette.
- **Zoomed-out nodes are easier to read.** When a terminal's text would be too small to read, the node is drawn as a compact card instead. Nodes no longer flicker between card and terminal at the threshold, and a card shows if its agent needs attention or has failed.
- The grid now fades out below 75% zoom instead of turning into a grey haze.
- Clicking an attention ticket, the minimap, Fit, Fit selection or the zoom percentage now moves the camera smoothly instead of jumping. Keyboard shortcuts still move it instantly.

### A new prompt composer

The prompt composer is now a single slim bar, with an attach button on the left and a send button on the right.

- **Attach any file.** Attach files with the button, by dropping them on the bar or by pasting them. Files no longer have to be inside the project. Pasted images are saved and attached as well.
- Attachments appear as chips where the cursor is, within your text. The agent receives each one as its file path, in the place you put it. Backspace or Delete removes a chip like a single character, and undo brings it back.
- Extra information, such as how many agents a broadcast goes to, or an error, now appears under the bar only when there is something to say.

### Arrangement library

Apply arrangement now opens a library panel on the right of the canvas instead of a list.

- Search your saved arrangements, or filter them by where they were saved: Global, this workspace or another workspace. Each card shows a small preview of the layout and its agents.
- Drag a card onto the canvas to place it where you want it, or double-click it (or press Enter) to add it in the middle of the view. The panel stays open so you can add more.
- Save arrangement now saves only the selected nodes when several are selected. It also remembers their colours and which workspace saved the arrangement.
- Rename or delete arrangements from a card's menu, and undo either from the panel.
- Terminals from an arrangement now arrive unstarted instead of launching all at once. Select them and choose Start to launch them together.

### Improvements

- The toolbar, sidebar and other on-screen controls are slightly more compact, leaving more room for the canvas. Every canvas tool is now on the tool rail.
- The docked sidebar now slides open and closed smoothly, and the canvas moves with it.
- Nodes no longer blink when you pan them back into view or switch canvases, and existing connections no longer redraw themselves when a canvas opens.
- The command palette and dialogs opened from the keyboard now appear instantly.
- Refusal messages now fade out, and they appear again if the same thing is refused twice.

### Fixes

- If a canvas can't be loaded, MAO no longer saves an empty canvas over it. The unreadable file is kept as a backup next to the original, and MAO tells you where it is.
- Agents installed through mise now start correctly, using the version that is set for the project.
- Clicking a node's header after typing in a terminal now gives keyboard control back to the canvas, so shortcuts like `f`, Delete and the arrow keys work reliably.
- Holding Space to pan no longer types spaces into the terminal under the cursor.
- The prompt composer no longer covers confirmation dialogs, such as the one that asks before quitting.
- Fades at the edges of scrolling lists now match the menu or dialog they are in, and no longer cut a hard line across the first or last row.

## MAO 0.5.28

Released 2026-09-23. [Release page](https://trymao.dev/changelog/0.5.28), [Markdown](https://trymao.dev/changelog/0.5.28.md).

### In-app updates

MAO can now update itself.

- **Checks on launch.** MAO checks for a new version once each time it starts. You can turn this off under **Settings → Updates → Automatic update check**. **Check for updates** in the overflow menu and the command palette works either way.
- **Verified downloads.** Every update is checked against MAO's release signature before it is installed.
- **Installs when you quit.** When an update is ready, **Restart to update** appears at the bottom of the sidebar. Your workspace is saved as usual first, and the next launch tells you which version you are now on.

### One sidebar for workspaces, canvases and layers

The sidebar now shows everything in one place.

- Each canvas shows how many agents are running and a dot when something needs your attention.
- The current canvas lists its layers underneath it. Click a layer to switch to it, restore an archived one, or open a failed one to see what went wrong. Each layer row has its own menu with **Open** and **Archive**, or **Retry** and **Remove** for a failed layer. **New layer** is the last row.
- Deleting a folder, workspace or canvas now asks first and tells you what it contains.
- `Ctrl+Up` (`Cmd+Up` on macOS) opens the sidebar and puts the keyboard on it. Use the arrow keys, `Enter` and `Escape` to move around.
- Right-clicking a sidebar row or the empty space in the sidebar opens the sidebar's own menu, never the canvas's.

The Layers button on the canvas is gone, since the layers now live in the sidebar. The zoom controls have moved to the bottom-right corner.

### Setting up an agent

Terminals are now created and edited in one window.

- **New terminals.** Placing a terminal, `Ctrl+T` or `Shift+Ctrl+T` opens the agent window. Pick the agent, account, model, role, icon and name, then press **Start agent**. **Cancel** or `Escape` discards it.
- **Editing.** **Configure** on a terminal's bar opens the same window. Changing the agent, account or model shows a notice and a **Save and restart** button. The role, orchestrator setting, icon and name apply without a restart. Each save is a single undo step.
- **A simpler terminal bar.** The bar above each terminal now has icon buttons only: Configure, Connect, Send prompt, Disconnect and Delete.
- Agents are always listed in the same order: Claude Code, Codex, OpenCode, Grok, Antigravity, Shell, Custom.
- The footer shows the folder the agent runs in, with your home folder written as `~`. Hover it to see the full path.
- An orchestrator shows the MAO mark on its bar. Hover it to see how many connections it has, or click it to open its settings.

The Shift+T launcher and the separate preset picker are gone. **Change preset** now opens the agent window.

### Roles

The role window has been redesigned. It has a name, instructions, and an appearance section with a short list of icons and colours. **More…** lets you search the full icon set. You can save a role for reuse, or use it just once.

### Models

The model lists now match what each agent accepts today:

- **Claude Code:** `fable`, `opus`, `sonnet` and `haiku`, each shown with the model it currently points to, such as "Opus 5.5".
- **Codex:** `gpt-6` and `gpt-5.6`.
- **Grok:** `grok-4.7`, `grok-4.6` and `grok-build-0.1`.

A terminal saved with a model that is no longer offered now starts with the agent's default model instead of failing to launch.

### More reliable tasks between agents

Tasks sent between agents, on one canvas or across canvases, no longer get stuck without an answer:

- If a message cannot be delivered to the recipient's terminal, the sender is told it failed instead of waiting forever.
- If `relay ask` or `relay next` is stopped early, for example when an agent's tool times out, the answer is no longer lost and no task is claimed on its behalf.
- Deleting a terminal fails the tasks it was working on, and their senders are told.
- Tasks sent to a terminal that was deleted while its canvas was closed now fail instead of waiting forever. This only happens when the canvas opens normally, so a canvas that fails to load never loses its queued work.
- Agents on a canvas you close and reopen can send and receive tasks again straight away.
- On Windows, a task that could not be saved is no longer left marked as delivered.

### Look and feel

- MAO now uses the Geist and Geist Mono typefaces.
- Forms across the app have clearer labels, more even spacing and larger fields. The accounts manager is now two panes, with the number of accounts for each provider.
- Buttons stay readable in every state. A pressed primary button no longer loses its label, and disabled buttons are easier to read.
- `Escape` closes the window on top, and the keyboard returns to the window underneath or to the canvas.
- A window opened on top of another now closes any list left open underneath it, so a model list no longer shows through the accounts manager.
- Copy and Paste in a terminal's right-click menu have clipboard icons.

## MAO 0.5.27

Released 2026-09-23. [Release page](https://trymao.dev/changelog/0.5.27), [Markdown](https://trymao.dev/changelog/0.5.27.md).

### Menus behave the same everywhere

Every menu, popover and right-click menu on the canvas now follows the same rules:

- Only one is open at a time, and it always appears above the sidebar, the toolbars and the nodes.
- A click outside closes it and does nothing else, so you never select, drag or reopen something by accident. Clicking the menu's button again closes it.
- Escape closes it, even while a terminal has the keyboard.
- The canvas does not pan or zoom under an open menu, so the menu stays next to the node that opened it.
- When it closes, the keyboard goes back to where you were.

### A right-click menu for terminals

Right-clicking a terminal now opens a menu with **Copy**, **Paste**, **Select all** (scrollback included) and **Clear**, plus **Rename**, **Change preset**, **Connect** and **Delete**. Before, a right-click copied the selection or pasted straight away. **Clear** empties the terminal's screen and scrollback in MAO only; nothing is sent to the program running in it.

The canvas menu now opens only on empty canvas. It no longer opens when you right-click a note, file tree, editor, portal or the notice bar, or while a sheet or dialog is open.

## MAO 0.5.25

Released 2026-09-22. [Release page](https://trymao.dev/changelog/0.5.25), [Markdown](https://trymao.dev/changelog/0.5.25.md).

### More reliable task delivery

- **Tasks survive a restart.** A task that an agent received but never finished because MAO closed is queued again when MAO starts, and waiting tasks are delivered in the order they were sent. After a crash, an agent may occasionally be given the same task twice.
- **Queued work arrives without a nudge.** Tasks waiting for an agent are delivered as soon as its terminal is ready. Before, they could wait until someone sent another task. Several waiting tasks are now delivered one after another, not one per new send.
- **An unavailable agent no longer loses work.** If a task cannot be handed to its terminal yet, MAO retries for a short while and then waits. The task stays queued until the terminal comes back.
- If a terminal disappears while a task is being handed to it, the sender gets a clear failure with the reason instead of a task that never finishes.

### Finishing a task

`relay result`, given the task ID and a short summary, is the only way to finish a task an agent was given. The task text agents receive and the bundled MAO skill now say this plainly: replying with `relay ask` sends an ordinary message and does not finish the task.

## MAO 0.5.24

Released 2026-09-21. [Release page](https://trymao.dev/changelog/0.5.24), [Markdown](https://trymao.dev/changelog/0.5.24.md).

### Bring existing projects into a workspace

Projects you opened before workspaces existed can now join the new sidebar hierarchy. Right-click an older project and pick a workspace or folder from the list, or drag the project onto one. It keeps its canvas, notes and layers. Nothing is copied, moved or renamed on disk.

- **Add project…** replaces "New canvas" in the sidebar menus, because that is what it does. If you add a project without choosing where, it goes into your workspace, and a workspace is only created when you have none.
- **One repository, one canvas.** Adding a repository that is already on the sidebar is refused, and MAO tells you which canvas already holds it.
- Adding your first project from the start screen now finds the work you already had for that repository instead of starting an empty canvas.

### Sidebar fixes

- Creating a second workspace could make the whole sidebar disappear the next time MAO started. MAO also no longer saves a sidebar it could not read back.
- **New folder** now asks for a name instead of creating "Folder 3".
- Rename and delete on a canvas act on the canvas you clicked, and older projects no longer show workspace actions that do not apply to them.
- The rename dialog opens above the sidebar, and the menu that opened it closes first.
- Switching canvases no longer leaves a focus ring on a different canvas row. Clicking a row no longer draws a ring at all; the ring now appears only when you move through the sidebar with the keyboard.

### Agents working together

- Two terminals joined by a line on the same canvas can always send each other tasks. Before, it depended on which end you drew the line from.
- Terminals added after the window opened, including agents recruited by another agent, now receive tasks. Before, their tasks could stay queued forever.
- When `relay ask` times out on a task that never reached the agent, it now says so instead of saying the agent is still working.
- Holding **Connect** on a terminal shows the list of other canvases' agents again. The list was being cut off out of sight. It includes the other canvases in the same workspace, cross-canvas lines are drawn again, and an empty list now says so.
- On Windows, the agent bridge now starts. Before, every connection feature reported that the bridge was unavailable.

### Menus, dialogs and the keyboard

- Clicking outside a menu closes it without also selecting, deselecting or dragging whatever was underneath. Clicking a menu's button again closes it.
- Every menu, sheet and dialog closes with Escape or a click outside, and the keyboard works on the canvas straight away afterwards. Before, closing the command palette, the tour, rename, confirmations and several sheets could leave keys going nowhere until you clicked the canvas.
- Enter confirms the delete and quit dialogs, as they say it does.
- Menus can be used with the arrow keys, Home, End, Enter and Escape. Sidebar rows can be reached with Tab.
- Long menus and the command palette's results now fit in the window and scroll.
- The agent menu is wider, so longer agent and preset names fit.
- On a running agent terminal, the account chip opens the account and model menu.

### Canvas and editing

- Typing characters such as `!` or `@` in a note no longer moves the canvas view. Tab no longer moves you to a terminal waiting for you, and Delete in an editor that is still loading no longer deletes the node. Canvas shortcuts only work when the canvas itself has focus.
- Text an agent adds to a note with `relay note append` is no longer overwritten when you type in that note at the same time.
- Double-clicking a text drawing opens it for editing again.
- A new terminal that already has your last-used agent selected can be started straight away. Enter now starts it instead of reopening the agent menu.
- The delete button on a terminal's bar deletes the terminal reliably.
- Undo and redo wait until you finish a drag, so an undo can no longer record the wrong layout.
- The git panel scrolls with the mouse wheel and closes with Escape.

### Look and feel

- A node's status now shows in its shape as well as its colour: a filled dot while running, a dimmed dot when idle, a ring when waiting for you, and a square on error.
- Warning, success, error and info text is easier to read in the light theme.
- Focused text fields show their focus ring again, and icon buttons and toggles brighten on hover.
- Several icon buttons that had no tooltip now have one.
- New nodes respect the reduced-motion setting.
- The selected tool in the tool rail no longer shifts sideways. On Windows and Linux, the tool rail no longer overlaps the window controls.

### Faster canvas

The canvas does much less work while you use it. Browser and device portals no longer redraw the whole canvas on every frame. Terminals that are off screen are no longer redrawn. While you zoom, a terminal is resized once when you stop instead of on every step. The grid stays readable at minimum zoom.

### Removed

The small "firefly" dots that circled a Claude Code terminal while it ran subagents have been removed. They only worked with Claude Code and were rarely used.

## MAO 0.5.23

Released 2026-09-19. [Release page](https://trymao.dev/changelog/0.5.23), [Markdown](https://trymao.dev/changelog/0.5.23.md).

### A new look

MAO has a new, consistent visual design. The canvas, the sidebar, the toolbars, menus, pickers, dialogs, the layer switcher and the licence screens all share the same materials, type and colours now, in both light and dark appearances.

- **The canvas** has a fine ruled grid instead of the old dot field.
- **Connections** are plain lines. When the terminal, portal or device at one end of a connection fails, the line is drawn broken at its midpoint, so you can see which links are no longer working.
- **Selected nodes** all wear the same dashed ring, and nodes no longer glow. A running node looks calm; waiting and failed states still show on the node.
- **The layer switcher** shows wireframe previews of each layer instead of black boxes, has a compact search, and marks the active layer clearly.

### Settings

There is now a **Settings** sheet, opened from the canvas menu. It brings together:

- **Sound**: cues when an agent finishes, fails or asks for you, with a Quiet, Medium or Full volume.
- **Reduced motion**: menus, notices and bars appear in place instead of sliding in.
- **Diagnostics**: off unless you turn it on.
- **Keep workspaces alive**: switching away leaves terminals and agents running.

Menu toggles now keep the same name whether they are on or off and show their state with a check, instead of changing their wording.

### Sidebar and window

- **The sidebar pushes the canvas aside** instead of covering it. Nodes keep their place on the canvas; only the view moves.
- When the sidebar is collapsed, a notch on the window edge opens it again.
- An empty sidebar now says so and invites you to add something, instead of showing a blank panel.
- **Window controls follow your system.** Where macOS or your window manager already provides close, minimise and maximise, MAO does not draw its own. On Windows and on Linux desktops where apps draw their own frame, MAO shows them in the top-right corner, and on Windows the maximise button opens Snap Layouts.

### Agents across canvases

Agents on other canvases in the same workspace now appear in `relay list` under **Cross-canvas agents**, and you can send them work with `relay ask` or `relay send` by addressing them as `Name@canvas`:

```
relay ask "Reviewer@landing" "Review the changelog API"
```

A cross-canvas link carries tasks and results only. It never gives an agent another canvas's screen or the ability to type into its terminals. If a name matches agents on more than one canvas, MAO lists the candidates and asks you to choose instead of guessing.

With **Keep workspaces alive** on, switching between canvases now keeps each canvas's terminals running too, not only switching between workspaces.

### Improvements

- **Keyboard use**: the command palette opens with the cursor in its search field, arrow keys move through the palette, pickers and galleries, and Tab stays inside an open sheet instead of wandering onto the canvas behind it.
- Choosing an account and choosing a role for a terminal now use the same kind of picker.
- Dialogs that are taller than the window, such as the account manager, now scroll while keeping their title and buttons in place. The command palette scrolls too.
- Drop-down menus are never narrower than the control that opened them, and only one is open at a time.

### Fixes

- Agents no longer fail to start after you upgrade a tool with a version manager such as mise while MAO is running. Previously the launch could end up re-downloading an old version instead of starting the agent.

## MAO 0.5.22

Released 2026-09-19. [Release page](https://trymao.dev/changelog/0.5.22), [Markdown](https://trymao.dev/changelog/0.5.22.md).

### Connect agents across canvases

Hold the **Connect** button on a terminal to open **Connect to another canvas**, a list of the agents available on the other canvases in your workspace, with each canvas's name next to the agent. One click connects them. A short click on **Connect** still starts an ordinary connection on the same canvas.

This now works without any extra setup. If a canvas cannot share tasks, the list says so rather than offering agents that would fail when clicked.

A terminal connected to an agent on another canvas shows a dashed connection line that leaves the window: downwards from the side that made the connection, and in from the top on the side that was reached. The node's **Disconnect** button also removes cross-canvas connections, on both canvases at once.

### Zoomed-out island view removed

The island view added in 0.5.21 has been removed in favour of the list above. Zooming out stops at 25% again.

## MAO 0.5.21

Released 2026-09-19. [Release page](https://trymao.dev/changelog/0.5.21), [Markdown](https://trymao.dev/changelog/0.5.21.md).

### Workspaces, folders and canvases

The sidebar now has three levels:

- **Workspaces** are named places you create by name. They do not point at a directory.
- **Folders** group canvases inside a workspace.
- **Canvases** are one repository each, and are the only thing that asks you to pick a directory.

Right-click a workspace or folder for **New folder**, **New canvas**, **Rename** and **Delete**. **New canvas** opens a folder picker and checks that you chose a Git repository. Deleting a folder keeps what was inside it and moves it up a level. Opening a project from the command palette adds it as a canvas to the current workspace.

Workspaces and folders can be collapsed with their chevron, and MAO remembers which ones are open. Your existing sidebar is converted automatically, and a backup of the old arrangement is kept.

### A clearer first launch

A fresh install no longer shows a workspace named after whatever directory MAO was started from. After the onboarding tour you see a short screen with two actions: create a workspace by name, or open your first project. Choosing a repository opens its canvas straight away.

To create things later, right-click the empty area below the sidebar list, or the root row, for **New workspace** and **New folder**.

### Drag and drop in the sidebar

You can now arrange the sidebar by dragging, as well as through the right-click menus.

- Drag a canvas or folder into another folder, or onto the root, within the same workspace. Dropping into another workspace, or a folder into itself, is refused.
- A drag only starts after a small movement, so clicks stay clicks. The row you picked up stays in place, dimmed with a dashed outline.
- A dashed row shows exactly where the item will land.
- When a drop is refused, the dragged label says why, for example "already here" or "inside itself".
- Dragging near the top or bottom edge scrolls the list. Press Esc, or release somewhere invalid, to cancel.

### A zoomed-out view of the workspace

Zooming out past 25% now shows every canvas in the current workspace as an island, with its agents drawn as small markers and folders shown as regions. You can zoom out to 10%, and drag islands to arrange them. The layout is kept outside your repositories.

### Fixes

- Layers in repositories where an old `canvas.json` had been committed lost their layout every time the canvas was opened. Layer layouts are now kept, and archived layers recover their canvas where it can still be found.
- With several API keys on an agent account, a key that had been skipped could be used again on the very next launch instead of rotating to the next one.

## MAO 0.5.20

Released 2026-09-18. [Release page](https://trymao.dev/changelog/0.5.20), [Markdown](https://trymao.dev/changelog/0.5.20.md).

### Layer canvases stay out of your repository

A layer's canvas used to be saved as a `canvas.json` file inside the layer's worktree, where it could show up in `git status` or be committed onto your branch, and archiving a layer deleted it along with the worktree. It is now kept in MAO's own state.

- Archiving a layer keeps its canvas, and restoring the layer brings it back.
- Existing layer canvases are moved across automatically. The old file is only removed from your checkout when Git confirms it is untracked or ignored; anything else is left where it is.

### Sidebar menus

- Folder actions now open from a right-click menu on the folder instead of being shown permanently.
- Moving a workspace into a folder, or back to the root, is now in a right-click menu on the workspace row, instead of a list of "Move to" rows under every workspace.
- **New canvas** has been removed. One repository is one canvas; for a second board on the same repository, use a layer. Existing canvases still open as before.
- Menu icons now line up with their labels.

### Fixes

- Opening a workspace that already has several canvases through the folder picker no longer converts it to the one-canvas layout.
- If the sidebar's folder arrangement cannot be loaded or saved, the error now explains what went wrong and stays visible until it is resolved, rather than disappearing when you switch canvas.

## MAO 0.5.19

Released 2026-09-18. [Release page](https://trymao.dev/changelog/0.5.19), [Markdown](https://trymao.dev/changelog/0.5.19.md).

### Folders in the sidebar

You can now organise your workspaces into folders in the sidebar. Use **New folder** to create one, then move a workspace into it from the list under that workspace. Folders exist only inside MAO: nothing is created, moved or renamed on disk, and the arrangement is remembered between launches.

### Fixes

- Notes on two canvases of the same workspace could share a file, so one canvas's note silently overwrote the other's. New notes now always get a file of their own. Existing notes keep the files they already use.
- Applying a saved arrangement that contains a note could write into an unrelated note already on the destination canvas. Each note placed from an arrangement now gets a fresh file, unless the arrangement stores its own.

Source: https://trymao.dev/changelog
