Agent Device Cloud
Sign in

Reference

36 built-in tools

Every interface — plugin, Skill, MCP, CLI and SDK — exposes the same tools with the same schemas. Run adc tool show TOOL for the exact input schema.

Windows Node and Android Node are in testing. They are available to try, but compatibility and reliability are still being validated. An available installer does not mean every system, phone model or operation has been verified.

ToolRiskPurpose
device.listReadDiscover devices and inspect their current capability.
device.statusReadDiscover devices and inspect their current capability.
file.listReadList, read and search files inside authorized folders.
file.readReadList, read and search files inside authorized folders.
file.searchReadList, read and search files inside authorized folders.
file.writeWriteCreate, replace, edit or patch files atomically.
file.editWriteCreate, replace, edit or patch files atomically.
file.patchWriteCreate, replace, edit or patch files atomically.
shell.execExecuteRun a command supplied by the agent in an authorized working directory.
command.template.listReadList locally configured command templates and their metadata; runs no command.
command.template.runExecuteRun a command preset on the device, selected by templateId; the agent cannot replace the command.
test.runExecuteRun a preset through the same template executor; defaults to templateId=test and accepts timeoutMs.
task.statusVariesInspect or cancel asynchronous work.
task.resultVariesInspect or cancel asynchronous work.
task.waitVariesInspect or cancel asynchronous work.
task.cancelVariesInspect or cancel asynchronous work.
device.battery.getReadRead live state exposed by an authorized mobile device.
device.info.getReadRead live state exposed by an authorized mobile device.
device.network.getReadRead live state exposed by an authorized mobile device.
device.storage.getReadRead live state exposed by an authorized mobile device.
display.statusReadRead live state exposed by an authorized mobile device.
audio.statusReadRead live state exposed by an authorized mobile device.
flashlight.statusReadRead live state exposed by an authorized mobile device.
location.getReadRead live state exposed by an authorized mobile device.
screen.captureReadRead live state exposed by an authorized mobile device.
ui.inspectReadRead live state exposed by an authorized mobile device.
ui.waitReadRead live state exposed by an authorized mobile device.
notification.showWritePresent an authorized notification on a mobile device.
device.navigationExecuteOperate the visible Android interface within local Accessibility permission.
screen.controlExecuteOperate the visible Android interface within local Accessibility permission.
device.vibrateExecuteOperate the visible Android interface within local Accessibility permission.
app.openExecuteOperate the visible Android interface within local Accessibility permission.
audio.volume.setExecuteOperate the visible Android interface within local Accessibility permission.
flashlight.setExecuteOperate the visible Android interface within local Accessibility permission.
ui.actionExecuteOperate the visible Android interface within local Accessibility permission.
ui.gestureExecuteOperate the visible Android interface within local Accessibility permission.

Shell, templates and tests

With shell.exec, the agent supplies the command. With a template, the device owner presets it and the agent selects its ID. For example:

adc-node
adc-node templates add lint --root ROOT_ID --command "npm run lint"
adc-node templates add test --root ROOT_ID --command "npm test"

command.template.list only lists these presets. command.template.run with templateId=lint runs npm run lint; test.run without a templateId runs npm test. test.run can also select a different templateId. Its timeoutMs defaults to five minutes and cannot exceed the template's configured timeout.

All three execution tools ultimately run a shell process. Templates limit which command the agent may choose; they do not provide a separate sandbox. The current executor rejects non-empty template parameters.

Rules that apply to every tool

  • Write and Execute tools need an idempotency key. Reuse it only to retry the exact same call.
  • Paths must be absolute and inside an authorized folder on the target device.
  • Local MCP server tools appear namespaced, default to Execute risk and need explicit authorization.

Wait for a running task

task.wait takes jobId and waitMs (0–30000, default 4000) and returns when the task finishes or the wait ends. If it is still running, wait again with the same jobId instead of resubmitting.

CLI
adc invoke task.wait --args '{"jobId":"job_example","waitMs":4000}' --json