📦ilysenko / codex-desktop-linux
← 返回首页
Unofficial ChatGPT desktop app for Linux (formerly the Codex app), built locally from OpenAI’s official macOS app. Includes Chat, Work, and Codex. Packages for Debian/Ubuntu (.deb), Fedora/openSUSE (.rpm), Arch (pacman), Nix/NixOS, and AppImage, with Wayland and X11 support.
⚖️ MIT#ai-coding#appimage#archlinux#codex#codex-desktop📅 创建于 2026-02-05🔄 更新于 2026-10-28
🔗 GitHub JavaScript

📄 仓库 README

在 GitHub 查看 ↗
来自 GitHub 仓库自述文件 · 版权归原作者所有

ChatGPT Community for Linux

CI Official Linux package build Join the Discord community

English | 简体中文 | فارسی

codex-desktop is an unofficial, community-maintained distribution of OpenAI's official Linux ChatGPT desktop application. It verifies and repackages the signed upstream Linux payload, adds disabled-by-default Linux features, and produces deb, RPM, pacman, AppImage, and Nix outputs.

The custom application appears in desktop menus as ChatGPT Community and uses an icon marked with a blue C. Its package and command are codex-desktop, and its installation root is /opt/codex-desktop, so it is easy to distinguish from OpenAI's separate ChatGPT package.

OpenAI's signed Linux .deb is the only upstream source. The official Electron runtime, native modules, bundled codex and rg, code-mode host, plugins, libraries, locales, and Owl metadata are reused directly. A clean build applies only required compatibility patches to resources/app.asar and preserves the official ELF runtime and bundled tools byte-for-byte. Optional Linux features remain disabled unless explicitly selected.

Install · Uninstall · Features · Updates · Build · Troubleshooting · Docs · Discord

Before contributing, read CONTRIBUTING.md. Maintainers and coding agents should also read AGENTS.md.

Install

Clone the repository before building a native package or AppImage:

git clone https://github.com/ilysenko/codex-desktop-linux.git
cd codex-desktop-linux
Platform Recommended command Result
Debian, Ubuntu, Pop!_OS, Mint, Elementary make bootstrap-native Builds and installs a .deb
Raspberry Pi 5, 64-bit OS make bootstrap-native Builds the official arm64 payload; see Pi notes
Fedora make bootstrap-native Builds and installs an RPM
openSUSE make bootstrap-native Builds and installs an RPM
Arch, Manjaro, EndeavourOS make bootstrap-native Builds and installs a pacman package
Gentoo make bootstrap-native Builds a local ebuild and installs through Portage; supports ui-tweaks and remote-mobile-control, no updater
NixOS or another Nix system nix run github:ilysenko/codex-desktop-linux Builds and runs the flake output; see Nix
Atomic desktops or another distribution make build-app && make appimage Produces a local AppImage without the native updater

Gentoo's application merge ignores EMERGE_DEFAULT_OPTS to install through the generated ebuild rather than reuse a binary package. Global Portage settings are unchanged. Gentoo has a phase-aware dependency and package-resource framework for audited features. ui-tweaks and remote-mobile-control are supported and remain disabled by default; other repository features require their own support declarations. Remote mobile control uses the existing Desktop-owned app-server; the ebuild does not install or enable a remote-control service. See the Gentoo feature contract. Gentoo's local ebuild path has been tested on OpenRC; a Gentoo systemd environment has not been tested. See Gentoo validation scope.

The recommended native installation is:

make bootstrap-native

This installs build dependencies, resolves the current package through OpenAI's signed stable APT metadata, builds codex-app/, creates the native package for the detected distribution, and installs the newest artifact from dist/.

If the dependencies are already installed, use:

make install-native

For the graphical guided installer, run the standalone repository entrypoint:

./install-community

(make guided-install invokes the same entrypoint.) The installer is part of the repository setup experience, not an optional Linux feature. On desktops with GTK4/PyGObject it walks through feature selection, installation options, review, and build/install progress with a live log. Required features are selected automatically; conflicting choices are disabled with the reason kept visible.

