clawfast
v2.4.1
Published
CLAWFAST — agente de pentest no terminal. Com o clawfast você faz tudo.
Maintainers
Readme
clawfast - CLI local
Versao de terminal do clawfast. Ela reaproveita o prompt e as ferramentas do projeto, roda na sua maquina, sem login e sem limites de uso do app web, usando suas proprias chaves de modelo.
Como rodar
Na raiz do projeto:
corepack [email protected] cli
# ou, se o pnpm ja estiver no PATH:
pnpm cliNo Windows tambem da para usar o atalho:
cli\clawfast.batEsse atalho inicia em modo local aberto: ele define CLI_SHELL=cmd.exe,
CLI_SHELL_FLAG=/C e clawfast_CLI_GUARDRAILS=off apenas para essa sessao.
Digite seu pedido e o agente executa comandos no host local. Saia com /exit.
Shell no Windows
O CLI escolhe o shell automaticamente:
- Windows com Git Bash instalado: usa
bash.exe -c. - Windows sem Git Bash: usa
cmd.exe /C. - Linux/macOS: usa
/bin/bash -c.
Voce pode sobrescrever:
$env:CLI_SHELL="cmd.exe"
$env:CLI_SHELL_FLAG="/C"
pnpm cliOu apontar para Git Bash:
$env:clawfast_BASH_PATH="C:\Program Files\Git\bin\bash.exe"
pnpm cliModo local aberto
Por padrao, o CLI ainda respeita os guardrails de comandos perigosos. Para uma sessao local explicitamente aberta via PowerShell:
$env:CLI_SHELL="cmd.exe"
$env:CLI_SHELL_FLAG="/C"
$env:clawfast_CLI_GUARDRAILS="off"
pnpm cliIsso desliga os guardrails apenas no CLI local. A aplicacao web continua usando as configuracoes normais de seguranca.
Kali, ZAP, Nikto e Nuclei
No Windows, o caminho recomendado para ferramentas Kali e usar WSL/Kali. Primeiro verifique se a distro existe:
wsl -l -vSe precisar instalar a distro:
wsl --install -d kali-linuxDentro do Kali/WSL, instale os scanners:
wsl -d kali-linux -- bash -lc "sudo apt update && sudo apt install -y zaproxy nikto nuclei"Verifique as ferramentas:
wsl -d kali-linux -- bash -lc "zaproxy -h >/dev/null || owasp-zap -h >/dev/null; nikto -Version; nuclei -version"Exemplos de execucao a partir do Windows cmd.exe:
wsl -d kali-linux -- bash -lc "cd /mnt/c/Users/Usuario/OneDrive/Documentos/Corel/clawfast/SPRIT && nikto -host https://example.com -nointeractive -maxtime 10m -Format htm -output nikto.html"
wsl -d kali-linux -- bash -lc "cd /mnt/c/Users/Usuario/OneDrive/Documentos/Corel/clawfast/SPRIT && nuclei -u https://example.com -s low,medium,high,critical -jle nuclei.jsonl -me nuclei_markdown -timeout 10 -retries 1"Para OWASP ZAP via Docker no Windows cmd.exe:
docker pull ghcr.io/zaproxy/zaproxy:stable
docker run --rm -v "%cd%:/zap/wrk/:rw" -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py -t https://example.com -r zap_baseline.html -J zap_baseline.json -I
docker run --rm -v "%cd%:/zap/wrk/:rw" -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t https://example.com -m 5 -r zap_full.html -J zap_full.json -IScripts e arquivos
Scripts e codigo-fonte devem ser criados pela ferramenta de arquivo dentro do
workspace do agente, normalmente ./SPRIT. O terminal fica para executar,
testar, compilar, instalar dependencias e salvar relatorios/logs.
O CLI bloqueia criacao de codigo-fonte por comandos como echo > file.py,
cat <<EOF > file.py, tee file.py, Set-Content file.py, Out-File file.py
e curl -o file.py. Redirecionamento continua liberado para relatorios como
.txt, .json, .csv, .md, .html e .log.
OpenAI e ChatGPT
O CLI pode usar a OpenAI oficial por OPENAI_API_KEY. Isso nao e login do
ChatGPT: a API da OpenAI autentica chamadas com credenciais de API no servidor.
O modelo chat-latest foi adicionado como opcao por ser o caminho de API mais
proximo da experiencia ChatGPT Instant.
NVIDIA build
Provedor PRIMARIO do CLI. Pegue a chave em https://build.nvidia.com/ e use o endpoint OpenAI-compatible de chat completion:
NVIDIA_API_KEY=...
NVIDIA_BASE_URL=https://integrate.api.nvidia.com/v1Modelos usados pelo CLI (wiring via .chat(...), chat-completions):
mistralai/mistral-medium-3.5-128bz-ai/glm-5.1qwen/qwen3.5-397b-a17b
Configuracao
As chaves ficam em ../.env.local, que nao deve ser versionado:
NVIDIA_API_KEY=...
NVIDIA_BASE_URL=https://integrate.api.nvidia.com/v1
OPENAI_API_KEY=...Variaveis opcionais:
CLI_SHELL: shell usado para executar comandos.CLI_SHELL_FLAG: flag de execucao do shell (-c,/C,-Command).CLI_WORKDIR: diretorio de trabalho do agente. Padrao:./SPRIT.clawfast_BASH_PATH: caminho parabash.exeno Windows.clawfast_CLI_GUARDRAILS: useoffpara desligar guardrails no CLI.clawfast_CLI_GUARDRAILS_CONFIG: configuracao manual no formatoid:true.clawfast_CLI_DUMP_SYSTEM_PROMPT: use1para salvar o prompt completo emSPRIT/system-prompt.txtao iniciar o CLI.
O CLI carrega o prompt por import { systemPrompt } from "@/lib/system-prompt"
e valida marcadores obrigatorios antes de chamar qualquer modelo. Se o prompt
vier incompleto, a sessao falha em vez de usar uma versao reduzida. Use
/system para ver o prompt ativo, a fonte e a checagem.
Modelos
A ordem de fallback do CLI e CLI_MODEL_CHAIN em
../lib/ai/providers.ts:
- NVIDIA
mistralai/mistral-medium-3.5-128b, seNVIDIA_API_KEYestiver configurada - NVIDIA
z-ai/glm-5.1 - NVIDIA
qwen/qwen3.5-397b-a17b - Kimi / DeepSeek por sessao web logada (proxies), se habilitados
- OpenAI
chat-latest, seOPENAI_API_KEYestiver configurada
Somente provedores com chave configurada entram na cadeia. Se um modelo falhar, o CLI tenta o proximo automaticamente.
Os modelos NVIDIA usam o endpoint de chat-completions (.chat(...)), que faz
tool-calling de verdade — as ferramentas do agente (run_terminal_cmd, file,
todo_write) disparam normalmente.
Dentro do terminal voce pode escolher o modelo da sessao:
/model abre o seletor de modelos
2 fixa o segundo modelo da lista no seletor
/model openai
/model auto volta para fallback automaticoQuando um modelo fica fixo, o CLI usa so ele nas proximas mensagens. O modo
auto volta a tentar a cadeia de fallback na ordem configurada. Dentro do
seletor, use cancelar para sair sem trocar.
Arquitetura
index.ts: REPL do terminal.src/agent.ts: monta oToolContext, carrega o system prompt e registra as tools.src/local-sandbox.ts: executa comandos viachild_process/fsno host.src/local-sandbox-manager.ts: manager minimo que entrega o sandbox local.src/console-writer.ts: imprime a saida de terminal das tools no stdout.
Convex, WorkOS, Trigger.dev, E2B, Stripe, rate limits e entitlements do app web ficam fora do CLI local.
