You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Command surface: catalog of public command identity, interface exposure, adapter policy, and shared command metadata across CLI, Node.js, MCP, ACP, and batch entrypoints.
46
+
- MCP/ACP adapters: MCP is the structured-tool projection of the command surface; ACP is the deterministic prompt-line projection for ACP clients. Both reuse command metadata and `AgentDeviceClient` execution, and neither owns daemon route policy.
46
47
- Daemon command registry: daemon-side source of truth for command route ownership and request-policy traits, including admission exemptions, session locking, selector validation, replay-scoped actions, recording invalidation, Android dialog guards, and request provider device resolution.
47
48
- Runner command traits: per-command-type classification for iOS/macOS runner lifecycle behavior, distinct from the public command surface and daemon command registry. The Swift runner traits classify interaction, read-only, and runner-lifecycle axes for XCTest execution; Swift resolves the alert command as read-only only for its `get` action. The TypeScript runner command traits classify daemon-side runner send/recovery policy such as read-only retry routing, readiness probes, and recent-healthy-mutation preflight skips; the TypeScript table is command-type keyed and currently classifies alert as read-only for daemon retry policy. Each side keeps one source of truth keyed by runner command type.
48
49
- Coordinate-first resolved element activation: iOS/macOS runner interaction pattern where a selector or text query resolves the semantic `XCUIElement`, then activation uses the element's resolved center coordinate when a frame is available. This keeps target selection semantic while avoiding `XCUIElement.tap()` post-action element re-resolution after normal navigation. tvOS remains focus/remote-driven.
@@ -69,8 +70,8 @@ The perfect-shape refactor is complete and merged. Its end-state:
69
70
70
71
- Two derivation registries. One `CommandDescriptor` per command
71
72
(`src/core/command-descriptor/registry.ts`) is the single declaration site from which the public
Copy file name to clipboardExpand all lines: src/utils/cli-command-overrides.ts
+3-2Lines changed: 3 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -11,8 +11,9 @@ type SchemaOnlyCliCommandName = Exclude<LocalCliCommandName, CommandName>;
11
11
12
12
constSCHEMA_ONLY_CLI_COMMAND_SCHEMAS={
13
13
acp: {
14
-
helpDescription:
15
-
'Start the stdio ACP (Agent Client Protocol) agent. Prompts are interpreted as agent-device command lines, one per line, executed through the agent-device client.',
14
+
helpDescription: `Start the stdio ACP (Agent Client Protocol) agent.
15
+
16
+
ACP is a deterministic agent interface for ACP-capable editors and agent clients. It does not add LLM behavior: each text prompt line is parsed as one agent-device command line, with optional ACP slash-command syntax such as /devices or /snapshot -i. Commands execute through the same command contracts and AgentDeviceClient path as CLI/MCP commands, while stdout remains newline-delimited JSON-RPC only.`,
`agent-device` is built for AI agents, but humans usually install it, grant device permissions, and decide which agent client should use it.
9
9
10
-
Use this page to wire Cursor, Codex, Claude Code, Windsurf, Cline, Goose, or another coding agent into mobile, TV, desktop, and web app verification. It covers skills, project rules, and MCP setup for React Native QA, Expo app verification, iOS Simulator automation, Android Emulator automation, tvOS checks, Android TV checks, web browser sessions, debugging, profiling, and exploratory QA.
10
+
Use this page to wire Cursor, Codex, Claude Code, Windsurf, Cline, Goose, Zed, ACP clients, or another coding agent into mobile, TV, desktop, and web app verification. It covers skills, project rules, MCP setup, and ACP setup for React Native QA, Expo app verification, iOS Simulator automation, Android Emulator automation, tvOS checks, Android TV checks, web browser sessions, debugging, profiling, and exploratory QA.
11
11
12
-
The short version: install the CLI, make the agent read version-matched help, and let the agent use either MCP tools or CLI commands. MCP tools use command contracts backed by the same `AgentDeviceClient` execution path as the CLI adapters.
12
+
The short version: install the CLI, make the agent read version-matched help, and let the agent use CLI commands, MCP tools, or the ACP agent depending on what its client supports. MCP tools and ACP command turns use command contracts backed by the same `AgentDeviceClient` execution path as the CLI adapters.
13
13
14
14
## Prerequisite: install the CLI
15
15
@@ -295,7 +295,7 @@ If the client has project rules or custom instructions, add the recommended agen
295
295
296
296
## Why this setup works
297
297
298
-
The CLI stays the auditable automation surface, installed help stays version-matched with the commands, skills and rules route agents toward the right help topics, and MCP gives compatible clients direct structured tools backed by the same daemon/client implementation.
298
+
The CLI stays the auditable automation surface, installed help stays version-matched with the commands, skills and rules route agents toward the right help topics, MCP gives compatible clients direct structured tools, and ACP gives compatible clients a deterministic prompt-line agent backed by the same daemon/client implementation.
299
299
300
300
For the broader positioning, supported targets, observability features, and how `agent-device` differs from scripted test frameworks, see [Introduction](/docs/introduction). For exact command groups and platform behavior, see [Commands](/docs/commands).
Copy file name to clipboardExpand all lines: website/docs/docs/commands.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,6 +32,14 @@ agent-device mcp
32
32
33
33
The MCP server exposes direct structured tools for installed commands. Tools use structured input contracts through `AgentDeviceClient`; local-only workflows stay CLI-only rather than subprocess fallbacks. It does not expose generic shell execution over MCP. MCP tools can target `platform: "web"` after `agent-device web setup`, but setup and doctor stay CLI-only.
34
34
35
+
For ACP-aware clients that support Agent Client Protocol agents, run:
36
+
37
+
```bash
38
+
agent-device acp
39
+
```
40
+
41
+
The ACP agent exposes installed commands as a deterministic prompt-line interface. ACP clients send prompt text such as `/devices` or `snapshot -i`; `agent-device` parses one command per line, executes through the same command contracts and `AgentDeviceClient` path, streams ACP tool-call updates, and refuses natural-language prompts instead of guessing.
Copy file name to clipboardExpand all lines: website/docs/docs/installation.md
+9-3Lines changed: 9 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ agent-device help cdp
26
26
27
27
Some agent clients run commands in an environment that differs from the user's normal install shell. If `agent-device` is missing in the agent terminal but was installed globally elsewhere, resolve the command the same way the user would from a normal terminal session, then use the absolute binary path for agent commands. This may require inspecting shell startup behavior or package-manager/global bin locations; do not assume the agent process `PATH` is the user's `PATH`.
28
28
29
-
For Cursor, Codex, Claude Code, Windsurf, Cline, Goose, skills, and project rules, see [AI Agent Setup](/docs/agent-setup). For the first app automation commands, see [Quick Start](/docs/quick-start).
29
+
For Cursor, Codex, Claude Code, Windsurf, Cline, Goose, skills, MCP, ACP, and project rules, see [AI Agent Setup](/docs/agent-setup). For the first app automation commands, see [Quick Start](/docs/quick-start).
30
30
31
31
Interactive CLI runs periodically check for a newer published `agent-device` package in the background. When an upgrade is available, the CLI suggests reinstalling the package globally:
32
32
@@ -37,15 +37,21 @@ agent-device --version
37
37
38
38
Set `AGENT_DEVICE_NO_UPDATE_NOTIFIER=1` to disable the notice.
39
39
40
-
## Agent clientsand MCP
40
+
## Agent clients, MCP, and ACP
41
41
42
42
The official MCP server exposes direct structured tools for installed `agent-device` commands. Tools use command contracts through `AgentDeviceClient`, so app and device automation still uses the same daemon implementation.
43
43
44
44
```bash
45
45
agent-device mcp
46
46
```
47
47
48
-
Use [AI Agent Setup](/docs/agent-setup#mcp-server) for copy-paste MCP client configuration.
48
+
The ACP agent exposes the same command surface to ACP-capable editors and agent clients as explicit prompt lines. It is deterministic: prompt text such as `/devices` or `snapshot -i` is parsed as command lines and executed through `AgentDeviceClient`; natural-language instructions are refused instead of guessed.
49
+
50
+
```bash
51
+
agent-device acp
52
+
```
53
+
54
+
Use [AI Agent Setup](/docs/agent-setup) for copy-paste MCP and ACP client configuration.
Copy file name to clipboardExpand all lines: website/docs/docs/introduction.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,7 @@ agent-device help cdp
53
53
agent-device help dogfood
54
54
```
55
55
56
-
Use [AI Agent Setup](/docs/agent-setup) for Cursor, Codex, Claude Code, Windsurf, Cline, Goose, skills, and MCP setup. Use [Commands](/docs/commands) for detailed command groups and platform behavior.
56
+
Use [AI Agent Setup](/docs/agent-setup) for Cursor, Codex, Claude Code, Windsurf, Cline, Goose, skills, MCP setup, and ACP setup. Use [Commands](/docs/commands) for detailed command groups and platform behavior.
57
57
58
58
## Where it fits
59
59
@@ -63,6 +63,8 @@ It complements scripted test frameworks such as Appium, Maestro, Detox, XCTest,
63
63
64
64
MCP support exposes direct structured tools for installed `agent-device` commands. Tools use structured input contracts through `AgentDeviceClient`, so MCP clients can call device workflows directly while the daemon remains the execution source of truth.
65
65
66
+
ACP support exposes a deterministic stdio agent for ACP-capable editors and agent clients. The ACP agent interprets prompt text as explicit `agent-device` command lines, including advertised slash commands such as `/devices`, and executes them through the same command contracts and `AgentDeviceClient` path. It is not an LLM and does not guess natural-language actions.
67
+
66
68
## Next steps
67
69
68
70
- Install the CLI: [Installation](/docs/installation)
Copy file name to clipboardExpand all lines: website/docs/docs/security-trust.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,8 @@ description: Security and trust guidance for agent-device local app automation,
11
11
12
12
- Device automation runs through the installed CLI and platform tooling such as Xcode, ADB, macOS accessibility APIs, and Linux AT-SPI.
13
13
- The MCP server exposes direct structured tools for `agent-device` commands. Tools use command contracts through `AgentDeviceClient`; local-only workflows stay CLI-only rather than subprocess fallbacks. It does not expose generic shell execution over MCP.
14
+
- The ACP agent exposes a deterministic prompt-line interface for ACP clients. It accepts explicit command lines and advertised slash commands, executes them through `AgentDeviceClient`, and refuses prompts that do not contain runnable commands. It is not a generic shell or an LLM.
15
+
- MCP and ACP stdio stdout are protocol channels. Do not wrap these commands with logging or banner output on stdout; use stderr or client-side logs for diagnostics.
14
16
- Mutating commands should run serially against one session. Use separate sessions/devices for parallel work.
0 commit comments