clawfast
v2.10.3
Published
CLAWFAST — agente de pentest no terminal. Com o clawfast você faz tudo.
Downloads
1,519
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.
Interface (tela cheia)
Em um terminal de verdade (TTY), o CLI roda em tela cheia no estilo opencode: ao abrir, o conteudo do terminal some e o clawfast ocupa a tela inteira; ao sair, seu terminal volta exatamente como estava (nada fica no historico de scroll). O layout tem tres faixas:
- Topo (fixo): barra com a marca + versao e
operador@host · workspace. - Meio: a conversa. Comeca com o wordmark CLAWFAST grande e centralizado, que some na primeira resposta.
- Embaixo (fixo): a caixa de mensagem (barra verde a esquerda) e a barra de status com o modelo ativo e os atalhos.
Rolar a conversa
A tela cheia usa um buffer proprio (o scroll nativo do terminal nao existe na tela alternativa), entao o clawfast oferece o seu:
- PgUp / PgDn rolam por pagina.
- Shift + ↑/↓ rolam linha a linha.
- Shift + End volta para a saida mais recente.
Quando voce esta no fim, a conversa gruda automaticamente na saida nova; quando rola pra tras, a leitura fica ancorada e nao pula com texto chegando.
Por padrao o mouse fica livre para selecionar/copiar texto e usar o clique direito
para colar. Ctrl+V e Shift+Insert tambem leem o clipboard do sistema. Para
ativar a roda do mouse dentro da conversa, inicie com CLAWFAST_MOUSE=1; nesse
modo, segure Shift enquanto arrasta para selecionar no Windows Terminal/VS Code.
Menus e seletores
O dropdown de /comandos e os seletores de /model e /api abrem em popup
acima da caixa, com a linha selecionada destacada por uma barra amarela. O
/model mostra somente os catalogos completos dos provedores. Dentro de um seletor:
- ↑/↓ navega, Enter seleciona.
- Esc volta para o menu anterior (ex.: do catalogo de busca de volta ao
/model). - Ctrl+C cancela e fecha o seletor.
Desligar a tela cheia
Se o seu terminal nao se der bem com a tela cheia, volte ao modo em linha (com o scroll/selecao nativos do terminal):
$env:CLAWFAST_NO_FULLSCREEN="1" # ou CLAWFAST_FULLSCREEN=0
pnpm cliEm saida redirecionada / nao-TTY (pipe, arquivo) a tela cheia ja fica desligada sozinha.
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.CLAWFAST_NO_FULLSCREEN(ouCLAWFAST_FULLSCREEN=0): use1para desligar a interface em tela cheia e voltar ao modo em linha. Veja Interface (tela cheia).
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 - 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, Esc volta ao menu anterior e Ctrl+C cancela sem trocar (veja
Interface (tela cheia)).
Arquitetura
index.ts: REPL do terminal.src/agent.ts: monta oToolContext, carrega o system prompt e registra as tools.src/screen.ts: controlador da tela cheia (alternate screen, banner fixo, viewport rolavel com buffer proprio, barra de baixo, roda do mouse).src/interactive-input.ts: caixa de input raw-mode, dropdown de/, seletores.src/ui.ts: chrome (barra do topo, wordmark/hero, banner inline de fallback).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.
