ACP (Agent Client Protocol) agents are now fully integrated into the CODING tab as first-class engines, matching the mpp-ui implementation.
- Open the Xiuper Agents tool window (right sidebar)
- Click the Agentic tab (formerly "CODING")
- Look at the model selector dropdown in the bottom toolbar (left side, next to + and refresh buttons)
When you first open the plugin:
- The model dropdown shows your configured LLM models (e.g., "glm")
- At the bottom, you'll see:
--- ACP Agents ---(separator)Configure ACP...(click this)
Click "Configure ACP..." to open the ACP Configuration Dialog:
Option 1: Add from Presets (Recommended)
- Click the + Preset button
- Select from auto-detected agents:
- Codex CLI (
codex --acp) - Kimi CLI (
kimi acp) - Gemini CLI (
gemini --acp) - Claude Code (
claude --acp) - GitHub Copilot (
github-copilot --acp)
- Codex CLI (
- Agent is automatically added and selected
Option 2: Add Custom Agent
- Click Add button
- Fill in the form:
- Display Name: Human-readable name (e.g., "My Custom Agent")
- Command: Executable path (e.g.,
codexor/usr/local/bin/codex) - Arguments: Space-separated args (e.g.,
--acp --verbose) - Env Vars: Environment variables, one per line (
KEY=VALUE)
- Click Apply Changes
Once configured:
- Select Agent: Open the model dropdown
- Your LLM configs appear first
- Below the separator:
ACP: Codex CLI,ACP: Kimi CLI, etc.
- Switch Engine: Click an ACP agent
- Model selector updates to show agent name
- Agent auto-connects on first message
- Send Messages: Type in the input area and click Send
- Messages route to the ACP agent
- Responses stream to the shared timeline (same UI as AutoDev)
- Switch Back: Select any LLM config from the dropdown to switch back to AutoDev engine
- Unified Timeline: ACP output renders alongside AutoDev output
- Auto-Connect: Agent connects automatically when you send the first message
- Process Reuse: Agent process is reused across multiple prompts (no restart overhead)
- Multi-Turn: Full conversation context is maintained within a session
- New Chat: Click the New Chat button to disconnect and start fresh
- Cancel: Stop button works with ACP agents
- Plan Display: ACP plan updates appear in the same plan UI
- Tool Calls: Tool execution results render inline
- File Operations: ACP agents can read/write files (auto-approved for MVP)
- Terminal: ACP agents can run shell commands (auto-approved for MVP)
- MCP Tools: Configured MCP servers are passed to ACP agents
IdeaAgentViewModel
├── currentEngine: IdeaEngine (AUTODEV | ACP)
├── acpViewModel: IdeaAcpAgentViewModel (shares renderer)
└── sendMessage() → routes to acpViewModel when engine=ACP
SwingBottomToolbar (Model Selector)
├── LLM Configs (AutoDev)
├── --- ACP Agents ---
├── ACP: Codex CLI
├── ACP: Kimi CLI
└── Configure ACP...
IdeaAgentViewModel.init()→loadAcpAgents()→ loads from~/.autodev/config.yamlacpAgentsStateFlow updatesIdeaAgentAppcollects viaIdeaLaunchedEffect- Passes
acpAgentstoIdeaDevInInputArea SwingDevInInputArea.setAcpAgents()→SwingBottomToolbar.setAcpAgents()- ComboBox rebuilds with ACP entries
Location: ~/.autodev/config.yaml
acpAgents:
codex:
name: "Codex CLI"
command: "codex"
args: "--acp"
env: ""
kimi:
name: "Kimi CLI"
command: "kimi"
args: "acp --work-dir /path/to/project"
env: "KIMI_API_KEY=xxx"
activeAcpAgent: codexEnable debug logging by checking:
- IDEA logs (
~/.autodev/logs/autodev-app.logor Help > Show Log) - Console output:
IdeaAgentApp: acpAgents changed, size=NSwingDevInInputArea.setAcpAgents called with N agentsSwingBottomToolbar.setAcpAgents: received N agents
If "Configure ACP..." doesn't appear:
- Check that
availableConfigsis not empty (need at least one LLM config) - Restart plugin or reload window
- Check logs for exceptions during
loadAcpAgents()
| Feature | mpp-ui (Compose) | mpp-idea (Swing+Jewel) |
|---|---|---|
| Engine Selection | Dropdown in DevInEditorInput |
Dropdown in SwingBottomToolbar |
| Config Dialog | AcpAgentConfigDialog (Material3) |
IdeaAcpConfigDialogWrapper (DialogWrapper) |
| Preset Detection | AcpAgentPresets.kt (commonMain) |
IdeaAcpAgentPreset (idea-only) |
| State Management | CodingAgentViewModel |
IdeaAgentViewModel + IdeaAcpAgentViewModel |
| Renderer | AcpRenderer (extends BaseRenderer) |
JewelRenderer (shared) |
- MVP: Auto-Approve Permissions: All permission requests (file read/write, shell) are auto-approved. Future: show confirmation dialog.
- No Session History: ACP sessions don't persist to chat history (yet).
- No Resume: Can't resume a disconnected ACP session (must start fresh).
- Session history integration
- Permission confirmation UI
- Session resume after disconnect
- Agent health monitoring UI
- Per-agent connection status in dropdown
- Agent-specific settings (temperature, max tokens, etc.)