npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

clawfast

v2.10.3

Published

CLAWFAST — agente de pentest no terminal. Com o clawfast você faz tudo.

Downloads

1,519

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 cli

No Windows tambem da para usar o atalho:

cli\clawfast.bat

Esse 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 cli

Ou apontar para Git Bash:

$env:clawfast_BASH_PATH="C:\Program Files\Git\bin\bash.exe"
pnpm cli

Modo 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 cli

Isso 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 cli

Em 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 -v

Se precisar instalar a distro:

wsl --install -d kali-linux

Dentro 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 -I

Scripts 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/v1

Modelos usados pelo CLI (wiring via .chat(...), chat-completions):

  • mistralai/mistral-medium-3.5-128b
  • z-ai/glm-5.1
  • qwen/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 para bash.exe no Windows.
  • clawfast_CLI_GUARDRAILS: use off para desligar guardrails no CLI.
  • clawfast_CLI_GUARDRAILS_CONFIG: configuracao manual no formato id:true.
  • clawfast_CLI_DUMP_SYSTEM_PROMPT: use 1 para salvar o prompt completo em SPRIT/system-prompt.txt ao iniciar o CLI.
  • CLAWFAST_NO_FULLSCREEN (ou CLAWFAST_FULLSCREEN=0): use 1 para 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:

  1. NVIDIA mistralai/mistral-medium-3.5-128b, se NVIDIA_API_KEY estiver configurada
  2. NVIDIA z-ai/glm-5.1
  3. NVIDIA qwen/qwen3.5-397b-a17b
  4. OpenAI chat-latest, se OPENAI_API_KEY estiver 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 automatico

Quando 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 o ToolContext, 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 via child_process/fs no 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.