Codex GUI
A native home for your coding agents.
Codex and DeepSeek Harness in one open-source desktop app.
Built with Rust and GPUI. Work locally or connect to a remote machine.
Installation · Build locally · Remote controls
Installation #
Download builds from the release server.
Each tag has platform directories containing packages, SHA256SUMS, and a release manifest.
Standalone DSH archives are published alongside the GUI for Linux, macOS, and
Windows on x86_64 and ARM64. They include Node and the patched app-server runtime;
see portable DSH downloads.
Build locally #
nix develop
cargo build --bin codex-code-mode-host
cargo run --bin codex-gui
Windows uses native Rust and MSVC. See Windows builds for toolchain setup, portable ZIP bundling, and disposable Windows VMs in Spindle.
GPUI dependencies use the Tangled forks and branches declared in Cargo.toml.
For local development, put [patch] overrides in .cargo/config.local.toml.
For example,
# Local development dependency overrides.
[patch."https://tangled.org/superkenvery.tngl.sh/zed"]
gpui = { path = "../Open-Agents-GUI/zed/crates/gpui" }
gpui_platform = { path = "../Open-Agents-GUI/zed/crates/gpui_platform" }
[patch."https://tangled.org/superkenvery.tngl.sh/gpui-kit"]
gpui-component = { path = "../Open-Agents-GUI/gpui-kit/crates/component" }
gpui-kit-assets = { path = "../Open-Agents-GUI/gpui-kit/crates/assets" }
The local code-mode host keeps Codex's upstream transport and session protocol,
but executes JavaScript with the patched QuickJS runtime in
crates/codex-code-mode-runtime-quickjs.
codex-gui supports both Codex and DeepSeek Harness in one app. The source
selector offers Local Codex daemon, Embedded Codex, and Embedded DSH. Embedded
DSH runs as a GUI-managed child process. Linux, macOS, and Windows releases bundle the
patched harness with app-server support.
Remote controls #
For SSH sources, choose Codex or DSH in the source editor. The GUI starts that
backend's daemon on the remote host and connects through its app-server proxy.
The selected CLI must be installed on the host; executable paths and base
arguments can be customized. DSH defaults to the app-server profile.
Existing Codex sources are retained. Sources from dsh-sources.json are imported
once with their project paths, projectless chats, and chat defaults. Appearance
settings use the Codex GUI settings file.
For local development, DSH is resolved in this order:
--dsh-repo <path>(runsnix develop <path> -c pnpm dsh);--dsh-bin <path>;$DSH_GUI_DSH_BIN;- a
dshshipped next to thecodex-guiexecutable; dshonPATH.
cargo run --bin codex-gui -- \
--dsh-repo /path/to/deepseek-harness \
--dsh-profile app-server
Select Embedded DSH to use the harness. Its executable and base arguments can also be customized in the source editor.
Launch flags override the Embedded DSH client for the current process only;
they do not change the saved source configuration. For a development build,
use --dsh-bin /path/to/patched/dsh to select the harness built by this project's
nix build .#dsh-harness. A separately installed official dsh may not include
the app-server profile. Connection failures and the actual CLI invocation are
logged to the terminal; the Disconnected tag also shows the error in its tooltip.
- Rust 90%
- Nix 3%
- Python 3%
- PowerShell 3%
- HTML <1%
- 2 more languages <1%