Skip to main content

Tools reference

Argent exposes its capabilities to the coding agent as MCP tools. You rarely call these by hand, but knowing what exists tells you what you can ask for.

Run argent tools to list them from the terminal, argent tools describe <name> for the full schema of one, and argent run <name> to invoke one directly.

Devices and apps​

ToolDescription
list-devicesList iOS simulators, Android emulators and devices, Chromium apps, and Vega (Fire TV) devices
boot-deviceBoot a simulator, emulator, or Vega Virtual Device, or spawn an Electron app
launch-appOpen an app by bundle id (iOS) or package name (Android)
restart-appTerminate then relaunch an app
reinstall-appInstall or reinstall an app, clearing app data and runtime permissions
open-urlOpen a URL or URL scheme on the device
settings-permissionsGrant, deny, or reset a runtime permission without navigating the Settings UI
rotateSet the device orientation to portrait or either landscape
foldFold or unfold a foldable iOS simulator to a posture or a hinge angle
shakeShake the device
buttonPress a hardware button: home, back, power, volume, app switch, action button
tv-remotePress a TV remote or D-pad button on Apple TV, Android TV, or Vega
stop-simulator-serverStop the transport session for one device and free its resources
stop-all-simulator-serversStop every service a device owns: simulator servers, native devtools, TV daemons
stop-metroStop the Metro bundler listening on a given port

launch-app and restart-app accept launchArgs, a list of arguments that Argent passes to the app process at launch. For example, ["-FeatureFlag", "YES"] overrides a UserDefaults value. launchArgs works on Apple simulators and physical iPhones. Other targets ignore it. If the app already runs, launch-app terminates it first, so that the app gets the arguments. On a physical iPhone, the app sees -- before the arguments. UserDefaults overrides still apply.

Argent drives a foldable iOS simulator, for example the iPhone Duo. list-devices marks it with foldable: true. fold moves the hinge to a posture (closed, half-open or open) or to an angle from 0 to 180 degrees.

  • Closed, the cover panel shows the UI. Half-open and open, the inner panel shows the UI. The panel that shows the UI is the active panel.
  • All tools use the active panel. This is also true after a fold made outside Argent.
  • The coordinates and the screenshot size change with the panel.
  • A video keeps the size of the panel where the recording started. Argent keeps the proportions of the other panel and adds black bars.
  • A fold between two angles that are not 0 or 180 can keep the current panel. To change panels, fold to closed or open.
  • Unfolded, the UI is landscape. rotate sets the orientation of the device, not of the UI. Portrait gives a landscape UI.
  • If Argent cannot find the active panel, it uses the cover panel. The tool result then has a warning.

Argent supports physical iPhones; physical iPads are not supported yet. list-devices shows a physical device as an iOS entry with kind device. The state is connected only while the device is attached by USB cable; Argent controls physical devices over the cable and does not use Wi-Fi. The state is paired when the device is paired but not reachable now. Argent never selects a physical device automatically: name its udid. A paired device cannot be driven until it is connected by cable again. See Physical iOS devices for the requirements, the signing model, and the app-scoped interaction contract.

Inspecting the screen​

ToolDescription
screenshotCapture the device screen
describeGet the accessibility / DOM element tree for the current screen
screenshot-diffCompare two PNG screenshots and return a visual-diff summary
await-screen-idleBlock until the screen has rendered content and stopped changing
await-ui-elementBlock until a UI element reaches an expected state, instead of polling in a loop
ui-tree (SDK only)Get the raw accessibility tree as nested JSON, iOS simulator and Android

ui-tree is hidden from MCP; call it with the Argent SDK, which exports its UiTree result type. Fields a platform cannot report yet are listed in unsupportedFields. A node is hidden when no part of it is on screen inside its ancestors. On iOS, while a system alert shows, roots holds the system app first and the app it covers second. On Android, roots holds one root per window, topmost first. A system dialog, such as a runtime permission prompt or a crash dialog, sets alertVisible, and every node of the app it covers is covered. When Android hides the app's window under the dialog, foregroundApp is unset.

Interacting​

