This app is distributed outside the Mac App Store as a downloadable DMG.
- macOS 13 or later.
- Apple Silicon Macs with the
arm64DMG. - Intel Macs with the
x86_64DMG. make releasebuilds the current host architecture by default. Use the explicit architecture targets below when preparing GitHub Release artifacts.- A local Codex installation and a signed-in Codex account are required for account quota data.
Use this for private testing or installation on your own machines:
make clean dmgThe artifact is written to:
dist/codexU-<version>-mac-<arch>.dmg
Because this build is ad-hoc signed, another Mac may show a Gatekeeper warning on first launch.
If macOS blocks the app, open System Settings > Privacy & Security, scroll to
the Security section, click Open Anyway for codexU.app, then confirm
with Touch ID or your password. Finder right-click > Open also shows the
manual allow prompt.
To build an Intel-only artifact from a compatible toolchain:
make release-intelThis writes dist/codexU-<version>-mac-x86_64.dmg and its .sha256 file.
To build an Apple Silicon artifact explicitly:
make release-arm64To build both Release DMGs in one command:
make release-allYou can still override the target triple directly when needed:
make clean release TARGET_TRIPLE="x86_64-apple-macos13.0"make releaseThis creates the DMG and a SHA-256 checksum file next to it.
For a formal release, prefer the repository wrappers instead of manually repeating build and verification commands:
make memory-risk-check
sed -n '1,240p' build/memory-risk/report.mdThis mandatory gate scans the full production source tree for unbounded stream reads, app-server pipe reads that wait for a full fixed-size buffer instead of returning partial responses, process-pipe lifecycle errors, repeating callback retention, missing observer cleanup, unbounded caches or pending-request collections, and parent-path traversal without explicit root termination or cycle guards. Review the generated inventory before continuing. A failure blocks all later release work and must not be bypassed.
make release-packageThis reruns the memory-risk gate, runs the self-tests including the macOS 13 Claude Skill root-parent regression, builds both architectures, verifies both DMGs and checksums, mounts each image, checks the embedded Mach-O architecture, and verifies the app signature.
After copying the generated SHA-256 values into docs/release-notes-v<version>.md, run:
make release-checkThis reruns the memory-risk gate and validates version/document consistency, release assets, checksums, release notes, and tag/release conflicts. It intentionally does not tag, push, or publish; those external writes remain explicit steps documented in AGENTS.md and .agents/skills/codexu-release/SKILL.md.
For broad distribution outside the App Store, sign with a Developer ID Application certificate:
make clean dmg SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
DMG_SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)"The app bundle is signed with hardened runtime and timestamping when SIGN_IDENTITY is not -.
After building with a Developer ID certificate, notarize and staple the DMG:
make notarize \
SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
DMG_SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
APPLE_ID="you@example.com" \
TEAM_ID="TEAMID" \
NOTARY_PASSWORD="app-specific-password"NOTARY_PASSWORD should be an Apple app-specific password or a keychain profile value accepted by xcrun notarytool.
hdiutil verify dist/*.dmg
hdiutil attach dist/*.dmg
codesign --verify --deep --strict "/Volumes/codexU/codexU.app"For notarized releases, also run:
spctl -a -t open --context context:primary-signature -v dist/*.dmgThe app does not bundle Codex. It reads:
codex app-serverfrom the local Codex installation.~/.codex/state_5.sqlitefor local token and thread statistics.~/.codex/automations/**/automation.tomlfor enabled automation tasks.
If Codex changes its app-server API or local SQLite schema, the widget should fail into a partial-data mode instead of blocking launch.