Repository navigation
Releases
v0.7.1
Added
- A deprecated fallback for ChatGPT accounts without the unified Computer Use runtime. OpenAI turns that runtime on per account; where it is off, ChatGPT still uses the ten typed tools, and so does this adapter now instead of failing. The route is chosen when Pi loads the extension or the MCP server starts.
/computer-use-statusreports"route". The fallback is likely to be removed once the unified runtime reaches every account. (#47)
Validation
All 134 tests, lint, core and Pi type checks, and the build pass, including live calls on both routes. Real openai-codex/gpt-6.1-sol runs through Pi using the packed and installed tarball: cua_repl computed 13 × 3 = 39 in Calculator, and the fallback's computer_use_* codemode tools computed 13 × 5 = 65.
pi install npm:codex-computer-use-mcpv0.7.0
Changed (breaking)
- Computer Use now runs through ChatGPT's current runtime,
cua_repl: the JavaScript tool ChatGPT's own threads use. Pi registerscua_replandcua_repl_reset; MCP exposesjsandjs_reset. Both use the descriptions and parameters ChatGPT gives its own model. (#45) - The ten
computer_use_*codemode tools are removed. Use thecuaAPI insidecua_repl, for examplelet app = await cua.getApp("Calculator"); await app.click(7);. - Bindings such as
applast across calls and agent turns. Each turn ends with ChatGPT's officialturn_endedcall. - The
computerUseAppPathsetting is replaced bycuaReplConfigPath.
Added
- Browser control: agents can list Chrome tabs and open, read, act in and close tabs through ChatGPT's Chrome extension. This works without ChatGPT's per-turn browser permission.
Requirements
ChatGPT writes the runtime settings this release needs only when OpenAI has turned on its unified Computer Use runtime for the account. To check, run ls ~/.codex/plugins/cache/openai-bundled/unified-computer-use/; it should list a version folder. If it doesn't, the error says so; until it does, use 0.6.5: pi install npm:codex-computer-use-mcp@0.6.5. (#46)
Validation
All 71 tests, lint, core and Pi type checks, and the build pass, including live tests against ChatGPT for Work 26.1029.61003. Real openai-codex/gpt-6.1-sol runs through Pi:
- Opened a Finder folder and computed 17 × 23 + 9 in Calculator, then reused the binding on the next turn.
- Opened, read and closed a Chrome tab.
- Computed 12 × 12 through the packed and installed 0.7.0 tarball.
pi install npm:codex-computer-use-mcpv0.6.5
Fixed
/reloadnow loads an updated version. The Pi extension used to import its code fromdist/, which Pi keeps cached until it restarts, so afterpi updateorvibes updateagents kept running the old release. The extension now loads fromsrc/, which Pi reloads. Updating from 0.6.4 or earlier to this release also works with/reload. (Nexcade/vibes#992)
Validation
All 72 tests, lint, core and Pi type checks, and the build pass. A new test updates an installed copy, reloads Pi over RPC, and checks that the new code runs. I also upgraded a running Pi from the published 0.6.4 to this build with a reload, and ran a live openai-codex/gpt-6.1-sol Computer Use call through the installed package.
pi install npm:codex-computer-use-mcp@0.6.5v0.6.4
Fixed
- Computer Use failures now name the cause and a recovery step, so agents can recover or tell the user instead of giving up:
- A stuck Computer Use service (official
bootstrapTimedOut, or a tool-call timeout) gets a step to restart it withpkill -f MacOS/SkyComputerUseService. It relaunches on the next call, with or without ChatGPT running. The official text is kept. - A
codesigncheck that does not finish is now reported as unfinished, not as a bad signature, and the limit rises from 10 to 30 seconds. Real signature failures includecodesign's reason. - When the app-server exits early, the error shows the last lines it printed, which were previously discarded.
- Version-drift failures, and files missing inside an installed ChatGPT, name both versions and say to update ChatGPT and this package, then restart the client.
- A stuck Computer Use service (official
- The README has a new Failures section.
Validation
All 71 tests, lint, core and Pi type checks, and the build pass. In a live run with the Computer Use service frozen, openai-codex/gpt-6.1-sol received the recovery step, restarted the service itself, retried and completed the task.
pi install npm:codex-computer-use-mcp@0.6.4v0.6.3
Fixed
- Find ChatGPT and its Computer Use component in
~/Applicationsas well as/Applications. Missing-component errors now list the paths checked, say what to install, and name the config file and setting for a custom location or a stale override. Signature and Team ID verification are unchanged. - Accept a number as well as a string for
element_indexinclick,perform_secondary_action,set_value,select_textandscroll. Numbers are converted to strings before reaching the broker.
Validation
All 65 tests, lint, core and Pi type checks, and the build pass, including a live call through the signed official broker.
pi install npm:codex-computer-use-mcp@0.6.3v0.6.2
Fixed
- Pass the verified Codex executable path to the nested Computer Use server. This fixes startup failures when the signed client cannot find Codex, including installations that use configured paths. Status now reports the verified path.
- Build git dependencies and source installs with npm's
preparehook, so they include the compiled files needed to start. Registry installs still use the prebuilt package.
Maintenance
- Simplify broker setup and status types, remove redundant tests, and add a regression test that installs and starts the package from git.
Validation
All 62 tests, lint, core and Pi type checks, and the build pass. Tests include a live call through the signed official broker and installation from both a tarball and git.
pi install npm:codex-computer-use-mcp@0.6.2v0.6.1: clear the cursor when a session closes
Version 0.6.1 clears the Computer Use cursor when a session closes.
Fixed
- Before this release, the Computer Use software cursor could stay on screen after a session ended, including after cancellation, a timeout or a tool error. Closing a session now tells the shared Computer Use service that the session has ended, so it removes that session's cursor. The service keeps running. @geoqiao contributed this fix in #30, and @BUKOWSKIREAL reviewed it. Thank you both.
- The cursor cleanup is best effort. If it fails or stalls, a click or typing action that already happened still returns its result, so an agent won't repeat it. Model-turn activity, malformed protocol output and cancellation still fail the call.
pi install npm:codex-computer-use-mcp@0.6.1Validation
Strict Oxlint, core and Pi type checks, and 62 tests pass, including a live call through the signed official broker. A live check on Computer Use build 1001394 confirmed the fix: after a TextEdit session closed, the cursor window stayed on screen with 0.6.0 and was gone with 0.6.1.
v0.6.0: Computer Use in Pi's codemode
Version 0.6.0 lets Pi agents use Computer Use from Pi's built-in codemode tool. The MCP interface keeps its existing 10 typed methods.
Computer Use in Pi's codemode
- registers the 10 official methods as Pi tools named
computer_use_<method>, such ascomputer_use_get_app_stateandcomputer_use_click - gives them
codemodeexposure in acomputer_usenamespace, so agents combine Computer Use calls with other Pi and MCP tools in one script computer_use_get_app_stateresolves to{ app, text, screenshot }, andimage(state.screenshot)shows the screenshot- a failed call rejects with the official error text
- calls after
get_app_statereuse one signed Computer Use session until the agent settles
const state = await tools.computer_use_get_app_state({ app: "TextEdit" });
text(state.text);
await tools.computer_use_click({ app: "TextEdit", element_index: "7" });
await tools.computer_use_type_text({ app: "TextEdit", text: "hello" });The extension does not change which tools are active. Turn on codemode with "defaultTools": ["+codemode"] in settings.json or pi --tools +codemode. If neither codemode nor a Computer Use tool is active, the extension shows one notice at the first prompt.
Dependencies
- updates the MCP SDK to 1.32.1, which clears the npm audit warning for GHSA-6qxp-vccf-f47h (#33, thanks @BUKOWSKIREAL)
Upgrade notes
This is a breaking change for Pi:
- The
computer_use({ code })tool and itsskyobject are removed. Call the methods fromcodemodeinstead. - Pi 0.99.0 or newer is required.
- An explicit
--toolslist must include the tools you want. Use--tools +codemodeto addcodemodeto the defaults.
The MCP interface is unchanged.
pi install npm:codex-computer-use-mcp@0.6.0Validation
Strict Oxlint, core and Pi type checks, and 54 tests pass, including a packed-package install and a live call through the signed official broker. A live Pi run used openai-codex/gpt-6.1-sol with Pi's built-in codemode. The model's scripts combined Computer Use calls with read to edit and save a TextEdit file, and the file on disk was checked afterwards. A live MCP stdio list_apps call passed on SDK 1.32.1. A fresh npm install reports no production vulnerabilities.
v0.5.2: accept config files from earlier versions
Version 0.5.2 fixes an upgrade failure in 0.5.1.
Versions before 0.5 wrote {"version": 1, "permissionMode": ...} to config.json in the state directory, the same file 0.5.1 reads for codexPath and computerUseAppPath. 0.5.1 rejected the unknown keys, so an upgraded install failed every Computer Use call with a config error. 0.5.2 ignores other keys and still checks that the two path keys are strings.
pi install npm:codex-computer-use-mcp@0.5.2v0.5.1: Codex path after ChatGPT 26.924
Version 0.5.1 fixes Computer Use after the ChatGPT 26.924 update, and makes the ChatGPT component paths configurable.
Fix
ChatGPT 26.924 moved the Codex app-server from Contents/Resources/codex to Contents/Resources/codex-cli/CodexCLI.app/Contents/MacOS/codex. Version 0.5.0 looked only at the old path, so every call failed with "Signature verification failed for codex". This release uses the new location and falls back to the old one on earlier ChatGPT builds.
Configurable paths
If ChatGPT is installed elsewhere or moves these files again, set either path in config.json in the state directory:
{
"codexPath": "/Applications/ChatGPT.app/Contents/Resources/codex-cli/CodexCLI.app/Contents/MacOS/codex",
"computerUseAppPath": "/Users/me/.codex/computer-use/Codex Computer Use.app"
}- The adapter reads the file each time a Computer Use session starts, so changes apply without restarting Pi or the MCP server.
- Configured binaries must pass the same OpenAI signature and Team ID checks as the defaults.
Clearer errors
- A missing component is now reported as "not found". The message lists the paths checked and the config file to edit. "Signature verification failed" now appears only when a signature check actually fails.
/computer-use-statusandcodex-computer-use-mcp --statusshow the config path and the current error.
Upgrade
pi install npm:codex-computer-use-mcp@0.5.1npx codex-computer-use-mcp@0.5.1Validation
- Strict Oxlint, core and Pi type checks, and 59 tests pass, including the live signed-broker test on ChatGPT 26.924.22138. That test fails on 0.5.0.
- In a Pi end-to-end run, the model used
computer_usewith the default paths. - Given a stale
codexPath, the model read the error, found the correct binary, updatedconfig.jsonand succeeded on its next call without restarting Pi.
Upgrade to v0.5.2: 0.5.1 rejects
config.jsonfiles written by versions before 0.5.