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.4.1

Published

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

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.

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.

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. Kimi / DeepSeek por sessao web logada (proxies), se habilitados
  5. 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, use cancelar para sair sem trocar.

Arquitetura

  • index.ts: REPL do terminal.
  • src/agent.ts: monta o ToolContext, carrega o system prompt e registra as tools.
  • 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.