acodex
Local MCP automation for the Codex desktop app.
acodex gives scripts, tools, and agents a local bridge into a running Codex
desktop session. It can relaunch Codex with a Chrome DevTools Protocol (CDP)
port, run a managed HTTP/MCP server, and call the live codex_app.* tools that
your Codex desktop build exposes.
Quick Start | CLI | Support | Contributing
Why acodex
- Live Codex desktop access. Inspect and call the tools exposed by the running desktop renderer without writing CDP plumbing.
- MCP-compatible local server. Expose Codex desktop tools at
/mcpfor local automation clients. - Practical CLI workflow. Check configuration, relaunch Codex with CDP, manage the bridge server, and call tools from a terminal.
Quick Start
Prerequisites:
- Python 3.10 or newer.
uv; see the official install guide.- macOS with Codex.app installed. The relaunch flow expects
/Applications/Codex.appby default; setACODEX_CODEX_APP_PATHif yours is elsewhere.
Install the CLI:
uv tool install acodex
Initialize config, launch Codex with CDP, and start the local bridge:
acodex config init
acodex codex relaunch --yes
acodex server start
acodex codex relaunch --yes starts or restarts Codex so acodex can reach the
default CDP endpoint, http://127.0.0.1:45217.
For deeper diagnostics after the server is running, use acodex doctor --deep.
List and call Codex desktop tools:
acodex tools list
acodex tools call codex_app.list_threads --limit 1
Stop the managed bridge when you are done:
acodex server stop
CLI
Common commands:
acodex config path
acodex config show
acodex doctor --deep
acodex codex status
acodex codex relaunch --yes
acodex server start
acodex server status
acodex server logs --tail 50
acodex tools list --json
acodex tools call codex_app.list_threads --help
Tool calls use the MCP schema property names. Pass simple top-level arguments as flags, or use JSON for nested input:
acodex tools call codex_app.list_threads --limit=5
acodex tools call --args-json '{"limit":5}' codex_app.list_threads
acodex tools call --output json codex_app.list_threads --limit 5
Configuration
acodex reads JSON config from ~/.acodex/config.json by default. Set
ACODEX_CONFIG to use a different file. Use acodex config path and
acodex config show to inspect the active path and effective values.
Essential local endpoints:
- Codex CDP:
http://127.0.0.1:45217 - Managed server health:
http://127.0.0.1:45218/healthz - MCP endpoint:
http://127.0.0.1:45218/mcp
Configuration precedence and the full defaults matrix live in CONTRIBUTING.md.
State-changing tool calls mutate the live Codex desktop app. Use
acodex tools call <tool> --help before calling unfamiliar tools.
Support
When setup fails, start with the built-in diagnostics and managed server logs:
acodex doctor
acodex server logs --tail 50
If the issue continues, open a GitHub issue with what you tried, what happened, your OS and Python version, your acodex source branch or commit, your Codex desktop/CDP setup, and relevant command output with secrets removed.
Contributing
Contributor setup, architecture notes, quality gates, and documentation rules live in CONTRIBUTING.md. Agent-specific guidance lives in AGENTS.md.
License
acodex is released under the MIT License.
acodex is independently maintained and is not affiliated with, sponsored by, or endorsed by OpenAI.
Metadata
Release files for acodex 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| acodex-1.0.1.tar.gz | 230.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acodex-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 301.9 kB
Release files / acodex-1.0.1.tar.gz
| Download URL | acodex-1.0.1.tar.gz |
|---|---|
| Size | 230.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
89dbf80903660fe9e08edbe957b99ab716b0709ddd35c3b546ac411655783a4f
|
|
BLAKE2b-256 checksum How to use checksums |
f6972600298dd7915ce394872d9ab604dab77bd8430ce273b2273de4e2cace67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / acodex-1.0.1-py3-none-any.whl
| Download URL | acodex-1.0.1-py3-none-any.whl |
|---|---|
| Size | 71.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5342abb7678aae296726af5f5e80afff0ed8975f4e3fbf74b51d4a9cf4d307eb
|
|
BLAKE2b-256 checksum How to use checksums |
769c1057a91ef67378c8d060ac37e00d17ad3f5ce6630005dbb8575c632ee664
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|