🖥️ 不想手动下载?Codex App Manager 是基于本镜像的桌面客户端——一键安装、增量更新、干净卸载官方 Codex。
🖥️ Prefer one click? Codex App Manager — the desktop client built on this mirror — installs, updates and uninstalls official Codex for you.
---
本项目由 DuckCoding 赞助支持
为 Claude Code / Codex / Gemini CLI 提供按量计费的 API 中转服务。 Sponsored by DuckCoding — a pay-as-you-go API relay for Claude Code / Codex / Gemini CLI.
## 许可
[MIT](./LICENSE)。本项目与 OpenAI、Microsoft 无隶属或背书关系。
---
# English
`codex-app-mirror` is an installer mirror and distribution project for the OpenAI Codex desktop app, providing a stable, verifiable way to obtain it when the Microsoft Store or official downloads are inconvenient. The project only mirrors — it does not build, modify, or repackage packages. Stable publishes official Windows MSIX and macOS DMG assets verbatim to GitHub Releases and CDN short links. During preview, the unified ChatGPT Linux desktop app (including Codex) is isolated in GitHub prereleases only. For macOS the project also provides a Sparkle incremental-update appcast, consumed by the downstream [Codex App Manager](#en-ecosystem) client.
## At a glance
| Capability | Detail |
|---|---|
| 🪟 **Windows MSIX** | Mirrored from the Microsoft Store package: x64 is published, ARM64 is tracked in the manifest and mirror paths |
| 🍎 **macOS DMG** | Apple Silicon + Intel, official packages, unmodified |
| 🐧 **Linux Preview** | DEB for Ubuntu/Debian and RPM for Fedora, x64 + ARM64; GitHub prerelease only, never CDN/latest |
| 🔄 **Incremental auto-update** | macOS Sparkle appcast + delta enclosures, pinned EdDSA signatures kept byte-for-byte |
| 🌏 **Reachable in China** | Cloudflare R2 globally + auto-failover to an S3 mirror for mainland China; one link, auto-routed |
| ⏱️ **15-minute probe** | Cloudflare Cron primary + GitHub Actions 6-hour fallback; releases only when upstream changes |
| 🔐 **Verifiable** | Every release ships `SHA256SUMS.txt` and a `release-manifest.json` of upstream fingerprints |
## Download & install
Open the [latest GitHub Release](https://github.com/Wangnov/codex-app-mirror/releases/latest) and grab your platform's asset:
- **Windows x64**: `OpenAI.Codex_..._x64__2p2nqsd0c76g0.Msix`
- **Windows ARM64**: `OpenAI.Codex_..._arm64__2p2nqsd0c76g0.Msix` (published when the official download URL resolves)
- **Apple Silicon Mac**: `Codex-mac-arm64.dmg`
- **Intel Mac**: `Codex-mac-x64.dmg`
### Linux Preview
OpenAI announced the unified ChatGPT desktop app for Linux Preview on 2026-08-11, including ChatGPT, ChatGPT Work, and Codex. Linux packages are not mixed into Stable Latest. Browse [GitHub Releases](https://github.com/Wangnov/codex-app-mirror/releases) for a `codex-app-linux-preview-` prerelease:
- **Ubuntu 24.04/26.04 and Debian 13**: `chatgpt__amd64.deb` or `chatgpt__arm64.deb`
- **Fedora 43/44**: `chatgpt--1.x86_64.rpm` or `chatgpt--1.aarch64.rpm`
Linux Preview is an explicitly isolated third channel: `stable | beta | linux-preview`. An on-demand run requires an exact version, verifies OpenAI's signed APT/RPM metadata and all four package checksums, and publishes without advancing GitHub Latest, writing R2/S3, or creating `latest/linux*` routes. The official packages configure OpenAI's own update repository after installation, so subsequent automatic updates come directly from OpenAI by default.
Or use the CDN short links (recommended — **auto-routed to the fastest node**: mainland China via the S3 mirror, elsewhere via R2; latest version only):
| Platform | Short link |
|---|---|
| Windows x64 (compat alias) | |
| Windows x64 | |
| Windows ARM64 (when available for the current version) | |
| Apple Silicon Mac | |
| Intel Mac | |
| Checksums | |
| Release manifest | |
For **older versions**, browse [GitHub Releases](https://github.com/Wangnov/codex-app-mirror/releases) by release/tag — the short links only point at the latest. Download `SHA256SUMS.txt` too if you want to verify integrity. The machine-checkable contract for `release-manifest.json` lives in [`docs/manifest-schema.md`](docs/manifest-schema.md) ([JSON Schema](schemas/release-manifest.schema.json)).
## macOS auto-update
Beyond manual DMG downloads, macOS supports **Sparkle incremental auto-update**. The downstream Codex App Manager client subscribes to this mirror's appcast and downloads only the **delta between versions** rather than the full installer each time:
- Apple Silicon:
- Intel:
The mirror copies the official Sparkle archives and OpenAI's EdDSA signatures **byte-for-byte**, rewriting only the `enclosure` URL to point at the mirror. Because EdDSA signs the archive bytes themselves, the original signature stays valid as long as the mirror is byte-identical — the mirror never forges or recomputes a signature. Clients with no matching delta fall back to the full archive.
## How it works
### Probe → compare → release
Each run starts with a lightweight probe and only downloads/releases when upstream actually changed:
- **Windows**: query Microsoft Store DisplayCatalog for x64 / ARM64 package metadata, then resolve downloadable MSIX monikers + temporary Microsoft CDN URLs via FE3 metadata; ARM64 is recorded as `catalog-only` until its URL resolves
- **macOS**: request the official DMGs and appcast, read `ETag` / `Last-Modified` / `Content-Length` and appcast version fields
- **Linux Preview**: verify the official APT `InRelease` and RPM `repomd.xml` with a pinned key, resolve four versioned packages, then gate package name, version, architecture, file list, embedded key, and RPM package signatures
- **Compare**: diff those stable fields against the latest release's `release-manifest.json`
No change → it stops after the probe. Any platform changes → it downloads every downloadable installer, writes checksums + manifest, builds the Sparkle appcasts, and publishes a new GitHub Release.
### Two-tier mirror + geo routing
After release, assets sync to two mirrors fronted by a Cloudflare Worker:
- **Global**: Cloudflare R2 (`codexapp-r2.agentsmirror.com`)
- **Mainland China**: an S3 mirror served via presigned URLs
The router reads `CF-IPCountry` and sends mainland-China visitors to the S3 mirror, everyone else to R2 — transparent to users, one short link, auto-routed.
### Scheduling
- **Primary**: a Cloudflare Cron Trigger fires `mirror.yml` (`workflow_dispatch`) every 15 minutes
- **Fallback**: GitHub Actions' own `schedule` runs every 6 hours (`11 */6 * * *`), in case GitHub's scheduler is delayed or skipped
### Ecosystem: Codex App Manager
This mirror isn't only for manual downloads — it's the update backend for the **Codex App Manager** desktop client, which detects platform/capabilities locally and consumes the Sparkle appcast here for install and incremental updates. The mirror stays narrow and stable, owning the "distribution + update" infrastructure layer.
➡️ Website: [codexapp.agentsmirror.com](https://codexapp.agentsmirror.com) · Repo: [Wangnov/Codex-App-Manager](https://github.com/Wangnov/Codex-App-Manager)
## Version numbers
Releases are grouped by the Codex app's internal version, not by the four-part Windows Store MSIX package version. The Windows package version from the MSIX moniker (for example `26.623.5175.0`) is still recorded in the release body and `release-manifest.json` as platform package metadata. The Codex app version is read from the Windows package's app `package.json` and aligned with macOS `CFBundleShortVersionString`, for example `26.623.41415`.
Release tags and titles use the internal version:
```text
codex-app-26.623.41415
Codex App Mirror 26.623.41415
```
If one platform has not yet published the same internal version, the mirror creates a prerelease for that internal version and marks the missing platform as waiting in the "Versions and publish times" table. Architectures that have shipped immediately advance the R2/S3 `latest/*` short links; architectures that have not shipped that version keep pointing at their own current latest package. Once all four architectures arrive, the same Release is completed and promoted to latest.
Windows x64 is the required Windows package; Windows ARM64 is an optional architecture. If the Microsoft Store ARM64 rollout drifts between probe and download, that run skips the local ARM64 upload and preserves the previous checksum-matching `latest/win-arm64`; it is replaced once a stable ARM64 package is detected.
## Windows "blocked by your system administrator"
If double-clicking the `.Msix` shows "This app has been blocked by your system administrator", the package is usually not damaged — Windows is blocking sideloaded MSIX / AppX installation, or App Installer / AppX deployment is disabled by policy.
- Prefer the official [Microsoft Store page](https://apps.microsoft.com/detail/9plm9xgg6vks) first.
- On a personal PC, check that Windows allows apps from outside the Store and that App Installer is available.
- For a detailed error, run from an elevated terminal: `Add-AppxPackage -Path .\OpenAI.Codex_..._x64__2p2nqsd0c76g0.Msix`
- On managed (work/school) devices, ask the administrator to allow the install. This mirror does not and cannot bypass local install policies.
## Windows: from Codex 26.915, MSIX needs admin and portable installs start from the launcher
Starting with Codex `26.915.31029` (MSIX `26.915.3509.0`), the official Windows package changed in two ways. Both come from the upstream package itself; this mirror only redistributes it verbatim.
**1. Installing the MSIX requires administrator rights.** The package manifest now declares the `packagedServices` / `localSystemServices` capabilities and registers an auto-start service running as LocalSystem, `CodexSandboxService.OpenAI.Codex`. Windows only lets administrators install MSIX packages that carry services, so machines that never needed elevation before now ask for it.
- With admin rights: double-click the `.Msix` as before, or run `Add-AppxPackage` from an elevated terminal.
- Without admin rights (work or school PCs): use the **portable install** in [Codex App Manager](https://github.com/Wangnov/Codex-App-Manager). Portable mode does not register that service and needs no elevation.
**2. Double-clicking `ChatGPT.exe` in a portable install fails with "The process has no package identity" or "ChatGPT failed to start".** The new official `ChatGPT.exe` needs an MSIX package identity on its default startup path, and an extracted folder has none. The Manager places a native launcher in the portable install folder; start Codex from any of these:
- the "Launch Codex" button in the Manager;
- the **Codex** shortcut in the Start menu;
- `LaunchCodex.exe` in the install folder (next to `ChatGPT.exe`).
The launcher only points the child process at the CLI bundled with the payload; it does not modify the official `ChatGPT.exe` or `app.asar`. If an older Manager created the portable install, update the Manager to v0.5.8 or later and launch Codex from it once; it adds the launcher and the Start menu shortcut.
## Upstream sources
macOS DMGs use OpenAI's official static URLs, version-pinned via the official appcast:
- `https://persistent.oaistatic.com/codex-app-prod/Codex.dmg`
- `https://persistent.oaistatic.com/codex-app-prod/Codex-latest-x64.dmg`
The Windows MSIX is resolved from Microsoft Store metadata (DisplayCatalog → FE3 → Microsoft CDN). The resolver is implemented directly in .NET and does not depend on third-party Store helpers such as `StoreLib`.
Linux Preview uses OpenAI's official APT/RPM repository metadata with pinned signing-key fingerprint `3BFA0E4AE8B8CC16A2D9BA684A3B4A566C4660E4`. The official web entry point is ; repository snapshots are published only to isolated prereleases.
## Non-goals
- Does not modify Codex installer packages
- Does not bypass Microsoft Store or OpenAI authorization
- Does not forge or recompute Sparkle signatures (official signatures are copied verbatim)
- Does not preserve Microsoft CDN temporary URLs as permanent links
- Does not guarantee your local Windows AppX / MSIX policy will accept the package
- Is not a replacement for official OpenAI / Microsoft / Microsoft Store distribution
## Acknowledgements
- **[LINUX DO](https://linux.do/)** community — the home for feedback on download availability, install results, and checksums.
- **Institute of High Energy Physics, Chinese Academy of Sciences (IHEP)** — provides the S3 mirror storage that keeps downloads and updates fast and reachable inside mainland China.
## Star History
## License
[MIT](./LICENSE). Not affiliated with or endorsed by OpenAI or Microsoft.