Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
For the overview, operator runbook, and concepts, see ACP agents.
The sections below cover acpx harness config, plugin setup for the MCP bridges, and permission configuration.
Use this page only when you are setting up the ACP/acpx route. For native Codex app-server runtime config, use Codex harness. For OpenAI API keys or Codex OAuth model-provider config, use OpenAI.
Codex has two OpenClaw routes:
| Route | Config/command | Setup page |
|---|---|---|
| Native Codex app-server | text /codex ...text agentRuntime.id: "codex" | Codex harness |
| Explicit Codex ACP adapter | text /acp spawn codextext runtime: "acp", agentId: "codex" | This page |
Prefer the native route unless you explicitly need ACP/acpx behavior.
Current acpx built-in harness aliases:
claudecodexcopilotcursorcursor-agent acpdroidgeminiiflowkilocodekimikiroopenclawopencodepiqwenWhen OpenClaw uses the acpx backend, prefer these values for
agentIdagent acpcursorDirect acpx CLI usage can also target arbitrary adapters via
--agent <command>agentIdModel control is adapter-capability dependent. Codex ACP model refs are normalized by OpenClaw before startup. Other harnesses need ACP
modelssession/set_modelCore ACP baseline:
json5{ acp: { enabled: true, // Optional. Default is true; set false to pause ACP dispatch while keeping /acp controls. dispatch: { enabled: true }, backend: "acpx", defaultAgent: "codex", allowedAgents: [ "claude", "codex", "copilot", "cursor", "droid", "gemini", "iflow", "kilocode", "kimi", "kiro", "openclaw", "opencode", "pi", "qwen", ], maxConcurrentSessions: 8, stream: { coalesceIdleMs: 300, maxChunkChars: 1200, }, runtime: { ttlMinutes: 120, }, }, }
Thread binding config is channel-adapter specific. Example for Discord:
json5{ session: { threadBindings: { enabled: true, idleHours: 24, maxAgeHours: 0, }, }, channels: { discord: { threadBindings: { enabled: true, spawnAcpSessions: true, }, }, }, }
If thread-bound ACP spawn does not work, verify the adapter feature flag first:
channels.discord.threadBindings.spawnAcpSessions=trueCurrent-conversation binds do not require child-thread creation. They require an active conversation context and a channel adapter that exposes ACP conversation bindings.
Fresh installs ship the bundled
acpxStart with:
text/acp doctor
If you disabled
acpxplugins.allowplugins.denybashopenclaw plugins install acpx openclaw config set plugins.entries.acpx.enabled true
Local workspace install during development:
bashopenclaw plugins install ./path/to/local/acpx-plugin
Then verify backend health:
text/acp doctor
By default, the bundled
acpx/acp doctorOPENCLAW_ACPX_RUNTIME_STARTUP_PROBE=1Override the command or version in plugin config:
json{ "plugins": { "entries": { "acpx": { "enabled": true, "config": { "command": "../acpx/dist/cli.js", "expectedVersion": "any" } } } } }
commandexpectedVersion: "any"commandSee Plugins.
When you install OpenClaw globally with
npm install -g openclawopenclaw acp doctorBy default, ACPX sessions do not expose OpenClaw plugin-registered tools to the ACP harness.
If you want ACP agents such as Codex or Claude Code to call installed OpenClaw plugin tools such as memory recall/store, enable the dedicated bridge:
bashopenclaw config set plugins.entries.acpx.config.pluginToolsMcpBridge true
What this does:
openclaw-plugin-toolsSecurity and trust notes:
Custom
mcpServersBy default, ACPX sessions also do not expose built-in OpenClaw tools through MCP. Enable the separate core-tools bridge when an ACP agent needs selected built-in tools such as
cronbashopenclaw config set plugins.entries.acpx.config.openClawToolsMcpBridge true
What this does:
openclaw-toolscronThe bundled
acpxbashopenclaw config set plugins.entries.acpx.config.timeoutSeconds 180
Restart the gateway after changing this value.
When
/acp doctoracpxacp.allowedAgentscodexbashopenclaw config set plugins.entries.acpx.config.probeAgent claude
Restart the gateway after changing this value.
ACP sessions run non-interactively — there is no TTY to approve or deny file-write and shell-exec permission prompts. The acpx plugin provides two config keys that control how permissions are handled:
These ACPX harness permissions are separate from OpenClaw exec approvals and separate from CLI-backend vendor bypass flags such as Claude CLI
--permission-mode bypassPermissionsapprove-allpermissionModeControls which operations the harness agent can perform without prompting.
| Value | Behavior |
|---|---|
text approve-all | Auto-approve all file writes and shell commands. |
text approve-reads | Auto-approve reads only; writes and exec require prompts. |
text deny-all | Deny all permission prompts. |
nonInteractivePermissionsControls what happens when a permission prompt would be shown but no interactive TTY is available (which is always the case for ACP sessions).
| Value | Behavior |
|---|---|
text fail | Abort the session with text AcpRuntimeError |
text deny | Silently deny the permission and continue (graceful degradation). |
Set via plugin config:
bashopenclaw config set plugins.entries.acpx.config.permissionMode approve-all openclaw config set plugins.entries.acpx.config.nonInteractivePermissions fail
Restart the gateway after changing these values.
If you need to restrict permissions, set
nonInteractivePermissionsdeny© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine