Run the Codex desktop app on Linux via npm, aur, and a nix flake.
‼️ We welcome platform specific PRs/issues/reproductions! Maintainer uses nix/arch (btw).
codex-app-linux is a thin launcher:
- bundles the matching
codexCLI runtime - downloads the matching Linux desktop binary archive on first run
- launches the desktop app with
CODEX_CLI_PATHwired up
OpenAI now publishes the desktop archive as the combined ChatGPT app. This
project follows those ChatGPT prod/beta archives while intentionally retaining
the existing codex-app-linux npm, AUR, command, and release identities so the
upstream rebrand does not break Linux installations.
-
Latest
yay -S codex-app-unofficial
-
Beta
yay -S codex-app-beta-unofficial
-
Install globally
npm i -g codex-app-linux@latest
npm i -g codex-app-linux@beta
-
Run once with
npx:npx codex-app-linux@latest
npx codex-app-linux@beta
-
Browser mode from npm (note: many features are missing, don't expect much):
npx codex-app-linux web --open
webonly serves the Codex UI in a browser. It does not install or replace the ChatGPT browser extension. -
Disable browser auth entirely (unsafe; only behind a trusted reverse proxy / tailnet):
npx codex-app-linux web --dangerously-disable-auth true
- Linux x64
- GitHub access not required for normal app launch
Linux desktop builds support Browser Use through the official ChatGPT Chrome extension.
- Install the extension in stable Google Chrome.
- Start or restart the Codex desktop app.
- Open the extension side panel and use Codex from there.
The desktop app installs the Linux native-messaging manifest and its bundled extension host automatically. Current support is Linux x64 + stable Google Chrome. Chromium-family variants using different profile/manifest locations are not wired up yet.
Browser Use is separate from Computer Use. This enables the extension-driven Chrome workflow; it does not add Linux desktop mouse/keyboard control.
If CODEX_CLI_PATH is already set, the launcher uses it.
Otherwise it uses the bundled resources/codex, then falls back to which codex.
This repo builds and publishes the Linux release pipeline for Codex desktop:
- tracks upstream
prodandbetaappcast feeds - rebuilds the upstream app for Linux x64
- emits
linux-unpackedandAppImage - publishes
codex-app-linuxon npm
npm test
npm run release:prod
npm run release:betaGitHub Releases:
- source of truth for Linux desktop artifacts
- uploads
AppImage - uploads a tarball of
linux-unpacked
npm:
- publishes
codex-app-linux - acts as a thin launcher
- downloads the matching
linux-unpackedtarball from GitHub Releases on first run
AUR:
- publishes binary packages from the same GitHub release tarballs
- installs the unpacked app into
/opt - installs desktop entry + icon for Arch launchers/menus
- prod package:
codex-app-unofficial - beta package:
codex-app-beta-unofficial
Launcher behavior:
- uses existing
CODEX_CLI_PATHif set - otherwise sets
CODEX_CLI_PATHfrom bundledresources/codex - finally falls back to
which codex - errors if neither is available
- extracts
linux-unpackedinto cache on first run - npm launches the unpacked binary directly
- npm also exposes
codex-app-linux webto serve the bundled UI in a browser - browser auth can be disabled explicitly with
--dangerously-disable-auth true - AppImage and
linux-unpackedrelease binaries perform the same bundled-first lookup at launch - browser mode is npm-only; AUR packages continue to ship desktop launch behavior only
Workflow: .github/workflows/release.yml
- scheduled 7 times daily
- checks both upstream channels
- builds
linux-unpackedandAppImage - creates/releases tagged GitHub assets
- publishes
latestfor prod,betafor beta
This repo also includes a flake.nix with:
devShells.defaultfor local release workapps.release-prodfornix run .#release-prodapps.release-betafornix run .#release-beta