microsoft/add-acp-agent-support
Add first-class support for an ACP-compatible agent CLI to Intelligent Terminal. Use when integrating a new built-in AI agent, ACP server command, authentication flow, model selection, interactive delegation, session hooks, onboarding, Settings, branding, GPO policy, documentation, tests, build, deployment, or live ACP and hook log verification.
npx skills add https://github.com/microsoft/intelligent-terminal --skill add-acp-agent-support
Integrate a new built-in agent across WTA, Terminal UI, settings, policy,
telemetry, documentation, and validation without leaving agent-specific
behavior inconsistent between layers.
support for an existing agent.
hook runtime behavior for a built-in agent.
main or master.tools/wta/AGENTS.md and the Rust instruction files for WTA changes.
version for live verification.
has a maintained ACP adapter. A normal interactive TUI is not an ACP server.
Track the work with a TODO list because the Rust and C++ registries, UI,
policy, tests, and live verification must stay synchronized.
integration-map.md: executable, ACP
command, native-vs-adapter ownership, auth, model selection, interactive
delegate syntax, session resume, installation, and official branding.
stdio initialization, session creation, model discovery, prompt streaming,
cancellation, and shutdown. Record the tested CLI/adapter version.
built-in agent ID and follow the current patterns. Do not rely on old line
numbers or assume the Rust registry is the only source of truth.
ACP launch command, auth flow, model behavior, install guidance, and
resume metadata. Wire the canonical ID through the session subsystem when
session listing or resume is supported. Add delegate support only when the
agent has a true interactive initial-prompt invocation.
resolution, settings/model probing, telemetry sanitization, branding, and
policy-facing lists consistent. Use the detailed file map in
integration-map.md.
verify the CLI's official hook/plugin API, map lifecycle events to WTA,
suppress hook emission from the ACP process to avoid duplicate sessions,
and wire safe install/status/uninstall/upgrade behavior through onboarding
and Settings. If the CLI has no suitable hook API, document session tracking
as unsupported instead of inferring it from ACP support.
identification, session source round-trips and resume dispatch, auth command
generation, hook lifecycle and ownership behavior when implemented, and
every delegate shell path that applies: direct Windows, PowerShell 7,
Windows PowerShell 5.1, and WSL.
installation/auth requirements, limitations, delegate behavior, and the
AllowedAgents identifier. Do not advertise hooks or history integration
unless they were implemented and tested.
validation.md, including the WTA test suite,
explicit-target WTA build, Terminal build, package deployment, live ACP
prompt, auth path, model selection, hook-backed session tracking when
supported, delegate behavior, GPO filtering, and log inspection.
10. Prepare the PR. Keep the diff scoped, cite the tested agent version and
ACP command, describe native-vs-adapter and hook support, list unsupported
features, and link the tracking issue with a closing keyword when
appropriate.
| Capability | Required decision |
|------------|-------------------|
| ACP launch | Prefer the CLI's native stdio mode. Use a maintained adapter only when native ACP is unavailable; pin the adapter when unbounded updates could break startup. |
| Authentication | Use InProtocol only when ACP advertises and completes authentication. Use External when a separate CLI/provider login is required, then verify the running ACP process can refresh credentials. |
| Models | Distinguish flags accepted by the ACP server process from flags accepted by the interactive delegate CLI. Prefer ACP model APIs when the server supports them. |
| Delegation | Use an interactive TUI invocation with an initial prompt. If the only interface is one-shot, omit first-class delegate support or explicitly ask the user to accept an auto-closing tab. |
| Resume | Configure resume/new-session metadata only after proving the exact CLI syntax and identifier semantics. Also add the agent to the session source type and every conversion boundary; profile metadata alone does not make a session resumable. |
| Hooks/history | Treat these as separate integrations. ACP compatibility alone does not imply shell hooks or historical session support. Use only the CLI's documented hook/plugin API, define ownership-safe install semantics, and suppress duplicate tracking from ACP-mode processes. |
The agent pane requires a long-running JSON-RPC/ACP stdio process.
exists.** A successful one-shot process exits and Terminal closes its tab.
flags, and prompt arguments may require a specific order.
through different escaping in direct Windows, pwsh, Windows PowerShell, and
WSL launches.
C++ discoverability/GPO arrays together, including compile-time array sizes.
AgentProfile for session support. Add the canonical agentto CliSource, parsing/filtering, wire conversions, labels, resume command
synthesis, and ACP/WSL session discovery where supported. Otherwise
session/list rows can appear as Unknown("custom") and Enter fails with
"source agent is unknown to this build" even though the agent profile has a
valid resume flag.
already tracked by the helper/master path; hook emission there creates
duplicate session rows. Gate the plugin using a reliable ACP-mode signal and
verify normal interactive sessions still emit.
manifest, commit ownership metadata last, preserve it until uninstall
cleanup succeeds, and make partial installs repairable.
update install, status, uninstall, startup auto-upgrade, onboarding, Settings,
packaged bundle contents, tests, documentation, and diagnostics together.
the ACP server can prevent startup even when delegation works.
ID to the allowlist; continue bucketing custom commands and paths as
custom.
to light, dark, and high-contrast themes; do not silently reuse another
agent's logo.
target/x86_64-pc-windows-msvc/.../wta.exe; a stale binary there can shadow
a fresh host-target build.
AllowedAgents isgeneric, but its ADML identifier list and built-in count can drift.
Take microsoft/add-acp-agent-support from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.