This post is for developers who use an AI coding agent that works from a terminal: OpenAI’s Codex CLI, Claude Code, Google’s open-source Gemini CLI or GitHub’s Copilot CLI. For each, it sets out whether the tool updates itself by default, how, whether anything keeps running after it exits, and how to turn updating off.
Nothing was installed or run for this post. Every statement comes from the four tools’ documentation, release notes, source code and registry records, plus one GitHub issue, all read on 25-26 October 2026. Dates are UTC. The versions in the table were each tool’s latest release on 25 October.
Of the docs read, only Codex’s README describes an updater that runs after exit
The table answers those four questions; every column reports what each tool’s cited update documentation says.
| Tool | On by default | How it updates | Runs after exit | Off switch |
|---|---|---|---|---|
| Codex CLI 0.164.0 | Yes | Daemon with its own updater; checks after 5 minutes, then hourly | Yes, detached process | daemon_auto_start flag; updater.autoUpdateEnabled setting |
| Claude Code 2.1.310 | Yes for native (npm: same binary); no for Homebrew, WinGet, apt, dnf, apk | Checks at startup and periodically; installs in background | Not documented | "DISABLE_AUTOUPDATER": "1" in settings.json env |
| Gemini CLI 0.65.0 | Yes | Not documented | Not documented | general.enableAutoUpdate set to false |
| Copilot CLI 1.0.103 | Not documented; off in CI | Downloads in session, suggests /restart | Not documented | --no-auto-update flag; autoUpdate setting (named, not described) |
“Not documented” means the update document cited for that tool says nothing either way. Among the tool documentation cited, only Codex’s README describes update processes that keep running after the session ends; issue #48195, a Codex user’s request on GitHub, reports the same behaviour.
Codex started a background daemon by default in September
Since version 0.157.0, released on 25 September 2026, Codex starts a background server, called a daemon, by default for “eligible interactive sessions”. The daemon’s README says it serves remote clients such as the Codex desktop and mobile apps, and runs as a detached process, not tied to the terminal that launched it. The daemon also gets a separate updater when all of these hold: automatic updates are on, the install uses the stable latest channel, and the binary supports updating. The updater checks for a new version after five minutes, then hourly by default, and an update restarts the daemon, which may interrupt active or queued work. The README calls the daemon experimental.
A Codex user asked for the daemon to be opt-in and posted a workaround
Issue #48195, opened on GitHub on 25 September 2026, asks OpenAI to make the daemon opt-in, so that it stays off unless a user turns it on. Its reporter says an interactive session starts a daemon that keeps running after every Codex window is closed, plus a separate updater. When it was read, it had 19 comments, and neither the reporter nor any commenter was marked by GitHub as associated with the repository, so no maintainer reply was visible.
One commenter says setting daemon_auto_start = false in config.toml, Codex’s configuration file, resolved the problem. The 0.164.0 source code puts feature flags such as this one in that file’s [features] section. The reporter’s workaround starts with Codex’s own command for switching a feature off:
codex features disable daemon_auto_start
Codex’s latest release still turns the daemon on by default
The source code of version 0.164.0, released on 23 October 2026, still marks the daemon_auto_start flag as a stable feature that is on by default. None of the 12 pull requests in its release notes that mention the daemon says the default changed.
To stop a running daemon, the daemon’s README documents codex app-server daemon stop. The updater is switched off in the daemon’s own settings file, CODEX_HOME/app-server-daemon/settings.json, as in the README’s example:
"updater": { "autoUpdateEnabled": false, "updateIntervalMinutes": 120 }
Claude Code checks for updates at startup and while it runs
Claude Code’s native installs update themselves, but its setup page describes no updater process or daemon and does not say whether anything keeps running after exit. It checks for updates at startup and periodically while running, installs them in the background, and applies them at the next start. The npm package installs the same binary, though the GitHub README says installation via npm is deprecated.
The page gives the off switch as "DISABLE_AUTOUPDATER": "1" in the env section of settings.json, Claude Code’s settings file. That stops only the background check; blocking the manual claude update and claude install commands too takes the DISABLE_UPDATES setting.
Gemini CLI’s settings page gives an off switch but not how updates run
Gemini CLI’s settings reference lists general.enableAutoUpdate, which is true by default; setting it to false in the settings.json file turns automatic updates off. The page does not say how or when updates run, or whether anything keeps running after exit.
The project’s README says that for unpaid-tier and Google One users, Gemini CLI “was replaced by Antigravity CLI” on 18 June 2026, and that it “is not optimized for the latest Gemini models”.
Copilot CLI’s changelog names an off switch but no default outside CI
Copilot CLI’s update behaviour is scattered across one-line entries in its changelog. When an update is downloaded automatically, the notification suggests the /restart command (29 July 2026). In continuous integration (CI) environments, auto-update is off by default, as the help text notes (11 February 2026). The --no-auto-update flag turns it off and “runs the version bundled in the binary” (16 September 2026); an autoUpdate setting is only named (1 April 2026), without its file or default. Nothing in the changelog says when the update check runs or whether updating continues after the CLI exits.
Limits
On update behaviour, one document each is cited for Claude Code, Gemini CLI and Copilot CLI; for Codex, the daemon README, two release notes, the feature source code and one issue. Other pages only describe the tools, and registry records give versions. A tool may document its update behaviour elsewhere. For Codex, the documents cited do not define “eligible interactive sessions”. The daemon README does not say whether npm, Homebrew or WinGet installs get the updater; the issue’s reporter, who installed with npm, says theirs did. The official configuration reference at developers.openai.com was not read, and no maintainer statement outside issue #48195 was checked.
For Claude Code, the interval behind “periodically” is not stated, and only the settings.json form of DISABLE_AUTOUPDATER was checked. For Gemini CLI, the settings page came from the main branch, not the 0.65.0 release, and the update code was not read. For Copilot CLI, the changelog gives neither the default outside CI nor the check timing. Any row can change with the next release: when the registries were read they already listed the prereleases Codex 0.165.0-alpha.1, Gemini CLI 0.66.0-preview.0 and Copilot CLI 1.0.104-3, and Claude Code had published eight releases between 18 and 23 October 2026 (UTC).