Argent

Um kit de ferramentas agêntico para controlar, depurar e perfilar aplicativos iOS e Android.

Documentação


argent-header

Ad Ad Ad

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:

PlataformaAlvosInteração
iOSSimuladores e iPhones físicosToque / gesto
AndroidEmuladores (AVDs) e dispositivos físicos via adbToque / gesto
TVApple TV (tvOS), Android TV / Google TV, Amazon Fire TV (Vega)D-pad / controle remoto
Desktop e webAplicativos Electron e Chromium (incl. React Native Web / Expo web) via CDPMouse / 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 fetch e 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.


argent showcase video gif


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) no PATH, e o pacote Android Emulator se quiser iniciar AVDs pelo Argent. Crie AVDs via Android Studio ou avdmanager.
  • Para Fire TV (Vega): o Vega SDK (CLI vega) no PATH
  • 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 (vmx para Intel, svm para AMD em /proc/cpuinfo) e que seu usuário possa ler/escrever /dev/kvm — na maioria das distros, isso significa entrar no grupo kvm:

    sudo usermod -aG kvm "$USER"
    # log out and back in so the new group takes effect
    
  • Modo GPU (-gpu swiftshader no Linux, com opção de substituição). A história do GPU no Linux para o emulador Android é confusa: -gpu auto frequentemente 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 host silenciosamente 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 swiftshader no 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 host acelerado por hardware (e muito mais rápido que lavapipe).

    Substitua com a variável de ambiente ARGENT_EMULATOR_GPU_MODE se você verificou que -gpu host funciona 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/kvm não for utilizável — a condição que causa uma desaceleração de 10–50× TCG-vs-KVM.

  • Imagem do sistema. Prefira as variantes default ou google_apis das imagens de sistema x86_64 para fluxos de trabalho de agente headless; google_apis_playstore adiciona consumo notável de CPU na inicialização devido aos serviços do Play. Sempre escolha x86_64 em 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 avd usam hw.gpu.enabled=no por padrão. O Argent substitui isso com um argumento explícito -gpu no 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 = 512
    

    AVDs 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 plataforma wayland e aborta no diálogo de consentimento de falha — opte por não participar exportando ARGENT_EMULATOR_NO_WINDOW=1 antes de iniciar o servidor de ferramentas. Isso anexa -no-window aos argumentos de spawn, selecionando qemu-system-x86_64-headless que 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/argent globalmente
  • 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óprio npx pode se recusar a executar (verificação devEngines do npm) — use o formulário pnpm dlx nesse 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 argent não está no PATH dos colegas. Observe que npm install compila 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

ComandoDescrição
argent initInstala e configura o MCP no workspace atual (--global por padrão, --local para uma devDependency com commit)
argent installAlias para o comando init
argent updateBaixa 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 uninstallRemove 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 removeAlias para o comando uninstall
argent mcpInicia a instância do servidor MCP, usada internamente pelo agente
argent toolsLista as ferramentas expostas pelo tool-server (describe <name> para detalhes)
argent runInvoca uma ferramenta pelo nome
argent serverGerencia o tool-server compartilhado: start / status / stop / logs
argent lensAbre 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 linkRoteia solicitações do cliente para um tool-server remoto
argent unlinkRemove o link persistente do tool-server remoto
argent enableAtiva um sinalizador de recurso predefinido (--scope project para local ao projeto)
argent disableDesativa um sinalizador de recurso (--scope project para local ao projeto)
argent flagsLista os sinalizadores de recurso disponíveis e seus estados
argent providersInspeciona e gerencia provedores de dispositivos externos: list / check / publish / withdraw / prune
argent telemetryGerencia telemetria: status / enable / disable

Editores Suportados

argent init detecta e configura automaticamente o MCP para:

EditorLocal 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)
opencodeopencode.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.

swm