The graphical installer does not modify feature implementations or feature settings. It updates only the enabled-feature list and its own installer preferences in the gitignored linux-features/features.json; any existing feature settings are preserved unchanged. Native output always keeps the repository identity codex-desktop under /opt/codex-desktop, whether or not the automatic updater is included.

To configure features without installing yet, keep using:

make setup-native
make install-native

make setup-native only writes the local feature selection. It does not build or install the application. See Native setup for the guided flow, non-interactive settings, updater selection, and cleanup.

Use an already downloaded official package

Normally the build resolves amd64 or arm64 from the signed stable index. You can reuse an already-downloaded package body:

UPSTREAM_DEB=/path/to/chatgpt_<version>_<arch>.deb make build-app

The local package is verified against the signed stable metadata by default, including its version, architecture, size, and SHA-256, without downloading its body again. All builds verify without prompting or reading user input, including interactive local builds. To choose the local exception explicitly:

./install.sh --skip-oai-official-sig-verification /path/to/chatgpt_<version>_<arch>.deb

The exception applies only to this invocation and still checks package name, version format, architecture, and payload completeness. Build metadata records signatureVerification: "skipped"; the caller is responsible for provenance. Verification errors never silently enable the exception. See Build and packaging. Old .dmg, DMG=, and CODEX_DMG_* inputs are intentionally unsupported.

Before you install

  • Only the latest signed stable OpenAI Linux package is supported, on amd64 and arm64.
  • Build tools require Node.js 20 or newer, npm, Python 3, curl, gpgv, dpkg-deb, tar, make, and a C/C++ toolchain. Rust is used for the updater and enabled native feature helpers. make bootstrap-native installs or guides you through these requirements.
  • The official chatgpt and custom codex-desktop packages may coexist. By default they intentionally share the upstream Codex user profile and should not run at the same time. The optional community-profile-isolation feature gives Community separate Codex and Electron state and pins its bundled CLI so users who need isolated runtimes can avoid that shared-profile boundary.
  • AppImage never adds --no-sandbox automatically. If your distribution disables unprivileged user namespaces, use the native package or follow the sandbox guidance in Troubleshooting.

Anonymous daily usage count

To help the community decide whether maintaining this distribution is useful, the launcher sends at most one anonymous usage event per UTC day to the public GoatCounter dashboard. The event contains only the fixed path /app-launch. GoatCounter derives an aggregate country from the network request; no application activity, account or machine identifier, version, architecture, package format, language, screen size, or referrer is sent. Every installation sends the same fixed, non-identifying User-Agent so GoatCounter does not discard the request as a bot.

The request runs silently in the background. A missing curl, a blocked request, or any other error never delays the application and produces no output. Disable the usage count with the single environment variable:

CODEX_LINUX_DISABLE_USAGE_REPORTING=1 codex-desktop

Uninstall

First close both ChatGPT Community and the official ChatGPT application. Then remove the native package with the package manager that installed it:

# Debian / Ubuntu
sudo apt remove codex-desktop

# Fedora
sudo dnf remove codex-desktop

# openSUSE
sudo zypper remove codex-desktop

# Arch / Manjaro
sudo pacman -R codex-desktop

# Gentoo
sudo emerge --deselect app-misc/codex-desktop
sudo emerge --unmerge app-misc/codex-desktop

Native package removal disables the user update service. If a service from an older or manual installation remains, remove it explicitly:

systemctl --user disable --now codex-update-manager.service
systemctl --user daemon-reload

For AppImage, delete the AppImage file you built. For a repository-only app, delete only the generated tree inside the checkout:

rm -rf -- ./codex-app

For Nix, remove the package from your profile, Home Manager configuration, or NixOS module and rebuild that profile or system.

Package removal preserves user data. To remove only Community wrapper and updater state, inspect and then delete the following directories:

~/.config/codex-desktop
~/.local/state/codex-desktop
~/.cache/codex-desktop
~/.config/codex-update-manager
~/.local/state/codex-update-manager
~/.cache/codex-update-manager

If `community-

📈 近 7 天 Star 趋势

每日新增 Star(柱)与累计 Star(线)· 数据来自 GitHub

🏆 排名变化趋势

在各榜单中的排名历史(数字越小越靠前)

📋 历史上榜记录

每次快照的详细数据
日期 榜单 排名 周期新增 总 STAR