ToolDescription
gesture-tapTap at normalized coordinates
gesture-swipeSmooth swipe or drag between two points
gesture-scrollScroll a Chromium app by dispatching mouse-wheel events
gesture-dragPress, move, and release the mouse in a Chromium app
gesture-pinchPinch to zoom around a center point
gesture-rotateTwo-finger circular arc that rotates on-screen content
gesture-customSend an arbitrary sequence of touch events for complex gestures
keyboardType text or press special keys
pastePut text on the device clipboard and paste it (sim/emu only)
run-sequenceExecute several interaction steps in a single call
screen-recording-startStart recording the screen to an h264 mp4
screen-recording-stopStop the recording and retrieve the video

JavaScript runtime debugging​

ToolDescription
debugger-connectConnect to the JS runtime CDP debugger
debugger-statusReport connection status and diagnostics
debugger-evaluateExecute JavaScript in the app's runtime: Hermes on device, V8 on Chromium
debugger-component-treeFetch the current screen as a compact React component text tree
debugger-inspect-elementInspect the React component hierarchy at a screen coordinate
debugger-log-registrySummarize console logs captured from the app
debugger-reload-metroRestart the Metro bundle without restarting the native process
view-network-logsRetrieve captured HTTP requests from the running app
view-network-request-detailsGet full details of one request by its requestId

Native devtools​

ToolDescription
native-devtools-statusCheck whether native devtools are connected and injection is prepared
native-describe-screenRead the app's native accessibility screen description
native-full-hierarchyGet the complete UIKit view tree
native-find-viewsSearch views by class, accessibility id, label, tag, or nativeID
native-view-at-pointInspect the deepest visible view at a native window point
native-user-interactable-view-at-pointInspect the deepest view at a point that would receive touch input
native-network-logsRetrieve requests captured at the native NSURLProtocol level

Chromium and Electron​

ToolDescription
chromium-tabsList, switch, open, and close tabs or BrowserWindows
chromium-cookiesRead and write cookies, including HttpOnly ones
chromium-storageRead and write localStorage and sessionStorage of the active page

Profiling​

ToolDescription
react-profiler-startStart CPU profiling and React commit capture on the connected Hermes runtime
react-profiler-stopStop profiling and collect the CPU profile and commit tree
react-profiler-statusCheck the profiler session state without side effects
react-profiler-analyzeAnalyze stored profiling data into a markdown performance report
react-profiler-rendersCollect component render counts and durations from the live fiber tree
react-profiler-fiber-treeInspect the React fiber tree as JSON
react-profiler-cpu-summaryReturn the top Hermes CPU hotspots by self-time
react-profiler-component-sourceFind a component's source file, line, and memoization status
native-profiler-startStart native profiling: Instruments on iOS, Perfetto on Android
native-profiler-stopStop native profiling and export the trace
native-profiler-analyzeAnalyze an exported native trace into a markdown report
profiler-combined-reportCross-correlate React Profiler and native profiler data
profiler-loadRestore a previously captured session from disk so query tools can use it
profiler-commit-queryQuery React commit data for iterative render investigation
profiler-cpu-queryQuery Hermes CPU profile data with targeted modes
profiler-stack-queryQuery native trace data for iterative native investigation

Flows​

ToolDescription
flow-start-recordingStart recording a new flow, resetting .argent/flows/<name>.yaml
flow-add-stepExecute a tool call and record it as a step in the open recording
flow-add-echoRecord an echo step that prints a message during replay
flow-add-scriptRun a local .mjs file and add it to the open recording
flow-finish-recordingFinish the recording and write the flow to disk
flow-executeRun a saved flow
flow-read-prerequisiteRead a flow's execution prerequisite without running it

Design variants​

Staged through Argent Lens so you can compare proposals against the running app. These tools require the argent-lens flag and macOS. The flag is off by default, so argent tools omits them until you enable it.

ToolDescription
propose_variantStage one design variant for one on-screen element
await_user_selectionBlock until you pick among the staged variants

Workspace and maintenance​

ToolDescription
gather-workspace-dataFetch a structured snapshot of the app project's workspace
update-argentApply a pending Argent update
dismiss-updateSilence update reminders for a number of hours