This project has two native install entrypoints:
make bootstrap-nativefor the fastest non-interactive first install.make setup-nativefor a guided checklist and optional Linux feature picker.
git clone https://github.com/ilysenko/codex-desktop-linux.git
cd codex-desktop-linux
make bootstrap-nativemake bootstrap-native installs build dependencies, regenerates codex-app/,
validates the cached upstream Codex.dmg and downloads it only when missing or
stale, builds the matching native package, and installs the newest artifact
from dist/.
If dependencies are already installed:
make install-nativeTo play a best-effort sound immediately before an interactive sudo password
prompt, opt in with CODEX_SUDO_ALERT=1:
CODEX_SUDO_ALERT=1 make install-native
CODEX_SUDO_ALERT=1 make bootstrap-native
CODEX_SUDO_ALERT=1 make update-nativeThe alert is skipped while the existing sudo credential timestamp is valid.
It tries the desktop sound system first and falls back to the terminal bell.
Missing audio tools, sound files, or audio services never block installation.
make setup-nativeThe wizard detects your distro, package manager, native package format, desktop
session, GUI prompt helpers, pkexec, portal status, installed package state,
updater state, and optional Linux feature manifests.
It can write the git-ignored linux-features/features.json file for the next
build. You can choose features by id, number, or range in the prompt.
The wizard is intentionally separate from make bootstrap-native,
make install-native, make package, and make install, which stay
non-interactive for scripts and CI.
CODEX_LINUX_FEATURES=remote-mobile-control,read-aloud \
CODEX_LINUX_DISABLE_FEATURES=conversation-mode \
PACKAGE_WITH_UPDATER=0 \
CODEX_BOOTSTRAP_NONINTERACTIVE=1 \
make setup-nativeTo have the wizard orchestrate existing install commands, opt in explicitly:
CODEX_BOOTSTRAP_DRY_RUN=1 \
CODEX_BOOTSTRAP_INSTALL_DEPS=1 \
CODEX_BOOTSTRAP_INSTALL_NATIVE=1 \
make setup-nativeCODEX_BOOTSTRAP_INSTALL_DEPS=1 \
CODEX_BOOTSTRAP_INSTALL_NATIVE=1 \
make setup-nativeBuild-time feature changes only apply after rebuilding and reinstalling:
make install-nativeFor manual-update packages:
PACKAGE_WITH_UPDATER=0 make install-nativeDisabling a feature in features.json affects the next rebuild. It does not
delete local device keys, Read Aloud model files, plugin caches, Python
runtimes, or services.
Feature cleanup is separate and interactive:
CODEX_BOOTSTRAP_CLEANUP_FEATURES=remote-mobile-control,read-aloud make setup-nativeEach deletion requires typing DELETE <exact path>. Preview cleanup targets:
CODEX_BOOTSTRAP_DRY_RUN=1 \
CODEX_BOOTSTRAP_CLEANUP_FEATURES=remote-mobile-control,read-aloud \
make setup-nativeThe wizard uses ANSI color when the terminal supports it.
CODEX_BOOTSTRAP_COLOR=0 make setup-native # disable
CODEX_BOOTSTRAP_COLOR=1 make setup-native # force