🖥️ 不想手动下载?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.
中文
codex-app-mirror 是面向 OpenAI Codex 桌面应用的安装包镜像与分发项目,用于在 Microsoft Store 或官方下载不便时提供稳定且可校验的获取渠道。项目仅做镜像,不构建、不修改、不重打包 Codex:按版本探测结果将官方来源的 Windows MSIX 与 macOS DMG 原样发布到 GitHub Release,并经 CDN 短链分发。macOS 端另提供 Sparkle 增量更新 appcast,由下游 Codex App Manager 客户端消费。
能力一览
能力
说明
🪟 Windows MSIX
直接镜像 Microsoft Store 包,x64 稳定发布,ARM64 纳入 manifest 与镜像路径
Windows x64 是 Windows 平台的必需包;Windows ARM64 是可选架构。如果 Microsoft Store 在探测和下载之间发生 ARM64 rollout 漂移,本轮会跳过本地 ARM64 上传,并保留上一份校验匹配的 latest/win-arm64;后续探测到稳定包时再补上。
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 Codex: it publishes the official Windows MSIX and macOS DMG verbatim to GitHub Releases based on version probing, and serves them over CDN short links. For macOS it also provides a Sparkle incremental-update appcast, consumed by the downstream Codex App Manager 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
For older versions, browse GitHub Releases by release/tag — the short links only point at the latest. Download SHA256SUMS.txt too if you want to verify integrity.
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:
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
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:
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.
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.
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.
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.
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 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. Not affiliated with or endorsed by OpenAI or Microsoft.
codex-app-mirror
把官方 Codex 桌面应用安装包,原样、可校验、国内可达地镜像到 GitHub Release,
并为 macOS 提供 Sparkle 增量自动更新源。
官网 · Official Website · 中文 · English
🖥️ 不想手动下载?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.
为 Claude Code / Codex / Gemini CLI 提供按量计费的 API 中转服务。
Sponsored by DuckCoding — a pay-as-you-go API relay for Claude Code / Codex / Gemini CLI.
中文
codex-app-mirror是面向 OpenAI Codex 桌面应用的安装包镜像与分发项目,用于在 Microsoft Store 或官方下载不便时提供稳定且可校验的获取渠道。项目仅做镜像,不构建、不修改、不重打包 Codex:按版本探测结果将官方来源的 Windows MSIX 与 macOS DMG 原样发布到 GitHub Release,并经 CDN 短链分发。macOS 端另提供 Sparkle 增量更新 appcast,由下游 Codex App Manager 客户端消费。能力一览
SHA256SUMS.txt与release-manifest.json上游指纹下载与安装
打开 最新 GitHub Release,下载你的平台对应文件:
OpenAI.Codex_..._x64__2p2nqsd0c76g0.MsixOpenAI.Codex_..._arm64__2p2nqsd0c76g0.Msix(当官方下载 URL 已解析时发布)Codex-mac-arm64.dmgCodex-mac-x64.dmg或直接使用 CDN 短链(推荐,自动按你的网络选最优节点——国内走 S3 副镜像,海外走 R2,只保留当前最新版):
需要历史版本时,到 GitHub Releases 按 release/tag 查找;短链只指向最新版。建议同时下载
SHA256SUMS.txt核对文件完整性。macOS 自动更新
macOS 版除了手动下载 DMG,还支持 Sparkle 增量自动更新。下游的 Codex App Manager 客户端会订阅本镜像的 appcast,自动检查新版并只下载版本间的 delta 差量包,而不是每次重拉完整安装包:
镜像逐字节复制官方 Sparkle 归档和 OpenAI 的 EdDSA 签名,只改写
enclosure的下载地址指向镜像。由于 EdDSA 签的是归档字节本身,只要镜像与官方字节级一致,原始签名依然有效——本镜像不会、也无法伪造签名。如果客户端没有匹配的 delta,会自动回退到完整归档。工作原理
探测 → 比对 → 发布
每次运行先做一次轻量探测,只有上游真的变了才下载和发版:
catalog-only状态记录在 manifestETag/Last-Modified/Content-Length与 appcast 版本字段release-manifest.json做稳定字段比较没有变化就在探测阶段结束,不下载、不发重复 Release。任一平台有变化,则下载所有可下载的安装包、生成校验和与 manifest、构建 Sparkle appcast,发布新的 GitHub Release。
双层镜像 + 按地域分流
发布后,资产会同步到两套镜像,由一个 Cloudflare Worker 路由:
codexapp-r2.agentsmirror.com)路由器读取请求的
CF-IPCountry,把中国大陆访客分流到 S3 副镜像,其余走 R2——对用户透明,同一条短链全自动选路。调度
mirror.yml(workflow_dispatch)schedule,每 6 小时一次(11 */6 * * *)——防止 GitHub 计划任务被延迟或跳过时漏检生态:Codex App Manager
本镜像不只是给人手动下载——它是 Codex App Manager 桌面客户端的更新后端。客户端在本地检测平台与能力,并消费这里的 Sparkle appcast 完成安装与增量更新。镜像保持窄而稳,把”分发与更新”这层基础设施沉淀下来。
➡️ 官网:codexapp.agentsmirror.com · 仓库:Wangnov/Codex-App-Manager
版本号说明
Release 以 Codex 应用内部版本聚合,而不是以 Windows Store 的四段 MSIX 包版本命名。Windows MSIX 包名里的四段版本(例如
26.623.5175.0)仍会记录在 release body 和release-manifest.json的平台包字段里;Codex 内部版本来自 Windows 包内的应用package.json,并与 macOSCFBundleShortVersionString对齐,例如26.623.41415。Release tag 与标题使用内部版本:
当某个平台尚未发布同一内部版本时,会先创建该内部版本的 prerelease,并在 body 的“版本与发布时间”表格中把缺失平台标记为待官方发布。已发布的架构会立即推进 R2/S3
latest/*短链;尚未发布该版本的架构会继续指向它自己的当前 latest。四个架构补齐后,同一个 Release 会被补全并提升为正式 latest。Windows x64 是 Windows 平台的必需包;Windows ARM64 是可选架构。如果 Microsoft Store 在探测和下载之间发生 ARM64 rollout 漂移,本轮会跳过本地 ARM64 上传,并保留上一份校验匹配的
latest/win-arm64;后续探测到稳定包时再补上。当前 Windows 包名形如:
Windows 提示「已被系统管理员阻止」怎么办
如果双击
.Msix时提示“你的系统管理员已阻止此程序。有关详细信息,请与你的系统管理员联系。”,通常不是下载文件损坏,而是当前系统策略不允许从商店外安装 MSIX / AppX 包,或者应用安装器 / AppX 部署服务被管理员禁用。可以按这个顺序排查:
Add-AppxPackage -Path .\OpenAI.Codex_..._x64__2p2nqsd0c76g0.Msix上游来源
macOS DMG 使用 OpenAI Codex 桌面安装器的官方静态地址,并以官方 appcast 锁定版本:
https://persistent.oaistatic.com/codex-app-prod/Codex.dmghttps://persistent.oaistatic.com/codex-app-prod/Codex-latest-x64.dmgWindows MSIX 使用 Microsoft Store metadata 解析:
9PLM9XGG6VKS仓库内的解析器是纯 .NET 实现,不依赖
StoreLib这类第三方 Store helper 包。这个仓库不会做什么
致谢
Star History
许可
MIT。本项目与 OpenAI、Microsoft 无隶属或背书关系。
English
codex-app-mirroris 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 Codex: it publishes the official Windows MSIX and macOS DMG verbatim to GitHub Releases based on version probing, and serves them over CDN short links. For macOS it also provides a Sparkle incremental-update appcast, consumed by the downstream Codex App Manager client.At a glance
SHA256SUMS.txtand arelease-manifest.jsonof upstream fingerprintsDownload & install
Open the latest GitHub Release and grab your platform’s asset:
OpenAI.Codex_..._x64__2p2nqsd0c76g0.MsixOpenAI.Codex_..._arm64__2p2nqsd0c76g0.Msix(published when the official download URL resolves)Codex-mac-arm64.dmgCodex-mac-x64.dmgOr use the CDN short links (recommended — auto-routed to the fastest node: mainland China via the S3 mirror, elsewhere via R2; latest version only):
For older versions, browse GitHub Releases by release/tag — the short links only point at the latest. Download
SHA256SUMS.txttoo if you want to verify integrity.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:
The mirror copies the official Sparkle archives and OpenAI’s EdDSA signatures byte-for-byte, rewriting only the
enclosureURL 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:
catalog-onlyuntil its URL resolvesETag/Last-Modified/Content-Lengthand appcast version fieldsrelease-manifest.jsonNo 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:
codexapp-r2.agentsmirror.com)The router reads
CF-IPCountryand sends mainland-China visitors to the S3 mirror, everyone else to R2 — transparent to users, one short link, auto-routed.Scheduling
mirror.yml(workflow_dispatch) every 15 minutesscheduleruns every 6 hours (11 */6 * * *), in case GitHub’s scheduler is delayed or skippedEcosystem: 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 · Repo: 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 andrelease-manifest.jsonas platform package metadata. The Codex app version is read from the Windows package’s apppackage.jsonand aligned with macOSCFBundleShortVersionString, for example26.623.41415.Release tags and titles use the internal version:
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
.Msixshows “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.Add-AppxPackage -Path .\OpenAI.Codex_..._x64__2p2nqsd0c76g0.MsixUpstream sources
macOS DMGs use OpenAI’s official static URLs, version-pinned via the official appcast:
https://persistent.oaistatic.com/codex-app-prod/Codex.dmghttps://persistent.oaistatic.com/codex-app-prod/Codex-latest-x64.dmgThe 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.Non-goals
Acknowledgements
Star History
License
MIT. Not affiliated with or endorsed by OpenAI or Microsoft.