Use Contenox from AionUi
Prefer a dedicated desktop chat app over an editor panel? AionUi is a free, local, open-source GUI that drives any ACP-compatible agent. Contenox speaks the Agent Client Protocol over stdio, so it drops straight in as a custom agent — your chains, tools, and model config, in AionUi's chat UI.
Verified with AionUi 2.0.0.
This page assumes you already have contenox on PATH. If not, do the Quickstart first.
Setup
In AionUi, add a custom agent: Settings → Agents → add a Custom Agent, then fill the Detect Custom Agent form:
AionUi — Detect Custom Agent
- Display Name:
Contenox - Command:
contenox - Arguments:
acp
Hit Test Connection — you should see "Connection successful! CLI exists and ACP protocol is working." — then Save. Or paste the equivalent into Advanced (JSON):
{
"name": "Contenox",
"defaultCliPath": "contenox",
"enabled": true,
"acpArgs": ["acp"],
"env": {}
}
That's it — pick Contenox as the active agent and start a session.
What you get
Your chain, in a chat UI. Every prompt runs the contenox chain at ~/.contenox/default-acp-chain.json — the same agent behavior you'd get from the CLI or any other ACP client, in AionUi's conversation surface.
Tool steps with real context. When the chain runs a tool, AionUi's step view shows the actual operation — local_shell: ls -l, local_fs.read_file: README.md — not just a bare tool name.
Native filesystem. local_fs.read_file / local_fs.write_file route through AionUi's own filesystem capability.
Approvals in the UI. When the chain hits a tool in your active HITL policy, AionUi shows an Allow/Deny dialog instead of a terminal prompt.
Same everything else. Models, chains, and MCP servers come from your global contenox config — switch the model with contenox config set default-model …, register MCP once with contenox mcp add, and AionUi sessions pick it up.
AionUi layers its own chat UI and skill ecosystem on top; the agent itself — the chain, tools, and policy — is your contenox.
Choosing the chain
ACP sessions use a dedicated chain file separate from the CLI's default chain:
- Default location:
~/.contenox/default-acp-chain.json - Override with the
CONTENOX_ACP_CHAIN_PATHenvironment variable.
The default chain uses "tools": ["*"], exposing everything the engine has registered — local_fs, local_shell, webtools, plus any MCP servers you've added.
Choosing the model
ACP reads from your global model/provider config — the same one the CLI uses:
contenox config set default-model qwen2.5:7b
contenox config set default-provider ollama
Models are global; chains are local. Switching the model for ACP also switches it for contenox chat.
Troubleshooting
"Connection successful" but every prompt fails with "Agent disconnected". Update to the latest contenox — older builds rejected AionUi's launch flag on the session path. Current builds accept it; Test Connection and real sessions then behave the same.
Nothing happens when I select Contenox. Make sure contenox is on AionUi's PATH. AionUi inherits the environment of the process that launched it; starting it from a terminal (or using an absolute path in Command) is the reliable test.
The default-model error. Run contenox config set default-model <name> and contenox config set default-provider <type> before starting a session.
Limitations
- Assistant text is not streamed incrementally with tool-using chains — it appears at the end of each generation step.
- No interactive embedded terminal. AionUi advertises filesystem but not the ACP terminal capability, so
local_shellcommands run and report their output rather than opening a live terminal.
Where to next
- Author your first chain — the chain defines the agent's behavior, regardless of which client drives it.
- HITL policies — choose what requires approval.
- MCP — register servers once globally; ACP sessions pick them up.
- Use from Zed · Use from JetBrains — the same agent, other clients.