reprompt

Servidor MCP de análisis de prompts: puntúa prompts, busca en el historial, detecta credenciales filtradas y escanea sesiones de codificación con IA.

Documentación

ctxray

Descubre cómo usas realmente la IA.

Haz una radiografía de tus sesiones de codificación con IA en Claude Code, Cursor, ChatGPT y 6 herramientas más. Descubre tus patrones, encuentra tokens desperdiciados, detecta secretos filtrados — todo localmente, nada sale de tu máquina.

PyPI version Python 3.10+ License: MIT Tests Coverage

Inicio rápido

pip install ctxray

ctxray scan                    # discover prompts from your AI tools
ctxray wrapped                 # your AI coding persona + shareable card
ctxray insights                # your patterns vs research-optimal
ctxray privacy                 # what sensitive data you've exposed

ctxray demo

Funciona en tu pipeline

Integra ctxray en tu CI como un control de calidad de prompts. Sin LLM, sin clave de API, sin red — <50ms por prompt.

# .github/workflows/prompt-quality.yml
- uses: ctxray/ctxray@main
  with:
    score-threshold: 43    # experimentally validated quality threshold
    model: claude          # model-specific rules (claude/gpt/gemini)
    comment-on-pr: true
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/ctxray/ctxray
    rev: v3.0.0
    hooks:
      - id: ctxray-lint-score   # fail below quality threshold
      # or: id: ctxray-lint-claude  # Claude-specific rules + threshold
  • Determinista — mismo prompt, misma puntuación, en cada ejecución. Sin comprobaciones LLM poco fiables.
  • Aislado de red — funciona en redes offline y privadas. Todo el análisis permanece en tu infraestructura.
  • Configurable.ctxray.toml o [tool.ctxray.lint] en pyproject.toml. Reglas por proyecto.

Configuración completa: GitHub Action · pre-commit · .ctxray.toml

Lo que descubrirás

Tu persona de codificación con IA

ctxray wrapped genera un informe estilo Spotify Wrapped de tus interacciones con IA — tu persona (¿Depurador? ¿Arquitecto? ¿Explorador?), patrones principales y una tarjeta compartible.

Tus patrones de prompts

ctxray insights compara tus hábitos reales de prompting con puntos de referencia respaldados por investigación. ¿Son tus prompts lo suficientemente específicos? ¿Cargas las instrucciones al principio? ¿Cuánto contexto proporcionas?

Tu exposición de privacidad

ctxray privacy --deep escanea cada prompt que has enviado en busca de claves de API, tokens, contraseñas y PII. Ve exactamente qué has compartido con cada herramienta de IA.

Diagnóstico completo de prompts

ctxray check "your prompt" puntúa, analiza y reescribe en un solo comando — sin LLM, <50ms.

Validado experimentalmente en más de 3000 llamadas LLM en 8 modelos (1.5B → 27B): los prompts con puntuación igual o superior a 43 alcanzan ~93% de tasa de aprobación en pruebas de código ejecutable. Por debajo de 43 promedian 72% o menos. ctxray te dice en qué lado estás y qué corregir — consulta experiments/RESULTS.md para los datos completos entre modelos.

ctxray check "fix the auth bug in login.ts"        # threshold pass/fail + diagnostics
ctxray check "fix bug" --model claude               # model-specific scoring for Claude
ctxray check "refactor middleware" --threshold 50    # custom threshold for stricter teams
ctxray check — good prompt
Más capturas de pantalla

ctxray rewrite — mejora de prompts basada en reglas

ctxray rewrite — before/after

ctxray build — ensambla prompts a partir de componentes

ctxray build — structured prompt assembly

Cómo se ve un prompt malo

ctxray check — weak prompt

Todos los comandos

Descubre tus patrones

ComandoDescripción
ctxray wrappedPersona de codificación con IA + tarjeta compartible
ctxray insightsPatrones personales vs puntos de referencia óptimos según investigación
ctxray toolsComparación entre herramientas — cómo difieren tus hábitos en Claude Code / Cursor / ChatGPT
ctxray sessionsPuntuaciones de calidad de sesión con detección de señales de frustración
ctxray agentAnálisis de flujo de trabajo del agente — bucles de error, patrones de herramientas, eficiencia
ctxray repetitionDetección de repeticiones entre sesiones — identifica prompts recurrentes
ctxray patternsDebilidades personales de prompts — carencias recurrentes por tipo de tarea
ctxray distillExtrae turnos importantes de conversaciones con puntuación de 6 señales
ctxray projectsDesglose de calidad por proyecto
ctxray styleHuella de prompting con --trends para seguimiento de evolución
ctxray privacyVe qué datos enviaste y a dónde — rutas de archivos, errores, exposición de PII

Optimiza tus prompts

