Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
5f87b31
test: scope suite to repository tests
cau1k Jul 26, 2026
336fe16
test: cover Sparkle query params RPC
cau1k Jul 26, 2026
3e82172
fix(webstrap): support Sparkle query params RPC
cau1k Jul 26, 2026
f8cc035
test: guard upstream Electron entrypoint
cau1k Jul 26, 2026
978ee21
test: cover Linux Chrome extension host delivery
cau1k Jul 9, 2026
0a5fe33
test: require static Chrome host artifacts
cau1k Jul 9, 2026
1e5176f
build: stage static Linux Chrome host
cau1k Jul 9, 2026
94b8102
test: cover Linux Chrome plugin diagnostics
cau1k Jul 9, 2026
e275728
fix: complete Linux Chrome plugin wiring
cau1k Jul 9, 2026
12a023a
ci: build and test Linux Chrome host
cau1k Jul 9, 2026
28f32b8
chore: bump launcher revision for Chrome host
cau1k Jul 9, 2026
06b8bc4
test: require Chrome host attribution
cau1k Jul 9, 2026
358e764
docs: package Chrome host MIT notice
cau1k Jul 9, 2026
b62ec10
test: lock Chrome cache patch idempotence
cau1k Jul 9, 2026
abfb7f5
fix: keep Chrome cache patch idempotent
cau1k Jul 9, 2026
3a7efc2
build: provide Rust in Nix release shell
cau1k Jul 9, 2026
cfc613d
chore: ignore native host build output
cau1k Jul 9, 2026
ccb404f
fix: preserve trusted Chrome browser client
cau1k Jul 9, 2026
03d58f1
test: execute packaged Chrome host hello
cau1k Jul 9, 2026
99ccd90
refactor: isolate Chrome host smoke
cau1k Jul 9, 2026
abddedb
docs: package Chrome host provenance
cau1k Jul 9, 2026
26c571a
feat: add Linux Chrome extension host
cau1k Jul 9, 2026
06342e3
fix: harden Chrome host backpressure
cau1k Jul 9, 2026
f2704f4
fix: preserve webstrap RPC discovery
cau1k Jul 9, 2026
f2ac295
fix: detect Chrome extension on Linux
cau1k Jul 9, 2026
3915754
feat: read desktop Chrome host registry
cau1k Jul 9, 2026
f27a23c
build: refresh managed Chrome host cache
cau1k Jul 9, 2026
c196dd7
test: exercise managed Chrome host runtime
cau1k Jul 9, 2026
a676e6a
docs: explain Linux Browser Use setup
cau1k Jul 9, 2026
9abdb1b
test: terminate smoke process trees
cau1k Jul 9, 2026
2ec41a8
test: scope Node test discovery
cau1k Jul 9, 2026
9a77aee
build: bundle Rust dependency licenses
cau1k Jul 9, 2026
60965dc
docs: document managed Chrome host contract
cau1k Jul 9, 2026
d6abac0
feat: preserve desktop agent mode defaults
cau1k Jul 9, 2026
f31d183
refactor: reuse native RPC helpers
cau1k Jul 9, 2026
6b8c2c3
test: reuse Chrome host layout constants
cau1k Jul 9, 2026
d9ae3f4
test: enforce desktop agent mode parity
cau1k Jul 9, 2026
3c7b0fb
test: lock ChatGPT Codex runtime parity
cau1k Jul 26, 2026
d06b317
fix: align Linux Codex runtime with ChatGPT
cau1k Jul 26, 2026
508cc94
test: require browser smoke diagnostics
cau1k Jul 26, 2026
e352cbf
test: report web shell failure evidence
cau1k Jul 26, 2026
a089378
test: cover native Linux Chrome discovery
cau1k Jul 26, 2026
1ee67e9
test: cover metadata-driven Chrome discovery
cau1k Jul 26, 2026
5090a58
fix: accept upstream Linux Chrome discovery
cau1k Jul 26, 2026
da90955
test: cover bundled Codex dynamic tools
cau1k Jul 26, 2026
91e05a5
fix: initialize dynamic-tools smoke tempdir
cau1k Jul 26, 2026
cb42030
docs: define ChatGPT archive package identity
cau1k Jul 26, 2026
d93d111
test: reject incompatible managed registry entries
cau1k Jul 26, 2026
0e833c5
fix: filter incompatible managed registry entries
cau1k Jul 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,18 @@ jobs:
node-version: 24
cache: npm

