AgentToolHub
Skill

argent-settings-permissions

An agentic toolkit to control, debug, and profile iOS and Android apps. Made by Software Mansion.

Features

  • ✓**Autonomous mobile, TV and desktop development** - Allow your agent to work with iOS, Android, TV and Electron/web apps on its own - let it build, open, interact with the app and debug it. Ask for reproducing issues, testing features manually, profiling your app and much more, without ever interrupting your work.
  • ✓**UI interaction** - Give your agent the full control toolkit - tapping, swiping, pinching, typing, gestures and hardware buttons on mobile; the directional remote on TV; mouse, scroll and drag on desktop/web. Let it navigate your app exactly as a user would, without lifting a finger.
  • ✓**Record & replay flows** - Capture a sequence of interactions once and let your agent replay it deterministically, so manual repros and smoke tests become repeatable.
  • ✓**Visual regression** - Diff two screenshots (or a saved baseline against a live capture) with OCR- and font-aware comparison to catch unintended UI changes.
  • ✓**Profiling with batteries included** - Argent can perform and analyze React Native (Hermes), React DevTools and native (Xcode Instruments / Android Perfetto) profiling sessions - down to fiber renders, CPU hotspots and cross-correlated commit-vs-hang reports. Get comprehensive summaries and ask to optimise your app where you find fit.
  • ✓**Debugging and diagnostics** - Let your agent inspect logs, capture network traffic (JS `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.
  • ✓**Desktop & web control** - For Electron and Chromium apps your agent can drive tabs, read and write cookies and storage, walk the DOM and inspect network over the Chrome DevTools Protocol.
  • ✓**React Native out of the box** - Argent works with React Native apps natively, so your agent can build, launch, and iterate on your RN project the same way it would any native app - no extra setup required.

Installation Guide

#### Prerequisites

  • Node.js 20.12 or later

  • For iOS / tvOS: macOS with Xcode installed (Apple TV uses tvOS simulators — Xcode downloads the tvOS runtime on demand)

  • For Android / Android TV: Android SDK Platform Tools (adb) on PATH, and the Android Emulator package if you want to boot AVDs from Argent. Create AVDs via Android Studio or avdmanager.

  • For Fire TV (Vega): the Vega SDK (vega CLI) on PATH

  • For Electron / Chromium: nothing extra to control an already-running app - just launch it with --remote-debugging-port, or let Argent spawn your Electron app for you
  • ##### Linux host: extra prerequisites for Android emulators

    Argent 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:
  • bash
      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):

    bash
      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:
  • text
      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.
  • #### Run init in your project

    From your project root:

    bash
    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:

  • Installs @swmansion/argent globally

  • Detects your editor and registers the MCP server

  • Copies skills, rules, and agent definitions into your workspace
  • #### Prefer a manual install?

    bash
    npm install -g @swmansion/argent
    argent init

    #### Share Argent with your team (committable install)

    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:

    bash
    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, npx itself may refuse to run

    (npm's devEngines check) — use the pnpm dlx form 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

    argent command is not on teammates' PATH. Note that npm install builds

    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.

    Reviews