MCP wrapper for controlling Codex app-server threads, turns, plan mode, and steering.
Project description
Super Agents
Super Agents is a Python MCP server and library for controlling local Codex app-server sessions asynchronously.
It gives AI agents a compact tool surface for creating named Codex threads, starting turns, checking progress, steering active work, cancelling turns, answering app-server callbacks, and tracking lightweight local session state.
Super Agents is used by Openbase Coder, but it can also be run directly by any MCP client that needs to coordinate Codex app-server threads without blocking on long-running turns.
It also supports Claude Code for Super Agents UI-driver sessions. A small non-MCP command switches Openbase's default backend.
Install
The recommended install path is uv tool install, which installs the
super-agents-mcp command in an isolated tool environment:
uv tool install super-agents
Then register super-agents-mcp with your MCP client.
pipx also works:
pipx install super-agents
For library-only use inside an existing Python environment:
python -m pip install super-agents
Requirements
- Python 3.11+
- A running local
codex app-server - An MCP-compatible client such as Codex, Claude Desktop, or Openbase Coder
By default, Super Agents connects to Codex at ws://127.0.0.1:4500.
MCP Server
Run the MCP server with:
super-agents-mcp
For local development from a checkout:
uv sync --extra dev
uv run super-agents-mcp
Example MCP server command:
uvx --from super-agents super-agents-mcp
If you are running from a source checkout instead of an installed package:
uv --directory /path/to/super-agents run super-agents-mcp
Start Codex App Server
Super Agents talks to the Codex app-server over a websocket. Start Codex with a local websocket listener before using the MCP tools:
codex app-server --listen ws://127.0.0.1:4500
Openbase Coder users usually do not need to run this by hand; the
codex-app-server background service owns that process.
Backends
Super Agents supports three backend modes:
codex: native Codex app-server over websocket.openbase_cloud: Codex-compatible sessions through Openbase Cloud.claude_code: Claude Code sessions using local Claude auth/billing.
Switch modes without MCP:
super-agents-backend use codex
super-agents-backend use openbase-cloud
super-agents-backend use claude-code
super-agents-backend status
The aliases claude and claude-sdk also select claude_code. Restart the
process that owns Super Agents after switching. For codex and
openbase_cloud, restart codex-app-server; for Claude Code, restart the MCP
host running super-agents-mcp.
Claude Code Backend
The Claude Code backend uses the claude-agent-sdk package directly. It
does not run a local Anthropic Messages API adapter, does not expose
/v1/responses, does not require Codex app-server, and does not support
ANTHROPIC_API_KEY. Billing/auth comes from the local Claude setup on the
computer.
uv tool install 'super-agents[claude]'
super-agents-backend use claude-code
or, from a source checkout:
uv sync --extra dev --extra claude
uv run super-agents-backend use claude-code
Set OPENBASE_CODING_BACKEND=claude_code to make super-agents-mcp use
this backend. OPENBASE_CODEX_BACKEND is still read as a legacy fallback.
Follow-up turns preserve live SDK conversation context while the MCP process
remains running; persisted metadata and logs survive restarts.
If the SDK package is not installed, the backend reports ready=false with an
install hint.
Add To Codex
Install the package, then register the MCP server:
uv tool install super-agents
codex mcp add super-agents -- super-agents-mcp
If your Codex app-server is listening somewhere other than the default
ws://127.0.0.1:4500, pass SUPER_AGENTS_WS_URL when registering the server:
codex mcp add \
--env SUPER_AGENTS_WS_URL=ws://127.0.0.1:4500 \
super-agents -- super-agents-mcp
Check that Codex can see the server:
codex mcp list
codex mcp get super-agents
Add To Claude Code
Install the package, then register the MCP server:
uv tool install super-agents
claude mcp add --scope user super-agents -- super-agents-mcp
For a non-default Codex app-server websocket URL:
claude mcp add \
--scope user \
-e SUPER_AGENTS_WS_URL=ws://127.0.0.1:4500 \
super-agents -- super-agents-mcp
Check that Claude Code can see the server:
claude mcp list
claude mcp get super-agents
For project-local installs, use --scope project instead of --scope user.
Configuration
Super Agents is configured with environment variables and, when running under
Openbase, ~/.openbase/dispatcher-config.json.
| Variable | Default | Description |
|---|---|---|
SUPER_AGENTS_WS_URL |
ws://127.0.0.1:4500 |
Codex app-server websocket URL |
OPENBASE_CODING_BACKEND |
unset | Backend mode: codex, openbase_cloud, or claude_code |
OPENBASE_CODEX_BACKEND |
unset | Legacy fallback for OPENBASE_CODING_BACKEND |
SUPER_AGENTS_STATE_FILE |
~/.super-agents/state.json |
Local session metadata file |
Openbase-specific defaults:
| Config key | Description |
|---|---|
super_agents_reasoning_effort |
Default reasoning effort for Super Agents turns |
backend_models |
Model defaults keyed by backend and role |
SUPER_AGENTS_QUEUE_DIR |
next to the state file |
Super Agents does not silently approve app-server callbacks. If plan mode asks a
question or a sandboxed turn asks for approval, inspect the pending request and
answer it explicitly with codex_answer_request.
Tools
The MCP server exposes these tools:
codex_app_server_status: check app-server readiness, websocket connection, pending callbacks, and active turns.super_agents_start: create a named Codex app-server thread.super_agents_resume: resume a named thread.super_agents_read: read a named or id-addressed thread.super_agents_rename: rename a Codex app-server thread.codex_answer_request: answer a pending app-server callback.super_agents_sessions: list named Codex app-server threads.super_agents_thread_favorite: check whether one local Openbase Coder thread is favorited.super_agents_active: list active tracked agents with compact previews.super_agents_status: return a compact status list for voice/status checks.super_agents_resolve: resolve a name to the latest matching active thread.super_agents_progress: inspect progress by name, thread id, or turn id.super_agents_steer: send steering input to an active turn.super_agents_cancel: cancel an active turn.super_agents_start_turn: submit follow-up input through app-serverturn/start.super_agents_queue_turn: queue a follow-up prompt to run after the active turn completes.super_agents_recent: list recent named Codex app-server threads.
List-style tools accept favorite=true or favorite=false to filter by
Openbase Coder's local per-machine favorite metadata.
Default responses are intentionally compact. Full turns, tracked event transcripts, diffs, and large previews are opt-in through each tool's detail flags.
Python API
Openbase Coder and other Python applications can use the app-server client directly:
from super_agents.app_server_client import CodexAppServerClient
client = CodexAppServerClient()
try:
status = await client.status()
finally:
await client.close()
The public modules are organized so applications can reuse the websocket client, session metadata helpers, routine state, and queue handling without starting the stdio MCP server.
Development
From this repository:
uv sync --extra dev
uv run pytest
uv run ruff check .
uv build
License
Super Agents is licensed under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file super_agents-0.1.2.tar.gz.
File metadata
- Download URL: super_agents-0.1.2.tar.gz
- Upload date:
- Size: 462.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c38570b1b2003a5779ed3c49c1787e6f7ed4e61b6313edc700af224109196e87
|
|
| MD5 |
dec2df33ec65515d4c7cd28a1bb28533
|
|
| BLAKE2b-256 |
180f7ded4c32322a9d6503899137de52fecf023fb181ea9cf520643ab5537826
|
File details
Details for the file super_agents-0.1.2-py3-none-any.whl.
File metadata
- Download URL: super_agents-0.1.2-py3-none-any.whl
- Upload date:
- Size: 76.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ffb6924e32033bec781e5c774b666f778c35ad16dd92cb0474aa59ce3914c1b
|
|
| MD5 |
ef886371dae3c59971ac14b9af6da2d5
|
|
| BLAKE2b-256 |
c3dacaa028c74d3b611b0d176c0cc1adebf3aa91750b7e74fd39b0acf355ce12
|