
Pruebas de seguridad ofensiva impulsadas por IA mediante agentes autónomos, directamente en tu terminal.
<h1 align="center">Pensar Apex</h1> <p align="center"> Pruebas de penetración impulsadas por IA mediante agentes autónomos — directamente en tu terminal. Ejecuta pentests de caja negra y caja blanca que exploran, razonan y descubren vulnerabilidades reales. </p> <p align="center"> ¿Quieres ejecutarlo desde la nube o integrarlo con tu CI/CD? Consulta <a href="https://docs.pensar.dev/console">Pensar Console</a>. </p> <p align="center"> <a href="https://www.npmjs.com/package/@pensar/apex"><img src="https://img.shields.io/npm/v/@pensar/apex?label=latest" alt="npm version"></a> <a href="https://www.npmjs.com/package/@pensar/apex"><img src="https://img.shields.io/npm/v/@pensar/apex/canary?label=prerelease&color=yellow" alt="npm prerelease version"></a> <!-- <a href="https://www.npmjs.com/package/@pensar/apex"><img src="https://img.shields.io/npm/dm/@pensar/apex" alt="npm downloads"></a> --> <a href="https://github.com/pensarai/apex/blob/canary/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue" alt="Apache 2.0 License"></a> <a href="https://docs.pensar.dev/apex"><img src="https://img.shields.io/badge/docs-docs.pensar.dev/apex-purple?logo=readthedocs&logoColor=white" alt="Documentation"></a> <a href="https://discord.gg/pensar"><img src="https://img.shields.io/badge/Discord-Join%20Us-5865F2?logo=discord&logoColor=white" alt="Discord"></a> </p> <!-- <p align="center"> <img src="https://raw.githubusercontent.com/pensarai/apex/canary/screenshot.png" alt="Pensar Apex Screenshot" width="800"> </p> --> ## Casos de uso ### Desarrolladores - Ejecuta `/pentest` antes de fusionar un PR — detecta vulnerabilidades con la misma naturalidad que ejecutar pruebas - Obtén hallazgos accionables con puntuaciones de severidad, evidencia y correcciones sugeridas — sin necesidad de conocimientos de seguridad - Intégralo en CI/CD mediante comandos CLI headless o Pensar Console ### Ingenieros de seguridad - Despliega pruebas de enjambre impulsadas por agentes en grandes superficies de ataque - Usa el modo `/operator` para investigación manual, encadenamiento de exploits y validación - Automatiza flujos de trabajo de pruebas repetitivas con memoria persistente que se acumula entre compromisos - Escala entre equipos y proyectos a través de Pensar Console ## Instalación | Método | Comando | | ------------------------------- | ---------------------------------------------------- | | **Instalación rápida** (macOS/Linux) | `curl -fsSL https://pensarai.com/install.sh \| bash` | | **Homebrew** | `brew tap pensarai/tap && brew install apex` | | **npm** | `npm install -g @pensar/apex` | | **Windows** (PowerShell) | `irm https://www.pensarai.com/apex.ps1 \| iex` | ## Uso Abre la TUI de Apex: ```bash pensar ``` ### CLI headless Ejecuta pentests sin la TUI para scripting, CI o integración con evalgate: ```bash # Basic pentest pensar pentest --target https://example.com # With extended thinking and task-driven mode pensar pentest --target https://example.com --extended-thinking --task-driven # Whitebox (with source code access) pensar pentest --target https://example.com --cwd ./my-app # Targeted pentest with specific objectives pensar targeted-pentest --target https://example.com --objective "Test authentication bypass" ``` | Flag | Comando | Descripción | | ------------------------------ | ------------------------- | ---------------------------------------------- | | `--target <url>` | pentest, targeted-pentest | URL objetivo (obligatorio) | | `--cwd <path>` | pentest | Ruta del código fuente para el modo caja blanca | | `--mode <mode>` | pentest | `exfil` para pivoting y extracción de flags | | `--model <model>` | pentest, targeted-pentest | Modelo de IA (por defecto: seleccionado automáticamente) | | `--extended-thinking` | pentest | Habilita el razonamiento extendido para modelos compatibles | | `--task-driven` | pentest | Habilita la arquitectura basada en tareas (experimental) | | `--prompt <text\|@file>` | pentest | Guía personalizada para el agente | | `--threat-model <text\|@file>` | pentest | Modelo de amenazas para guiar las pruebas | | `--objective <text>` | targeted-pentest | Objetivo de las pruebas (repetible) | ### Inferencia con Hoonify Conecta **Hoonify** en `/providers` o configura `HOONIFY_API_KEY`, luego selecciona un modelo descubierto en `/models`. Los comandos headless aceptan `--model-provider hoonify --model <catalog-model-id>`. Consulta [configuración de Hoonify](https://github.com/pensarai/apex/blob/canary/docs/hoonify.md) para el descubrimiento de modelos, presupuestos de tokens y comprobaciones en vivo. ### Endpoints de inferencia personalizados Integra un endpoint compatible con OpenAI y un token bearer mediante la configuración `customProviders` o la variable de entorno del worker `APEX_CUSTOM_PROVIDERS`. Selecciónalo con `--model-provider <id> --model <model>`, o elige sus modelos declarados en el selector `/models` del operador. Consulta [configuración de inferencia personalizada](https://github.com/pensarai/apex/blob/canary/docs/custom-inference.md) para ajustes de GLM, configuración de trabajos headless y una prueba de conexión en vivo. ### Registro de logs Apex enruta el registro de diagnóstico/operativo a través de un logger estructurado centralizado (`src/core/logger`). Escribe JSON de una línea en **stderr** cuando la salida no es una TTY — manteniéndolo separado del stdout del programa y fácil de enviar a un pipeline de logs (p. ej. CloudWatch) — y una salida bonita y coloreada en una terminal interactiva. La salida CLI/TUI orientada al usuario permanece en stdout. Establece el nivel (de mayor a menor verbosidad: `debug` < `info` < `warn` < `error`, por defecto `info`): ```bash pensar pentest --target https://example.com --log-level debug # or --verbose / --quiet PENSAR_LOG_LEVEL=debug pensar ... # via environment PENSAR_DEBUG=1 pensar ... # back-compat alias for debug ``` Orden de resolución: flag CLI → `PENSAR_LOG_LEVEL` → `PENSAR_DEBUG` → por defecto `info`. `PENSAR_LOG_FORMAT=json|pretty` fuerza el formato de salida. Cuando Apex se ejecuta como agente gestionado, `PENSAR_LOG_LEVEL` es proporcionado por el entorno del host. ### Trazabilidad con W&B Weave Envía trazas de agente a nivel de paso a Weights & Biases Weave para análisis y ajuste fino: ```bash export WANDB_API_KEY=your-key export WANDB_ENTITY=your-entity # WANDB_PROJECT defaults to "apex-traces" pensar pentest --target https://example.com ``` Las trazas incluyen pasos de razonamiento, llamadas a herramientas, uso de tokens y puntos de control de estado. Cuando no se configuran las credenciales, la trazabilidad se desactiva silenciosamente. ### OpenTelemetry (Observabilidad) Apex emite spans de OpenTelemetry para ejecuciones de agentes, llamadas a LLM y ejecuciones de herramientas a través de `@opentelemetry/api`. Los spans son no-ops a menos que tu proceso registre un SDK de OpenTelemetry como proveedor de tracer global; Apex no incluye ningún SDK. Registra un SDK antes de importar código de Apex: - **Sentry**: instala `@sentry/node` ≥ 9.27 y añade `Sentry.vercelAIIntegration()` a tus integraciones de `Sentry.init`. - **Cualquier backend OTel** (Honeycomb, Tempo, Datadog, etc.): registra `@opentelemetry/sdk-node` con un exportador OTLP. Los spans siguen las [convenciones semánticas de OTel GenAI](https://opentelemetry.io/docs/specs/semconv/gen-ai/). Por defecto solo se captura la forma del span (modelo, recuentos de tokens, latencia, nombres de herramientas); establece `AI_TRACE_RECORD_PAYLOADS=true` para registrar también prompts, E/S de herramientas y salidas. ## Contenedor de Kali Linux (Opcional) Para **mejor rendimiento**, ejecuta Apex en el contenedor de Kali Linux incluido con herramientas de pentest preconfiguradas: ```bash cd container cp env.example .env # add your API keys docker compose up --build -d docker compose exec kali-apex bash ``` Dentro del contenedor, ejecuta: ```bash pensar ``` --- ### ⚠️ Uso responsable Este repositorio contiene herramientas para **pruebas de seguridad autorizadas** únicamente. Antes de usarlo, lee y acepta la [Divulgación de uso responsable](https://github.com/pensarai/apex/blob/canary/RESPONSIBLE_USE.md).