ComandoDescripción
ctxray check "prompt"Diagnóstico completo — puntuación + análisis + reescritura + aprobado/reprobado por umbral
ctxray score "prompt"Puntuación de 0-100 respaldada por investigación con más de 30 características
ctxray score "prompt" --model claudePuntuación específica por modelo — ajustes para Claude, GPT o Gemini
ctxray rewrite "prompt"Mejora basada en reglas — eliminación de relleno, reestructuración, limpieza de lenguaje evasivo
ctxray build "task"Construye prompts a partir de componentes — tarea, contexto, archivos, errores, restricciones
ctxray compress "prompt"Compresión de prompts en 4 capas (ahorro típico del 40-60% de tokens)
ctxray compare "a" "b"Análisis de prompts lado a lado (o --best-worst para selección automática)
ctxray lintLinter configurable con soporte para CI/GitHub Action

Gestionar

ComandoDescripción
ctxrayPanel instantáneo — prompts, sesiones, puntuación media, categorías principales
ctxray scanDescubre automáticamente prompts de 9 herramientas de IA
ctxray reportAnalíticas completas: frases populares, clústeres, patrones (--html para el panel)
ctxray digestResumen semanal comparando el período actual con el anterior
ctxray template save|list|useGuarda y reutiliza tus mejores prompts
ctxray distill --exportRecupera el contexto cuando una sesión se agota — pega en una sesión nueva
ctxray initGenera la configuración de .ctxray.toml para tu proyecto

Herramientas de IA compatibles

HerramientaFormatoAuto-descubierta por scan
Claude CodeJSONL
Codex CLIJSONL
Cursor.vscdb
AiderMarkdown
Gemini CLIJSON
Cline (VS Code)JSON
OpenClaw / OpenCodeJSON
ChatGPTJSONVía ctxray import
Claude.aiJSON/ZIPVía ctxray import

Instalación

pip install ctxray              # core (all features, zero config)
pip install ctxray[chinese]     # + Chinese prompt analysis (jieba)
pip install ctxray[mcp]         # + MCP server for Claude Code / Continue.dev / Zed

Escaneo automático después de cada sesión

ctxray install-hook             # adds post-session hook to Claude Code

Extensión de navegador

Captura prompts de ChatGPT, Claude.ai y Gemini directamente en tu navegador. La insignia de calidad en vivo muestra el nivel del prompt mientras escribes — haz clic en "Rewrite & Apply" para mejorar y reemplazar el texto directamente en el cuadro de entrada.

  1. Instala la extensión desde Chrome Web Store o Firefox Add-ons
  2. Conéctate al CLI: ctxray install-extension
  3. Verifica: ctxray extension-status

Los prompts capturados se sincronizan localmente mediante Native Messaging — nada sale de tu máquina.

Integración con CI

GitHub Action

# .github/workflows/prompt-lint.yml
name: Prompt Quality
on: pull_request

jobs:
  lint:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
      - uses: ctxray/ctxray@main
        with:
          score-threshold: 43     # experimentally validated (below = 83% failure rate)
          model: claude           # optional: model-specific rules
          strict: true
          comment-on-pr: true

pre-commit

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/ctxray/ctxray
    rev: v3.0.0
    hooks:
      - id: ctxray-lint-score     # quality threshold gate (score >= 43)
      # - id: ctxray-lint-claude  # Claude-specific rules + threshold
      # - id: ctxray-lint-gpt    # GPT-specific rules + threshold

CLI directo

ctxray lint --score-threshold 43  # exit 1 below experimentally validated threshold
ctxray lint --score-threshold 50  # or set your own bar
ctxray lint --model claude        # model-specific lint rules
ctxray lint --strict              # exit 1 on warnings
ctxray lint --json                # machine-readable output

Configuración del proyecto

ctxray init   # generates .ctxray.toml with all rules documented
# .ctxray.toml (or [tool.ctxray.lint] in pyproject.toml)
[lint]
score-threshold = 43   # experimentally validated quality threshold
model = "claude"       # model-specific rules (claude/gpt/gemini)

[lint.rules]
min-length = 20
short-prompt = 40
vague-prompt = true
debug-needs-reference = true
Ciencia de Prompts — base de investigación

Ciencia de Prompts

La puntuación está calibrada con 10 artículos revisados por pares que cubren más de 30 características en 5 dimensiones:

DimensiónQué mideArtículos clave
EstructuraMarkdown, bloques de código, restricciones explícitasPrompt Report (2406.06608)
ContextoRutas de archivos, mensajes de error, especificaciones de E/S, casos límiteZi+ (2508.03678), Google (2512.14982)
PosiciónUbicación de las instrucciones relativa al contextoStanford (2307.03172), Veseli+ (2508.07479), Chowdhury (2603.10123)
RepeticiónRedundancia que degrada la atención del modeloGoogle (2512.14982)
ClaridadLegibilidad, longitud de frases, ambigüedadSPELL (EMNLP 2023), PEEM (2603.10477)

