Argent
Um kit de ferramentas agêntico para controlar, depurar e perfilar aplicativos iOS e Android.
Documentação
Argent é um kit de ferramentas agêntico que dá ao seu assistente de IA acesso direto a Simuladores iOS, emuladores Android e dispositivos físicos, TVs (Apple TV, Android TV, Fire TV) e aplicativos desktop e web Electron/Chromium. Peça para tocar em um botão, executar um profiler ou reproduzir um problema manualmente — tudo a partir do seu CLI, sem mudar de contexto.
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
Plataformas suportadas
O Argent controla um conjunto crescente de alvos por meio de um único kit de ferramentas, cada um com o modelo de interação adequado — toque, controle remoto ou mouse:
| Plataforma | Alvos | Interação |
|---|---|---|
| iOS | Simuladores e iPhones físicos | Toque / gesto |
| Android | Emuladores (AVDs) e dispositivos físicos via adb | Toque / gesto |
| TV | Apple TV (tvOS), Android TV / Google TV, Amazon Fire TV (Vega) | D-pad / controle remoto |
| Desktop e web | Aplicativos Electron e Chromium (incl. React Native Web / Expo web) via CDP | Mouse / teclado |
Recursos
- Desenvolvimento autônomo para mobile, TV e desktop — Permita que seu agente trabalhe com aplicativos iOS, Android, TV e Electron/web por conta própria — deixe-o compilar, abrir, interagir com o aplicativo e depurá-lo. Peça para reproduzir problemas, testar recursos manualmente, criar perfis do seu aplicativo e muito mais, sem nunca interromper seu trabalho.
- Interação com a interface — Dê ao seu agente o kit completo de controle — tocar, deslizar, pinçar, digitar, gestos e botões de hardware no mobile; o controle remoto direcional na TV; mouse, rolagem e arrastar no desktop/web. Deixe-o navegar pelo seu aplicativo exatamente como um usuário faria, sem levantar um dedo.
- Gravar e reproduzir fluxos — Capture uma sequência de interações uma vez e deixe seu agente reproduzi-la de forma determinística, para que reproduções manuais e testes de fumaça se tornem repetíveis.
- Regressão visual — Compare duas capturas de tela (ou uma linha de base salva contra uma captura ao vivo) com comparação ciente de OCR e fontes para detectar mudanças não intencionais na interface.
- Criação de perfil com tudo incluído — O Argent pode executar e analisar sessões de criação de perfil do React Native (Hermes), React DevTools e nativas (Xcode Instruments / Android Perfetto) — até renders de fibras, pontos críticos de CPU e relatórios correlacionados de commit-vs-congelamento. Obtenha resumos abrangentes e peça para otimizar seu aplicativo onde achar adequado.
- Depuração e diagnóstico — Deixe seu agente inspecionar logs, capturar tráfego de rede (JS
fetche nativo), avaliar JS no aplicativo em execução, percorrer as árvores de componentes nativos UIKit e React e reproduzir estados de falha — para que você possa ir direto para a correção. - Controle de desktop e web — Para aplicativos Electron e Chromium, seu agente pode controlar abas, ler e escrever cookies e armazenamento, percorrer o DOM e inspecionar a rede pelo Chrome DevTools Protocol.
- React Native pronto para uso — O Argent funciona nativamente com aplicativos React Native, então seu agente pode compilar, iniciar e iterar no seu projeto RN da mesma forma que faria com qualquer aplicativo nativo — sem configuração extra necessária.
Dica: Após a instalação, pergunte ao seu assistente "O que o Argent pode fazer?" — ele explicará todos os recursos disponíveis.
Instalação
Pré-requisitos
- Node.js 20.12 ou posterior
- Para iOS / tvOS: macOS com Xcode instalado (Apple TV usa simuladores tvOS — o Xcode baixa o runtime tvOS sob demanda)
- Para Android / Android TV: Android SDK Platform Tools (
adb) noPATH, e o pacote Android Emulator se quiser iniciar AVDs pelo Argent. Crie AVDs via Android Studio ouavdmanager. - Para Fire TV (Vega): o Vega SDK (CLI
vega) noPATH - Para Electron / Chromium: nada extra para controlar um aplicativo já em execução — basta iniciá-lo com
--remote-debugging-port, ou deixe o Argent iniciar seu aplicativo Electron para você
Host Linux: pré-requisitos extras para emuladores Android
O Argent executa emuladores Android no Linux, mas a instalação padrão pode ser lenta se alguns ajustes do lado do host não estiverem corretos. Cubra estes uma vez e a experiência será igual à do macOS:
-
Acesso KVM. O emulador cai para emulação de software lenta (TCG) sem
/dev/kvm. Certifique-se de que a virtualização esteja habilitada no BIOS/UEFI (vmxpara Intel,svmpara AMD em/proc/cpuinfo) e que seu usuário possa ler/escrever/dev/kvm— na maioria das distros, isso significa entrar no grupokvm:sudo usermod -aG kvm "$USER" # log out and back in so the new group takes effect -
Modo GPU (
-gpu swiftshaderno Linux, com opção de substituição). A história do GPU no Linux para o emulador Android é confusa:-gpu autofrequentemente resolve para lavapipe (Vulkan de software lento via libvulkan do host, ~10× de regressão na inicialização a frio em hardware de ponta), e-gpu hostsilenciosamente produz uma janela de emulador corrompida ou preta em hosts com pilhas GL não triviais — laptops dual-GPU / Optimus, coexistência NVIDIA + Mesa via libglvnd, sessões Wayland em gráficos híbridos, hosts headless / containerizados. O modo de falha é invisível para a ferramenta de captura de tela baseada em framebuffer do argent, então um agente relata sucesso enquanto o desenvolvedor vê uma janela preta.O Argent escolhe
-gpu swiftshaderno Linux para compatibilidade universal: ele contorna completamente a pilha GL do host e renderiza via SwiftShader incluído no emulador. Em máquinas modernas com vários núcleos, isso é indistinguivelmente suave de-gpu hostacelerado por hardware (e muito mais rápido que lavapipe).Substitua com a variável de ambiente
ARGENT_EMULATOR_GPU_MODEse você verificou que-gpu hostfunciona na sua máquina (caixa Mesa típica de GPU única com uma sessão X saudável):ARGENT_EMULATOR_GPU_MODE=host argent ...A verificação prévia do dispositivo de inicialização do Argent imprime um aviso se
/dev/kvmnão for utilizável — a condição que causa uma desaceleração de 10–50× TCG-vs-KVM. -
Imagem do sistema. Prefira as variantes
defaultougoogle_apisdas imagens de sistemax86_64para fluxos de trabalho de agente headless;google_apis_playstoreadiciona consumo notável de CPU na inicialização devido aos serviços do Play. Sempre escolhax86_64em hosts Intel/AMD — imagens ARM rodam via tradução QEMU e são dramaticamente mais lentas. -
Configuração do AVD. AVDs criados via
avdmanager create avdusamhw.gpu.enabled=nopor padrão. O Argent substitui isso com um argumento explícito-gpuno lançamento (então a configuração em disco não precisa ser editada). Para a experiência mais suave sob compilações nativas pesadas (compilações gradle junto com o AVD), aumente a RAM e o número de CPUs do AVD — edite~/.android/avd/<name>.avd/config.ini:hw.ramSize = 8192 hw.cpu.ncore = 6 vm.heapSize = 512AVDs padrão de 2 GB / 4 vCPU podem ficar sem CPU e levar o system_server a travar devido a uma compilação concorrente de gradle/Kotlin.
-
Modo headless / CI (
ARGENT_EMULATOR_NO_WINDOW=1). O Argent mostra a janela do emulador por padrão para que um desenvolvedor local possa ver a interface do AVD. Em um contexto headless — runner de CI, contêiner ou sessão somente Wayland onde o Qt incluído do emulador não tem plugin de plataformawaylande aborta no diálogo de consentimento de falha — opte por não participar exportandoARGENT_EMULATOR_NO_WINDOW=1antes de iniciar o servidor de ferramentas. Isso anexa-no-windowaos argumentos de spawn, selecionandoqemu-system-x86_64-headlessque não precisa de uma janela Qt. A ferramenta de captura de tela baseada em screencap do Argent lê o framebuffer em memória corretamente sem uma janela visível.
Execute init no seu projeto
A partir da raiz do seu projeto:
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
Este comando aciona um assistente de instalação que:
- Instala
@swmansion/argentglobalmente - Detecta seu editor e registra o servidor MCP
- Copia skills, regras e definições de agente para seu espaço de trabalho
Prefere uma instalação manual?
npm install -g @swmansion/argent
argent init
Compartilhe o Argent com sua equipe (instalação com commit)
Por padrão, o Argent instala globalmente. Para versionar o Argent com seu repositório para que cada
colega de equipe obtenha a mesma configuração no npm install — sem instalação global por desenvolvedor, sem
argent init — escolha o modo local:
npx @swmansion/argent@latest init --local
# or, in a pnpm project:
pnpm dlx @swmansion/argent@latest init --local
Nota: em um projeto recém-
pnpm init-ed, o próprionpxpode se recusar a executar (verificaçãodevEnginesdo npm) — use o formuláriopnpm dlxnesse caso.
Isso adiciona @swmansion/argent ao devDependencies do seu projeto e escreve configurações MCP
que iniciam a cópia local do projeto (node node_modules/@swmansion/argent/dist/cli.js mcp).
Faça commit de package.json + seu lockfile, a configuração MCP gerada (.mcp.json,
.cursor/mcp.json, …), .argent/install.json e os arquivos de skills/regras/agentes.
Os colegas então apenas executam npm install.
Passe --global para forçar o modo padrão em scripts; --local e --global são
mutuamente exclusivos. Uma execução não interativa (--yes) usa o modo global por padrão, a menos que
o projeto já tenha optado pelo modo local (um .argent/install.json commitado, ou
@swmansion/argent declarado no package.json do próprio projeto).
No modo local, a configuração MCP commitada executa a cópia local do projeto, então o comando
argentnão está noPATHdos colegas. Observe quenpm installcompila as dependências nativas do Argent (tree-sitter) em cada máquina — pré-compiladas para macOS, Linux x64 e Windows x64; outros alvos (Linux arm64, Windows arm) compilam a partir do código-fonte e precisam de um toolchain C/C++.
Referência do CLI
| Comando | Descrição |
|---|---|
argent init | Instala e configura o MCP no workspace atual (--global por padrão, --local para uma devDependency com commit) |
argent install | Alias para o comando init |
argent update | Baixa a versão mais recente e atualiza a configuração do workspace (atua na instalação atual — tanto quando uma instalação global e uma devDependency do projeto coexistem; --global/--local selecionam explicitamente) |
argent uninstall | Remove o registro do servidor MCP e desinstala o pacote (--global/--local escolhem qual instalação — e suas configurações — é removida; execuções não interativas nunca removem uma instalação global coexistente) |
argent remove | Alias para o comando uninstall |
argent mcp | Inicia a instância do servidor MCP, usada internamente pelo agente |
argent tools | Lista as ferramentas expostas pelo tool-server (describe <name> para detalhes) |
argent run | Invoca uma ferramenta pelo nome |
argent server | Gerencia o tool-server compartilhado: start / status / stop / logs |
argent lens | Abre o Argent Lens vinculado a uma nova sessão de agente de codificação — Claude por padrão, --agent seleciona codex/gemini/opencode/cursor (macOS; atrás do sinalizador argent-lens — execute argent enable argent-lens primeiro) |
argent link | Roteia solicitações do cliente para um tool-server remoto |
argent unlink | Remove o link persistente do tool-server remoto |
argent enable | Ativa um sinalizador de recurso predefinido (--scope project para local ao projeto) |
argent disable | Desativa um sinalizador de recurso (--scope project para local ao projeto) |
argent flags | Lista os sinalizadores de recurso disponíveis e seus estados |
argent providers | Inspeciona e gerencia provedores de dispositivos externos: list / check / publish / withdraw / prune |
argent telemetry | Gerencia telemetria: status / enable / disable |
Editores Suportados
argent init detecta e configura automaticamente o MCP para:
| Editor | Local da configuração |
|---|---|
| Claude Code | .mcp.json (projeto) ou ~/.claude.json (global) |
| Cursor | .cursor/mcp.json (projeto) ou ~/.cursor/mcp.json (global) |
| VS Code | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json (global) |
| Zed | .zed/settings.json (projeto) ou ~/.config/zed/settings.json (global) |
| Gemini CLI | .gemini/settings.json |
| Codex CLI | .codex/config.toml (projeto) ou ~/.codex/config.toml (global) |
| Hermes | ~/.hermes/config.yaml (global) |
| opencode | opencode.json (projeto) ou ~/.config/opencode/opencode.json (global) |
| Kiro | .kiro/settings/mcp.json (projeto) ou ~/.kiro/settings/mcp.json (global) |
Privacidade
O Argent coleta telemetria de uso e diagnóstico com opt-out para nos ajudar a priorizar recursos e corrigir o que quebra.
Você pode optar por sair a qualquer momento:
argent telemetry disable # check status with: argent telemetry status
Para todos os detalhes — consulte o Aviso de Privacidade do Argent (Telemetria).
Licença
O Argent usa um modelo de licenciamento misto.
Código-fonte é lançado sob a Licença Apache 2.0.
Binários proprietários (os executáveis bin/<platform>/simulator-server e bin/darwin/ax-service por plataforma e os arquivos .dylib em native-devtools-ios) são propriedade intelectual da Software Mansion S.A. e são licenciados exclusivamente para uso dentro deste projeto. Descompilar, fazer engenharia reversa ou redistribuí-los sem permissão escrita explícita é proibido.
Ao usar o Argent, você reconhece e concorda com esta estrutura. Consulte LICENSE para todos os detalhes.
O Argent é criado pela Software Mansion
Desde 2012, a Software Mansion é uma agência de software com experiência na criação de aplicativos web e móveis. Somos Contribuidores Principais do React Native e especialistas em lidar com todos os tipos de problemas do React Native. Podemos ajudar você a construir seu próximo produto dos sonhos — Contrate-nos.