Native Setup
June 3, 2026 ยท View on GitHub
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.
Fast Native Install
git clone https://github.com/ilysenko/codex-desktop-linux.git
cd codex-desktop-linux
make bootstrap-native
make bootstrap-native installs build dependencies, regenerates codex-app/
from a fresh upstream Codex.dmg, builds the matching native package, and
installs the newest artifact from dist/.
If dependencies are already installed:
make install-native
Guided Setup
make setup-native
The 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.
Non-Interactive Feature Selection
CODEX_LINUX_FEATURES=remote-mobile-control,read-aloud \
CODEX_LINUX_DISABLE_FEATURES=conversation-mode \
PACKAGE_WITH_UPDATER=0 \
CODEX_BOOTSTRAP_NONINTERACTIVE=1 \
make setup-native
To 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-native
CODEX_BOOTSTRAP_INSTALL_DEPS=1 \
CODEX_BOOTSTRAP_INSTALL_NATIVE=1 \
make setup-native
Build-time feature changes only apply after rebuilding and reinstalling:
make install-native
For manual-update packages:
PACKAGE_WITH_UPDATER=0 make install-native
Feature Cleanup
Disabling 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-native
Each 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-native
Color Output
The 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