Hallazgos validados de forma cruzada que informan nuestro motor:

  • El sesgo de posición es arquitectónico — presente desde la inicialización, no aprendido. Cargar las instrucciones al principio es efectivo para prompts por debajo del 50% de la ventana de contexto (3 artículos coinciden)
  • La compresión moderada mejora la salida — la eliminación de relleno basada en reglas no solo ahorra tokens, mejora el rendimiento del LLM (2505.00019)
  • La calidad del prompt es medible de forma independiente — la puntuación solo con el prompt predice la calidad de la salida sin ver la respuesta (ACL 2025, 2503.10084)
  • Umbral de calidad en puntuación ~43 — nuestro propio experimento (30 prompts, 5 niveles, 2 modelos) encontró una función escalonada: por debajo de 43, 83% de tasa de fallo; por encima de 43, 94% de éxito (Pearson r=0.56, Spearman ρ=0.64)
  • Las preferencias de formato dependen del modelo — XML beneficia a Claude, Markdown beneficia a GPT, pero tener cualquier estructura importa más que el formato específico (PromptBridge 2512.01420)

La puntuación específica por modelo (--model claude/gpt/gemini) aplica ajustes respaldados por investigación para las preferencias y sensibilidades conocidas de cada modelo.

Todo el análisis se ejecuta localmente en <1ms por prompt. Sin llamadas LLM, sin solicitudes de red.

Cómo funciona — arquitectura

Cómo funciona

 Data sources:
 ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
 │Claude Code│ │  Cursor  │ │  Aider   │ │ ChatGPT  │ │ 5 more.. │
 └─────┬────┘ └─────┬────┘ └─────┬────┘ └─────┬────┘ └─────┬────┘
       └─────────────┴───────────┴─────────────┴─────────────┘
                                 │
                    scan -> dedup -> store -> analyze
                                 │
              ┌──────────────────┼──────────────────┐
              v                  v                  v
        ┌──────────┐     ┌──────────────┐    ┌──────────┐
        │ insights │     │  patterns    │    │ sessions │
        │ wrapped  │     │  repetition  │    │ projects │
        │ style    │     │  privacy     │    │ agent    │
        └──────────┘     └──────────────┘    └──────────┘

Decisiones clave de diseño:

  • Solo reglas, sin LLM — la puntuación y la reescritura usan regex + TF-IDF + heurísticas de investigación. Determinista, privado, <1ms por prompt.
  • Patrón adaptador — cada herramienta de IA tiene un parser que normaliza a un modelo común Prompt. Añadir una nueva herramienta = un archivo.
  • Deduplicación de dos capas — SHA-256 para coincidencias exactas, similitud coseno TF-IDF para casi duplicados.
  • Calibrado con investigación — 10 artículos revisados por pares informan los pesos de puntuación.
Destilación de Conversaciones

Destilación de Conversaciones

ctxray distill puntúa cada turno de una conversación usando 6 señales:

  • Posición — los primeros/últimos turnos contienen el encuadre y las conclusiones
  • Longitud — los turnos sustanciales contienen más información
  • Disparador de herramientas — los turnos que provocan llamadas a herramientas impulsan la acción
  • Recuperación de errores — los turnos que siguen a errores muestran resolución de problemas
  • Cambio semántico — los cambios de tema marcan los límites de la conversación
  • Unicidad — frases novedosas vs seguimientos repetitivos

El tipo de sesión (depuración, desarrollo de funciones, exploración, refactorización) se detecta automáticamente y los pesos de las señales se adaptan en consecuencia.

¿Por qué ctxray?

Después de que Promptfoo se uniera a OpenAI y Humanloop se uniera a Anthropic, ctxray es la alternativa independiente y de código abierto para entender tus interacciones con IA.

  • 100% local — tus prompts nunca salen de tu máquina
  • Sin LLM necesario — análisis puramente basado en reglas, <50ms por prompt
  • 9 herramientas de IA — la única herramienta que funciona en Claude Code, Cursor, ChatGPT y más
  • Respaldado por investigación — calibrado con 10 artículos revisados por pares, no con corazonadas

Publicado anteriormente como reprompt-cli. Misma herramienta, nuevo nombre, namespace limpio.

Privacidad

  • Todo el análisis se ejecuta localmente. Ningún prompt sale de tu máquina.
  • ctxray privacy muestra exactamente qué has enviado a cada herramienta de IA.
  • La telemetría opcional envía solo vectores de características anónimos — nunca el texto de los prompts.
  • Código abierto: audita exactamente qué se recopila.

Enlaces

Contribuciones

Consulta CONTRIBUTING.md para la configuración de desarrollo y las pautas.

Licencia

MIT