- name: Install Rust target
run: rustup target add x86_64-unknown-linux-musl

- name: Install system deps
run: sudo apt-get update && sudo apt-get install -y p7zip-full jq libarchive-tools xvfb x11-utils
run: sudo apt-get update && sudo apt-get install -y p7zip-full jq libarchive-tools musl-tools xvfb x11-utils

- name: Install repo deps
run: npm ci

- name: Run tests
run: npm test

- name: Install browser deps
run: npx playwright install --with-deps chromium

Expand Down Expand Up @@ -125,8 +131,11 @@ jobs:
cache: npm
registry-url: https://registry.npmjs.org

- name: Install Rust target
run: rustup target add x86_64-unknown-linux-musl

- name: Install system deps
run: sudo apt-get update && sudo apt-get install -y p7zip-full jq libarchive-tools xvfb x11-utils
run: sudo apt-get update && sudo apt-get install -y p7zip-full jq libarchive-tools musl-tools xvfb x11-utils

- name: Install repo deps
run: npm ci
Expand Down Expand Up @@ -311,8 +320,11 @@ jobs:
cache: npm
registry-url: https://registry.npmjs.org

- name: Install Rust target
run: rustup target add x86_64-unknown-linux-musl

- name: Install system deps
run: sudo apt-get update && sudo apt-get install -y p7zip-full jq libarchive-tools xvfb x11-utils
run: sudo apt-get update && sudo apt-get install -y p7zip-full jq libarchive-tools musl-tools xvfb x11-utils

- name: Install repo deps
run: npm ci
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/upstream-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,18 @@ jobs:
node-version: 24
cache: npm

- name: Install Rust target
run: rustup target add x86_64-unknown-linux-musl

- name: Install system deps
run: sudo apt-get update && sudo apt-get install -y p7zip-full jq libarchive-tools xvfb x11-utils
run: sudo apt-get update && sudo apt-get install -y p7zip-full jq libarchive-tools musl-tools xvfb x11-utils

- name: Install repo deps
run: npm ci

- name: Run tests
run: npm test

- name: Install browser deps
run: npx playwright install --with-deps chromium

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ dist
stage
tmp
.env
/native/chrome-extension-host/target/
25 changes: 25 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ Run the Codex desktop app on Linux via npm, aur, and a nix flake.
- downloads the matching Linux desktop binary archive on first run
- launches the desktop app with `CODEX_CLI_PATH` wired 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.

## Quick Start

### aur
Expand Down Expand Up @@ -49,6 +54,9 @@ Run the Codex desktop app on Linux via npm, aur, and a nix flake.
npx codex-app-linux web --open
```

`web` only 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):
```bash
npx codex-app-linux web --dangerously-disable-auth true
Expand All @@ -59,6 +67,23 @@ Run the Codex desktop app on Linux via npm, aur, and a nix flake.
- Linux x64
- GitHub access not required for normal app launch

## Browser Use

Linux desktop builds support Browser Use through the official
[ChatGPT Chrome extension](https://chromewebstore.google.com/detail/chatgpt/hehggadaopoacecdllhhajmbjkdcmajg).

1. Install the extension in stable Google Chrome.
2. Start or restart the Codex desktop app.
3. 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`.

Expand Down
61 changes: 61 additions & 0 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@
pkgs = import nixpkgs { inherit system; };
releaseProd = pkgs.writeShellApplication {
name = "release-prod";
runtimeInputs = with pkgs; [ nodejs_24 p7zip libarchive gnutar ];
runtimeInputs = with pkgs; [ nodejs_24 p7zip libarchive gnutar rustup ];
text = ''
cd ${self}
exec node scripts/release-channel.mjs --channel prod "$@"
'';
};
releaseBeta = pkgs.writeShellApplication {
name = "release-beta";
runtimeInputs = with pkgs; [ nodejs_24 p7zip libarchive gnutar ];
runtimeInputs = with pkgs; [ nodejs_24 p7zip libarchive gnutar rustup ];
text = ''
cd ${self}
exec node scripts/release-channel.mjs --channel beta "$@"
Expand Down Expand Up @@ -48,6 +48,7 @@
p7zip
libarchive
gnutar
rustup
];
};
});
Expand Down
2 changes: 2 additions & 0 deletions native/chrome-extension-host/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[target.aarch64-unknown-linux-musl]
linker = "rust-lld"
Loading
Loading