Codex Computer Use Ventura
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Codex Computer Use Venturashow me what's on my screen"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Codex Computer Use for macOS 13
An unofficial, source-built compatibility layer that restores the bundled Codex Computer Use skill on macOS 13 Ventura without modifying system libraries, lowering Mach-O deployment targets, or redistributing OpenAI code.
Tested on macOS 13.7.8 arm64, Xcode 15.2 / Swift 5.9.2, Codex CLI
0.146.0, and bundled Computer Use plugin versions 1.0.1000387 and
1.0.1000451.
This project is not affiliated with or endorsed by OpenAI. It does not
contain OpenAI's proprietary Computer Use wrapper,@oai/sky, skills,
services, assets, or binaries. It interoperates with a legitimately installed
local plugin and builds its native backend from MIT-licensed source.
Why this is needed
Recent bundled Computer Use services declare macOS 14.4 as their minimum OS
and link APIs unavailable on Ventura. Changing LSMinimumSystemVersion or the
Mach-O load command is not sufficient because the binaries genuinely import
newer Foundation and Swift runtime symbols.
This project takes a different route:
Build an open Swift Accessibility/CoreGraphics backend targeting macOS 13.
Adapt its stdio MCP tools to the ten-method
skyobject expected by the existing Codex skill.Install a small clean-room loader in the local plugin cache. On macOS 14.4+ it delegates to the untouched saved OpenAI wrapper; on older systems it uses the open backend.
There is no patching of OpenAI native binaries and no TCC bypass.
flowchart LR
Skill["Bundled Computer Use skill"] --> Loader["Open clean-room loader"]
Loader -->|"macOS 14.4+"| Original["Saved local OpenAI wrapper"]
Loader -->|"macOS 13 / early 14"| Adapter["Sky-to-MCP adapter"]
Adapter --> Backend["MIT Swift macOS backend"]
Backend --> AX["Accessibility + CoreGraphics"]Related MCP server: computer-use
What we added
A Swift 5.9-safe capture result handoff for the open backend.
The complete bundled Sky-facing tool surface, including
select_text.Xdotool-style keypad names such as
KP_0.Screenshot-pixel to global-coordinate conversion with bounds checks.
App-path and bundle-ID resolution, app-scoped input, compact state diffs, permission prompting, bounded screenshot storage, and backend recovery.
A hash-gated installer that refuses unfamiliar proprietary wrapper versions.
A hash-gated local guidance patch that makes every
skycall restart-safe.An optional LaunchAgent that reapplies the loader when an update creates a fresh versioned plugin cache.
The backend source and history live in
Torrekie/open-codex-computer-use.
Requirements
Apple Silicon Mac running macOS 13 or newer.
Xcode 15.2 or another Swift 5.9 toolchain capable of targeting macOS 13.
A current Codex/ChatGPT installation that already includes the bundled Computer Use plugin and
node_replruntime.Node.js 20+. The installer can use ChatGPT/Codex's bundled Node runtime.
Accessibility and Screen Recording permission for the locally built helper.
Install
git clone https://github.com/Torrekie/codex-computer-use-ventura.git
cd codex-computer-use-ventura
./scripts/install.shThe default build is ad-hoc signed. It works, but rebuilding can change its TCC identity and require granting permissions again. If you have a stable local code-signing identity, use it:
CODESIGN_IDENTITY='Apple Development: Your Name (TEAMID)' ./scripts/install.shThe installer builds the pinned public backend commit, assembles a local app,
backs up recognized plugin wrappers and Computer Use guidance byte-for-byte,
installs the clean loader and restart guard, and enables the update watcher.
Set INSTALL_WATCHER=0 to skip the watcher.
After installation, restart Codex or reset node_repl. The first app-state
request may open Privacy & Security; enable Accessibility and Screen
Recording for Codex Computer Use for macOS 13, then retry.
Verify
sky is an in-memory node_repl binding. A CLI/app restart, js_reset, or
kernel recovery clears it. Begin every standalone Computer Use block with the
idempotent bootstrap guard. For the default installation, a minimal read-only
probe is:
if (!globalThis.sky) {
var { setupComputerUseRuntime } = await import(
`${nodeRepl.homeDir}/.codex/computer-use-macos13/computer-use-loader.mjs`
);
await setupComputerUseRuntime({ globals: globalThis });
}
var apps = await sky.list_apps();
nodeRepl.write(JSON.stringify({ target: sky.target, count: apps.length }));Then inspect Finder:
if (!globalThis.sky) {
var { setupComputerUseRuntime } = await import(
`${nodeRepl.homeDir}/.codex/computer-use-macos13/computer-use-loader.mjs`
);
await setupComputerUseRuntime({ globals: globalThis });
}
var state = await sky.get_app_state({ app: "Finder", disableDiff: true });
nodeRepl.write(JSON.stringify({
app: state.app,
textLength: state.text.length,
hasScreenshot: state.screenshot !== null,
}));Updates
The watcher runs the hash-gated patchers whenever the bundled plugin cache changes and periodically reconciles the cache in case an update event arrived before all files were ready. Known identical wrappers and guidance files are updated automatically. Unknown future revisions are left untouched and reported in:
~/.codex/computer-use-macos13/reapply.logDo not add an unknown hash without reviewing the new wrapper and skill API.
Restore or uninstall
Restore the original local wrappers and disable the watcher while keeping the backend:
./scripts/restore.shRestore and remove the installed compatibility files:
./scripts/uninstall.shNeither command modifies macOS TCC databases.
Development
Run the Node adapter, loader, installer, and syntax checks:
npm run checkBuild and test the Swift backend fork:
BACKEND_SOURCE=/path/to/open-codex-computer-use ./scripts/build-backend.shSee Architecture, Testing, and Troubleshooting for implementation details.
Security and licensing
Read SECURITY.md before enabling the backend on a sensitive machine. The bridge is MIT-licensed. The native backend retains its upstream MIT license and attribution; see Third-Party Notices.
OpenAI and Codex are trademarks of their respective owner.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceThe first open-source MCP server that enables AI to fully control remote macOS systems.8487MIT
- Alicense-qualityCmaintenanceStandalone MCP server that gives AI agents full GUI control over macOS — screenshots, mouse, keyboard, apps, clipboard, and multi-display — with zero private dependencies.16MIT
- Alicense-qualityBmaintenanceLocal MCP bridge enabling ChatGPT web to access approved local files and execute tasks via local Codex.1MIT
- Alicense-qualityDmaintenanceMCP server that enables AI to fully control macOS — mouse, keyboard, terminal, screenshots, window management, UI element detection, and provides AI-optimized information reporting.32MIT
Related MCP Connectors
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
A paid remote MCP for OpenAI Codex memory MCP, built to return verdicts, receipts, usage logs, and a
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Torrekie/codex-computer-use-ventura'
If you have feedback or need assistance with the MCP directory API, please join our Discord server