# CLI Update Notice

> Agent CLIs announce their own updates when they start ("Update available!

- Area: Desktop, mobile and web
- Plans: All plans
- Last checked against the product: 2026-09-23
- Web page: https://agentsroom.dev/docs/cli-update-notice

## What it does

Agent CLIs announce their own updates when they start ("Update available! 0.152.0 -> 0.152.1, run brew upgrade --cask codex"), at the one moment you cannot update them because they are running. AgentsRoom remembers that banner and offers the update where the CLI is not running: a card in the project's empty panel on the desktop, a banner on a stopped agent on the phone. Two ways out: **Update** runs the command in a guided terminal, or copy the exact command and run it yourself. The command comes from the CLI itself, so it matches how that CLI was installed on this machine (Homebrew, npm, native installer). A second surface handles the opposite case: the CLI was updated on disk while a session was still running the old build, and a banner offers to restart that session without losing the conversation.

## Where to find it

- Desktop, project view with no agent open: the **CLI update available** card ("0.152.0 → 0.152.1") with **Update**, a copy button and **Not now**.
- Desktop, above the composer of a running agent whose CLI changed on disk: "{provider} has been updated. This session still runs the previous version." with **Restart** and **Later**.
- Mobile, console screen of a stopped agent: "{provider} update available" with **Update on my computer** and the manual command.

## How to use it

1. When the card appears, click **Update**. The guided installer opens on a short path (no audit, no sign-in step) and runs the update command in a visible terminal.
2. Or click the copy button and run the command in your own shell.
3. Start the agent again. The card disappears by itself once the installed version has caught up.
4. For a session still on the old build, click **Restart** on its banner: the CLI restarts and picks the conversation back up. **Later** dismisses it for that version.

From the phone: tap **Update on my computer**; the desktop runs the same guided installer, and the agent you were looking at restarts on its own once the update completes.

To update a CLI that shows no card (it printed no banner, or you want to move to a new major line such as OpenCode v2): open the guided installer (⚡ menu > **Add or update providers**, or **Install a CLI** on an agent's provider picker) and tick the CLI in the list even though it says **Installed**. The badge turns to **Reinstall** and the plan runs the provider's current install command, which is the update. AgentsRoom asks the manager that owns the binary first, so a CLI installed with Homebrew is upgraded with Homebrew rather than overwritten.

## Settings

- `cliUpdateNotices` (global, read-only over MCP): the pending "newer version exists" verdicts per CLI binary (current version, latest, command, dismissed version). Machine-local, never synced to the account, expire on their own.
- Simulation for testing the surface: Settings > Advanced (admin builds).

## Agent tools (MCP)

- `settings_get` `cliUpdateNotices`: read which CLIs have a pending update and the suggested command. Read-only.

## Providers

Every provider whose CLI prints an update banner at startup (Codex and the update-notifier family used by most Node CLIs among them). A CLI that prints nothing has no card, with no degradation. Not to be confused with the "CLI out of date" banner of [CLI Doctor](https://agentsroom.dev/docs/cli-doctor.md), which blocks a launch because the CLI is below the minimum version AgentsRoom requires.

## Mobile

Present from day one, same versions, same command, same words. The phone only sends the provider id; the command is resolved on the computer that runs it. Restarting a session that is still on an old build is desktop-only (the phone has no restart action yet).

## Limits

- The scraped command is never run blindly: only whitelisted package managers and `<cli> update`-style commands, with no shell metacharacters, are offered as a button. Anything else shows the versions only, and the manual line is left out.
- Installers that are a script piped into a shell are not offered as a button either.
- Dismissing is per version: "Not now" on 0.152.1 does not hide 0.153.0.
- Detected only during the launch window of the CLI, attributed to the binary that was launched; an `npm outdated` printed by an agent later in a session never creates a card.
- The stale-runtime banner is not shown in a detached terminal window.

## Common questions

- **I updated the CLI but the agent still runs the old version.** A running process keeps its old build. Use **Restart** on the banner above the composer, or restart the agent; no need to restart AgentsRoom.
- **No card, but I know a new version exists.** The card only appears for CLIs that announce their update themselves. Tick the CLI in the guided installer's list to reinstall it in its latest version.
- **The update stopped on `EEXIST: File exists` on my Mac.** That was an update falling back to our npm install line on a binary Homebrew owns, Codex above all. On macOS and Linux, when the CLI's own banner gives no usable command, AgentsRoom now asks Homebrew whether it owns that binary and upgrades with Homebrew; only a binary Homebrew does not know about goes through npm.
- **Why does the card say `brew upgrade` when I installed with npm?** The command is the one the CLI itself printed, so it should match your installation; if the CLI was installed twice, prefer the one on your PATH.
- **The card is gone but I did not update.** AgentsRoom re-checks the installed version and drops notices the binary has caught up with, for example after an update from your own shell.
- **Can I update from my phone?** Yes: **Update on my computer** runs the update on the desktop and restarts the agent when it is done.

## Related

- [CLI Doctor](https://agentsroom.dev/docs/cli-doctor.md): launch failures, including a CLI below the minimum version.
- [Multi-Provider Support](https://agentsroom.dev/docs/multi-provider.md): the CLIs concerned.
- [Mobile Companion](https://agentsroom.dev/docs/mobile-companion.md): the phone surface.
