An agentic toolkit to control, debug, and profile iOS and Android apps. Made by Software Mansion.
$ npx -y skills add software-mansion/argent --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: software-mansion/argent
What's inside
Argent is an agentic toolkit that gives your AI assistant direct access to iOS Simulators, Android emulators and physical devices, TVs (Apple TV, Android TV, Fire TV) and Electron/Chromium desktop and web apps. Ask it to tap a button, run a profiler or reproduce an issue manually - all from within your CLI, without switching context.
npx @swmansion/argent@latest init
# or, in a pnpm project (where npm's devEngines check may refuse to run npx):
pnpm dlx @swmansion/argent@latest init
Argent drives a growing set of targets through a single toolkit, each with the right interaction model - touch, remote or mouse:
| Platform | Targets | Interaction |
|---|---|---|
| iOS | Simulators | Touch / gesture |
| Android | Emulators (AVDs) and physical devices over adb | Touch / gesture |
| TV | Apple TV (tvOS), Android TV / Google TV, Amazon Fire TV (Vega) | D-pad / remote |
| Desktop & web | Electron and Chromium apps (incl. React Native Web / Expo web) over CDP | Mouse / keyboard |
fetch and native), evaluate JS in the running app, walk the native UIKit and React component trees, and reproduce failing states - so you can jump straight to the fix.Tip: Once installed, ask your assistant "What can Argent do?" - it will walk you through all capabilities available.
adb) on PATH, and the Android Emulator package if you want to boot AVDs from Argent. Create AVDs via Android Studio or avdmanager.vega CLI) on PATH--remote-debugging-port, or let Argent spawn your Electron app for youArgent runs Android emulators on Linux but the default install can be slow if a few host-side knobs aren't right. Cover these once and the experience matches macOS:
KVM access. The emulator falls back to slow software emulation (TCG) without /dev/kvm. Make sure virtualization is enabled in BIOS/UEFI (vmx for Intel, svm for AMD in /proc/cpuinfo) and that your user can read/write /dev/kvm โ on most distros that means joining the kvm group:
sudo usermod -aG kvm "$USER"
# log out and back in so the new group takes effect
GPU mode (-gpu swiftshader on Linux, override available). The Android emulator's Linux GPU story is messy: -gpu auto frequently resolves to lavapipe (slow software Vulkan via host libvulkan, ~10ร cold-boot regression on flagship hardware), and -gpu host silently produces a corrupted or black emulator window on hosts with non-trivial GL stacks โ dual-GPU / Optimus laptops, NVIDIA + Mesa coexistence via libglvnd, Wayland sessions on hybrid graphics, headless / containerized hosts. The failure mode is invisible to argent's framebuffer-based screenshot tool, so an agent reports success while the developer sees a black window.
Argent picks -gpu swiftshader on Linux for universal compatibility: it sidesteps the host GL stack entirely and renders via the emulator's bundled SwiftShader. On modern multi-core machines this is indistinguishably smooth from hardware-accelerated -gpu host (and far faster than lavapipe).
Override with the ARGENT_EMULATOR_GPU_MODE env var if you've verified -gpu host works on your machine (typical single-GPU Mesa box with a healthy X session):
ARGENT_EMULATOR_GPU_MODE=host argent ...
Argent's boot-device preflight prints a warning if /dev/kvm isn't usable โ the condition that causes a 10โ50ร TCG-vs-KVM slowdown.
System image. Prefer the default or google_apis variants of x86_64 system images for headless agent workflows; google_apis_playstore adds noticeable boot-time CPU churn from Play services. Always pick x86_64 on Intel/AMD hosts โ ARM images run via QEMU translation and are dramatically slower.
AVD config. AVDs created via avdmanager create avd default to hw.gpu.enabled=no. Argent overrides this with an explicit -gpu arg at launch (so the on-disk config doesn't need editing). For the smoothest experience under heavy native builds (gradle compilations alongside the AVD), bump the AVD's RAM and CPU count โ edit ~/.android/avd/<name>.avd/config.ini:
hw.ramSize = 8192
hw.cpu.ncore = 6
vm.heapSize = 512
Stock 2 GB / 4 vCPU AVDs can be CPU-starved into wedged-system_server states by a concurrent gradle/Kotlin compile.
Headless / CI mode (ARGENT_EMULATOR_NO_WINDOW=1). Argent shows the emulator window by default so a local developer can see the AVD UI. In a headless context โ CI runner, container, or a Wayland-only session where the emulator's bundled Qt has no wayland platform plugin and SIGABRTs on the crash-consent dialog โ opt out by exporting ARGENT_EMULATOR_NO_WINDOW=1 before starting the tool-server. This appends -no-window to the spawn args, selecting qemu-system-x86_64-headless which doesn't need a Qt window. Argent's screencap-based screenshot tool reads the in-memory framebuffer correctly without a visible window.
init in your projectFrom your project root:
npx @swmansion/argent@latest init
# or, in a pnpm project (where npm's devEngines check may refuse to run npx):
pnpm dlx @swmansion/argent@latest init
This command triggers an installation wizard which:
@swmansion/argent globallynpm install -g @swmansion/argent
argent init
By default Argent installs globally. To version Argent with your repo so every
teammate gets the same setup on npm install โ no per-developer global install, no
argent init โ choose the local mode:
npx @swmansion/argent@latest init --local
# or, in a pnpm project:
pnpm dlx @swmansion/argent@latest init --local
Note: in a freshly
pnpm init-ed project,npxitself may refuse to run (npm'sdevEnginescheck) โ use thepnpm dlxform there.
This adds @swmansion/argent to your project's devDependencies and writes MCP
configs that launch the project-local copy (node node_modules/@swmansion/argent/dist/cli.js mcp).
Commit package.json + your lockfile, the generated MCP config (.mcp.json,
.cursor/mcp.json, โฆ), .argent/install.json, and the skills/rules/agents files.
Teammates then just run npm install.
Pass --global to force the default mode in scripts; --local and --global are
mutually exclusive. A non-interactive (--yes) run defaults to global unless the
project already opted into local mode (a committed .argent/install.json, or
@swmansion/argent declared in the project's own package.json).
In local mode the committed MCP config runs the project-local copy, so the bare
argentcommand is not on teammates'PATH. Note thatnpm installbuilds Argent's native deps (tree-sitter) on each machine โ prebuilt for macOS, Linux x64, and Windows x64; other targets (Linux arm64, Windows arm) compile from source and need a C/C++ toolchain.
| Command | Description |
|---|---|
argent init | Install and configure MCP in the current workspace (--global default, --local for a committable devDependency) |
argent install | Alias for init command |
argent update | Pull the latest version and refresh workspace configuration (acts on the present install โ both when a global install and a project devDependency coexist; --global/--local select explicitly) |
argent uninstall | Unregister the MCP server and uninstall the package (--global/--local choose which install โ and its configs โ is removed; non-interactive runs never remove a coexisting global install) |
argent remove | Alias for uninstall command |
argent mcp | Start MCP server instance, used internally by agent |
argent tools | List tools exposed by the tool-server (describe <name> for details) |
argent run | Invoke a tool by name |
argent server | Manage the shared tool-server: start / status / stop / logs |
argent lens | Open Argent Lens bound to a fresh coding-agent session โ Claude by default, --agent selects codex/gemini/opencode/cursor (macOS; behind the argent-lens flag โ run argent enable argent-lens first) |
argent link | Route client requests to a remote tool-server |
argent unlink | Remove the persisted remote tool-server link |
argent enable | Enable a predefined feature flag (--scope project for project-local) |
argent disable | Disable a feature flag (--scope project for project-local) |
argent flags | List available feature flags and their state |
argent telemetry | Manage telemetry: status / enable / disable |
argent init auto-detects and configures MCP for:
| Editor | Config location |
|---|---|
| Claude Code | .mcp.json (project) or ~/.claude.json (global) |
| Cursor | .cursor/mcp.json (project) or ~/.cursor/mcp.json (global) |
| VS Code | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json (global) |
| Zed | .zed/settings.json (project) or ~/.config/zed/settings.json (global) |
| Gemini CLI | .gemini/settings.json |
| Codex CLI | .codex/config.toml (project) or ~/.codex/config.toml (global) |
| Hermes | ~/.hermes/config.yaml (global) |
| opencode | opencode.json (project) or ~/.config/opencode/opencode.json (global) |
| Kiro | .kiro/settings/mcp.json (project) or ~/.kiro/settings/mcp.json (global) |
Argent collects opt-out usage and diagnostic telemetry to help us prioritise features and fix what breaks.
You can opt out at any time:
argent telemetry disable # check status with: argent telemetry status
For the full details โ see the Argent Privacy Notice (Telemetry).
Argent uses a mixed licensing model.
Source code is released under the Apache License 2.0.
Proprietary binaries (the per-platform bin/<platform>/simulator-server and bin/darwin/ax-service executables and the .dylib files in native-devtools-ios) are the intellectual property of Software Mansion S.A. and are licensed solely for use within this project. Decompiling, reverse-engineering, or redistributing them without explicit written permission is prohibited.
By using Argent, you acknowledge and agree to this structure. See LICENSE for full details.
Since 2012 Software Mansion is a software agency with experience in building web and mobile apps. We are Core React Native Contributors and experts in dealing with all kinds of React Native issues. We can help you build your next dream product โ Hire us.
.github/
actions/
start-tool-server/
action.yml
dependabot.yml
workflows/
build-package-artifact.yml
e2e-device-smoke.yml
format.yml
lint.yml
lockfile.yml
publish-npm.yml
release.yml
repo-hygiene.yml
skill-description-quality.yml
sync-next-tag.yml
tool-description-quality.yml
unit-tests.yml
vega-vvd-e2e.yml
wayland-e2e.yml
windows-e2e.yml
.gitignore
.gitmodules
.prettierignore
.prettierrc
assets/
showcase.gif
CODE_OF_CONDUCT.md
CONTRIBUTING.md
eslint.config.mjs
glama.json
LICENSE.txt
package-lock.json
package.json
packages/
archive/
package.json
src/
index.ts
test/
archive.test.ts
tsconfig.json
tsconfig.test.json
argent/
argent-cli/
package.json
src/
config.ts
flag-parser.ts
flags.ts
flow.ts
index.ts
lens-agents.ts
lens-pty.ts
lens-stream.ts
lens-terminal.ts
lens.ts
link.ts
run-validation.ts
run.ts
secrets.ts
server.ts
telemetry.ts
tools.ts
test/
config-command.test.ts
flag-parser.test.ts
flags.test.ts
flow-deviceless-render.test.ts
flow-output.test.ts
flow-render.test.ts
flow.test.ts
lens-agents.test.ts
lens-feedback.test.ts
lens-plan-agent.test.ts
lens-pty.test.ts
lens-relay.test.ts
lens-stream.test.ts
lens-terminal.test.ts
parse-link-flags.test.ts
parse-start-flags.test.ts
run-artifacts.test.ts
run-flow-add-step-payload.test.ts
run-help.test.ts
run-required-flags.test.ts
run-telemetry.test.ts
run-validation.test.ts
secrets-command.test.ts
tools-help.test.ts
tsconfig.json
tsconfig.test.json
vitest.config.ts
argent-installer/
package.json
src/
constants.ts
first-run-notice.ts
index.ts
init-adapters.ts
init-allowlist.ts
init-args.ts
init-mcp-write.ts
init-mode-prompt.ts
init-scope.ts
init-skills.ts
init-stale-config.ts
init-telemetry.ts
init.ts
install-record.ts
install-runner.ts
install-targets.ts
mcp-configs.ts
package-manager.ts
package-root.ts
preflight.ts
shell.ts
skills.ts
telemetry-finalize.ts
topology.ts
uninstall.ts
update-target.ts
update.ts
utils.ts
test/
init-adapters.test.ts
init-args.test.ts
init-mcp-write.test.ts
init-stale-config.test.ts
init.test.ts
install-runner.test.ts
install-targets.test.ts
mcp-configs.test.ts
package-root.test.ts
skills.test.ts
telemetry-finalize.test.ts
uninstall.test.ts
update-decline.test.ts
update-target.test.ts
update.test.ts
utils.test.ts
tsconfig.json
tsconfig.test.json
vitest.config.ts
argent-mcp/
package.json
src/
auto-screenshot.ts
content.ts
index.ts
installed-version.ts
mcp-server.ts
tool-mapping.ts
test/
auto-screenshot.test.ts
content.test.ts
fetch-timeout.test.ts
installed-version.test.ts
mcp-server.test.ts
tool-mapping.test.ts
tsconfig.json
tsconfig.test.json
vitest.config.ts
argent-tools-client/
package.json
src/
artifacts.ts
file-inputs.ts
index.ts
launcher.ts
link-config.ts
tools-client.ts
test/
artifacts.test.ts
file-inputs.test.ts
fixtures/
fake-tool-server.cjs
launcher-duplicate-spawn.test.ts
launcher-exit.test.ts
launcher-helpers.test.ts
launcher-spawn.test.ts
launcher-state.test.ts
launcher-sweep.test.ts
launcher-version-gate.test.ts
launcher.test.ts
link-config.test.ts
stream.test.ts
tsconfig.json
tsconfig.test.json
vitest.config.ts
LICENSE
manifest.json
package.json
scripts/
argent-simulator-server.cjs
bundle-tools.cjs
observe.cjs
sync-readme.cjs
src/
bundled-paths.ts
cli.ts
fatal-handlers.ts
installer-help.ts
test/
bundled-paths.test.ts
cli-dispatch.test.ts
dispatcher.test.ts
esm-bundle-banner.test.ts
fatal-handlers.test.ts
installer-flags-sync.test.ts
installer-help.test.ts
package-manifest.test.ts
tsconfig.json
tsconfig.test.json
vitest.config.ts
configuration-core/
package.json
src/
config-access.ts
config-schema.ts
config.ts
flags.ts
index.ts
merge.ts
paths.ts
secrets.ts
tests/
config-access.test.ts
config.test.ts
flags.test.ts
merge.test.ts
secrets.test.ts
tsconfig.json
tsconfig.test.json
vitest.config.ts
native-devtools-android/
.gitattributes
.gitignore
assets/
argent.tracecfg.pbtxt
manifest.json
queries/
cpu-hotspots.sql
function-callers.sql
hang-folds-batched.sql
hang-main-thread-samples.sql
hang-state-breakdown.sql
memory-rss.sql
README.md
thread-breakdown.sql
trace-bounds.sql
ui-hangs.sql
package.json
scripts/
build.sh
src/
bundled-meta.ts
errors.ts
index.ts
perfetto-engine.d.ts
wasm-trace-processor.ts
test/
errors.test.ts
tsconfig.json
tsconfig.test.json
vitest.config.ts
native-devtools-ios/
LICENSE
package.json
scripts/
build.sh
src/
index.ts
test/
index.test.ts
tsconfig.json
tsconfig.test.json
vitest.config.ts
preview-window/
package.json
src/
main.ts
tsconfig.json
registry/
LICENSE
package.json
src/
artifacts.ts
errors.ts
event-emitter.ts
failure-codes.ts
file-inputs.ts
index.ts
logger.ts
registry.ts
types.ts
urn.ts
zod-to-json-schema.ts
tests/
helpers.ts
logger.test.ts
registry-error-events.test.ts
registry-feature-flag-gate.test.ts
registry-service-recovery.test.ts
registry.test.ts
zod-to-json-schema.test.ts
tsconfig.json
tsconfig.test.json
vitest.config.ts
skills/
agents/
argent-environment-inspector.md
references/
quality-control-checklist.md
LICENSE
package.json
rules/
argent.md
scripts/
install.js
skills/
argent-android-emulator-setup/
SKILL.md
argent-create-flow/
SKILL.md
argent-device-interact/
references/
gesture-examples.md
SKILL.md
argent-ios-simulator-setup/
SKILL.md
argent-lens/
SKILL.md
argent-metro-debugger/
references/
failure-scenarios.md
source-maps.md
SKILL.md
argent-native-profiler/
SKILL.md
argent-react-native-app-workflow/
SKILL.md
argent-react-native-optimization/
references/
fix-reference.md
lint-rules.md
semantic-checklist.md
SKILL.md
argent-react-native-profiler/
references/
diagnostic-tools.md
SKILL.md
argent-screen-recording/
SKILL.md
argent-screenshot-diff/
SKILL.md
argent-settings-permissions/
SKILL.md
argent-test-ui-flow/
SKILL.md
argent-tv-interact/
SKILL.md
telemetry/
package.json
src/
ai-identity.ts
base-props.ts
ci-detect.ts
cloud-agent-detect.ts
consent.ts
crash-diagnostics.ts
debug.ts
events.ts
fingerprint.ts
identity.ts
index.ts
notice.ts
paths.ts
posthog.ts
registry-listener.ts
sanitize.ts
uninstall-reset.ts
test/
ai-identity.test.ts
base-props.test.ts
ci-detect.test.ts
cloud-agent-detect.test.ts
consent.test.ts
crash-diagnostics.test.ts
debug.test.ts
fingerprint.test.ts
helpers.ts
identity-fingerprint.test.ts
identity.test.ts
index.test.ts
notice.test.ts
paths.test.ts
posthog-host.test.ts
registry-listener.test.ts
sanitize.test.ts
tsconfig.json
... 803 moreFAQ
argent is a Claude Code plugin with 15 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes argent-android-emulator-setup, argent-create-flow, argent-device-interact. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.