AIC

Servidor MCP local-first que se sitúa de forma transparente entre tu editor de IA y cualquier modelo, clasificando la intención, seleccionando los archivos adecuados y compilando contexto enfocado, sin invocación manual.

Documentación

Agent Input Compiler (AIC)

License npm version Local-first Telemetry MCP Compatible Cursor Directory

Servidor MCP local-first que compila contexto enfocado para Cursor y Claude Code: clasifica la intención, selecciona archivos relevantes, elimina ruido y bloquea secretos antes de que lleguen al modelo.

AIC no reemplaza tu editor. Funciona junto con editores compatibles con MCP y mejora el contexto que envían al modelo.

AIC in action


Por qué los desarrolladores usan AIC

Las herramientas de codificación con IA a menudo incorporan demasiado contexto irrelevante. Eso desperdicia tokens, debilita el seguimiento de instrucciones y aumenta las alucinaciones.

AIC añade un paso de compilación antes de que el modelo se ejecute:

  • clasifica la tarea
  • selecciona los archivos más relevantes
  • bloquea contenido sensible o irrelevante
  • comprime el resultado para ajustarse a un presupuesto de tokens
  • devuelve un paquete de contexto acotado sobre el que el modelo puede razonar

El resultado es una entrada más pequeña, más relevante y más inspeccionable.

Con qué ayuda

ProblemaQué hace AIC
Demasiado contexto irrelevanteSelecciona y comprime solo los archivos que importan
Calidad de contexto inconsistenteProduce contexto compilado determinista para la misma tarea y base de código
Tokens desperdiciadosElimina ruido y comprime progresivamente el contenido para mantenerse dentro del presupuesto
Riesgo de exposición de secretosBloquea secretos, rutas excluidas y cadenas sospechosas de inyección de prompts localmente
Sin visibilidad de lo que vio el modeloMuestra resúmenes de compilación, el prompt compilado en disco bajo .aic/ en el proyecto, y puntuaciones opcionales de selección por archivo vía MCP aic_last (ver Detalle de selección después de los ejemplos a continuación)
Retraso del editor por compactación de contextoEl contexto compilado está limitado por un presupuesto duro de tokens, por lo que su contribución al llenado de la ventana es predecible independientemente del tamaño del repositorio; esto deja margen estable en la ventana de contexto y reduce la presión sobre la compactación

Salida real capturada

Los ejemplos a continuación reflejan el marco de salida estándar compartido impreso por la CLI de diagnóstico (status, last, chat-summary, projects, quality — o pnpm aic al desarrollar este repositorio con devMode): cada tabla comienza con una línea de título y una regla de ancho completo, luego una línea hero (siempre presente), otra regla, filas body de ancho fijo (las etiquetas padRow tienen 32 caracteres de ancho en show aic status y 30 caracteres de ancho en las otras tablas de diagnóstico excepto el registro projects de múltiples columnas), y una regla de cierre opcional más nota al pie (ambas omitidas en el registro projects, que termina después de sus filas body). Los valores son representativos (no de una sesión textual única); los totales provienen de tu base de datos local (~/.aic/aic.sqlite) y del proyecto actual, por lo que tu salida no coincidirá exactamente con estas cifras.

show aic status

Status = project-level AIC status.
──────────────────────────────────────────────────────────────────────────────
AIC optimised context across 8,743 context builds; cumulative raw → sent tokens 6.80B → 100.57M (68:1 ratio); 37.1% cache hit rate; 98.5% context precision (weighted).
──────────────────────────────────────────────────────────────────────────────
Context builds (total)            8,743
Context builds (today, UTC)       94
Cumulative raw → sent tokens      6.80B → 100.57M (68:1 ratio)
Tokens excluded                   6,695,482,938
──────────────────────────────────────────────────────────────────────────────
Context window used (last run)    72.4%
Cache hit rate                    37.1%
Context precision (weighted)      98.5%
──────────────────────────────────────────────────────────────────────────────
Guard scans (lifetime)                 count
  command-injection                  670,061
  excluded-file                           59
  prompt-injection                     4,743
  secret                                  16
Top request types                 count  share
  general                         5,043  69.9%
  docs                            1,098  15.2%
  bugfix                          1,072  14.9%
Sessions total time               509h 14m
Last compilation                  fix session time always showing — in status
                                  4 / 591 files · 1,842 tokens · 2 min ago
──────────────────────────────────────────────────────────────────────────────
Installation (global MCP server)  OK
──────────────────────────────────────────────────────────────────────────────
Context precision (weighted): % of repo content automatically filtered per context build.
Context window used: % of token budget filled.

Una ventana de tiempo móvil en el estado (show aic status 7d o status --window 7) añade una fila body de Rango de tiempo (Last 7 days cuando N es 7) y cambia el encabezado del bloque de guardia de Guard scans (lifetime) a Guard scans (Nd) (mismo N que la ventana) para que la etiqueta coincida con la ventana agregada de guardia. Ver implementation-spec.md — aic_status y mcp/src/format-diagnostic-output.ts.

show aic last

Last = most recent compilation.
──────────────────────────────────────────────────────────────────────────────
AIC optimised context by intent: files forwarded 5 of 567; tokens compiled 595 of 123,500 allocated (0.5% of token budget); token reduction 99.9% (raw to compiled).
──────────────────────────────────────────────────────────────────────────────
Context builds                  7,666
Intent                          task 318 spec-compile-cache migration 004 SqliteSpecCompileCacheStore
Files                           5 selected / 567 total
Tokens compiled                 595
Compiled in                     2.4 s
Context window used             0.5%
Compiled                        2 min ago
Editor                          claude-code
Session time                    2h 14m
Cache                           miss
Guard (this run)                2 findings across 5 files (2 files blocked)
Compiled prompt                 Available (595 tokens) — .aic/last-compiled-prompt.txt (project root)
──────────────────────────────────────────────────────────────────────────────
Context window used: % of token budget filled.

show aic chat summary

Chat = this conversation's AIC compilations.
──────────────────────────────────────────────────────────────────────────────
AIC optimised context by intent across 42 compilations (88:1 ratio, 40.0% cache hit rate).
──────────────────────────────────────────────────────────────────────────────
Project path                    /dev/AIC
Context builds                  42
Cumulative raw → sent tokens    8.80M → 100,000 (88:1 ratio)
Tokens excluded                 5.00M
──────────────────────────────────────────────────────────────────────────────
Cache hit rate                  40.0%
Context precision (weighted)    55.2%
──────────────────────────────────────────────────────────────────────────────
Last compilation                refactor diagnostic output · 2 min ago
Session time                    3h 12m
Top request types               count  share
  refactor                         20  62.5%
  general                          12  37.5%
──────────────────────────────────────────────────────────────────────────────
Context precision (weighted): % of repo content automatically filtered per context build.

show aic projects

Projects = known AIC projects.
──────────────────────────────────────────────────────────────────────────────
1 project(s); 7,796 compilations; latest activity 2 min ago.
──────────────────────────────────────────────────────────────────────────────
Project ID                              Path                              Last seen       Compilations
018f0000-0000-7000-8000-00000000aa01    /Users/dev/AIC                    2 min ago              7,784

show aic quality

Quality = context build quality metrics.
──────────────────────────────────────────────────────────────────────────────
AIC optimised context by intent across 137 compilations in the last 7 days (median 99.6% filtered, 38.0% cache hit rate).
──────────────────────────────────────────────────────────────────────────────
Time range                      Last 7 days
Compilations                    137
──────────────────────────────────────────────────────────────────────────────
Median context precision        99.6%
Median selection ratio          1.1%
Median budget used              3.1%
Cache hit rate                  38.0%
Tier mix
  full          100.0%
  sig+doc       0.0%
  sigs          0.0%
  names         0.0%
Task class mix                  count  share     budget
refactor                            4   2.9%       0.4%
bugfix                             12   8.8%       0.7%
feature                             9   6.6%       0.5%
docs                               24  17.5%       3.1%
test                                4   2.9%       0.7%
general                            84  61.3%      14.6%
Classifier mean                 7.5%
Daily compilations              ▁▁▁▁▁▁█
                                Tue Wed Thu Fri Sat Sun Mon
──────────────────────────────────────────────────────────────────────────────
Context precision  % of repo content automatically filtered per context build.
Selection ratio: % of repo files selected per build.
Budget used: % of token budget consumed per build.
Cache hit rate: % of builds served from cache without recompiling.
Tiers: full = entire file · sig+doc = signatures + docs · sigs = signatures only · names = symbol names only.
Compilations     Builds AIC performed in this window (cache hits included).
Task class mix   How AIC classified each build, with its share and median
                 token budget used. Higher "budget" means AIC allocated
                 more context for that task type. "general" is the
                 classifier's fallback when confidence is low.
Classifier mean  Mean confidence of the task classifier (0-100%). Low values
                 mean frequent fallback to "general" — not a quality
                 problem by itself, but worth noting when most builds
                 are "general".

La CLI usa por defecto una ventana de 7 días cuando omites banderas (show aic quality o aic quality). Con compilaciones en la ventana, el body también incluye filas de mediana, mezcla de niveles, columnas de clase de tarea, sparklines opcionales y la misma nota al pie de glosario multilínea que se muestra a continuación para el caso vacío.


Inicio rápido

Requisitos: Node.js >= 22 (ver .nvmrc para la versión principal de Node de referencia usada para desarrollar y probar AIC).

Cursor

  1. Instala el servidor MCP — instala desde el Directorio de Cursor, usa el enlace de un clic a continuación, o copia la URL en tu navegador:

    Install AIC MCP Server

    O copia esta URL:

    cursor://anysphere.cursor-deeplink/mcp/install?name=aic&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBqYXRiYXMvYWljQGxhdGVzdCJdfQ==
    

    Cursor te pedirá añadir el servidor a tu configuración MCP global (~/.cursor/mcp.json). Confirma y listo. AIC ahora está disponible en cada espacio de trabajo — sin necesidad de configuración por proyecto.

  2. Empieza a escribir prompts — aprueba las herramientas cuando se te pida y empieza a codificar. En el primer aic_compile para el proyecto (o cuando el servidor vea el proyecto por primera vez a través de las raíces del espacio de trabajo), AIC escribe aic.config.json, el directorio .aic/, entradas de archivos de ignorar y la regla de activación de Cursor. Cuando Cursor está en uso, el bootstrap también instala hooks de ciclo de vida de Cursor (.cursor/hooks.json y los scripts AIC-*.cjs) ejecutando el instalador incluido en @jatbas/aic, a menos que tu proyecto ya contenga integrations/cursor/install.cjs (esa copia en el repositorio tiene prioridad). Todos los proyectos comparten una base de datos en ~/.aic/aic.sqlite; otros archivos por proyecto permanecen en el directorio del proyecto. Ver Instalación — Cursor para más detalle.

Claude Code

  1. Añade el marketplace de AIC: /plugin marketplace add Jatbas/agent-input-compiler
  2. Instala el plugin: /plugin install aic@aic-tools

El plugin inicia el servidor MCP y registra hooks para que cada proyecto obtenga contexto compilado automáticamente. Nada más que instalar o configurar. Para requisitos previos, instalador directo y solución de problemas, ver Instalación — Claude Code.

Deshabilitar AIC para un proyecto específico

Añade "enabled": false a aic.config.json en la raíz del proyecto. AIC regresa inmediatamente sin compilación ni escrituras en la base de datos. Vuelve a ponerlo en true (o elimina el campo) para reactivarlo. El comando show aic status refleja el estado actual.

Para la lista completa de opciones de configuración disponibles, ver §6 Configuración en el Plan del Proyecto.

Para eliminar carpetas generadas o de tiempo de ejecución del contexto compilado (.gitignore vs aic-rules/… excludePatterns vs guard.allowPatterns), ver Ignorar archivos y carpetas.

Otros editores

AIC requiere una capa de integración dedicada para compilar contexto automáticamente. Cursor y Claude Code tienen capas de integración de primera clase; otros editores aún no tienen una. Para solicitar soporte para tu editor o contribuir con una capa de integración, abre un issue.

Desinstalación

Usa Node.js >= 22 (coincidiendo con engines.node). Descarga el script de desinstalación independiente:

curl -fsSL -o aic-uninstall-standalone.cjs https://raw.githubusercontent.com/Jatbas/agent-input-compiler/main/integrations/aic-uninstall-standalone.cjs

Ejecútalo contra tu proyecto:

node aic-uninstall-standalone.cjs --project-root /path/to/project

Por defecto esto elimina artefactos para ambos editores. Pasa --cursor para limitar la limpieza solo a Cursor, o --claude para limitarla solo a Claude Code.

Para --global, eliminación de la base de datos y la lista completa de banderas, ver Instalación — Desinstalación.


Comandos

Estos son prompts en lenguaje natural para la IA de tu editor, no comandos de terminal. Usa solo las palabras antes de # en cada línea; todo después de # es un recordatorio para ti, no parte del prompt.

show aic status         # project-level status and lifetime stats
show aic last           # most recent compilation (table); MCP JSON may include selection trace
show aic chat summary   # per-conversation compilation stats for this workspace
show aic projects       # known AIC projects (IDs, paths, last seen, compilation counts)
show aic quality        # rolling-window compile transparency metrics (default 7 days; pass --window <1-365>)
run aic model test      # MCP-only: agent capability probe (aic_model_test + aic_compile)

Verifica tu configuración

Ejecuta las frases en Comandos arriba, luego verifica lo siguiente.

Qué buscar:

  • Instalación (servidor MCP global): OK en show aic status (la salud refleja la sesión del servidor MCP, no un segmento aislado del proyecto)
  • una compilación reciente en show aic last (envía un mensaje de codificación normal primero si nada se ha compilado aún), incluyendo la fila Cache (hit / miss / —)
  • estadísticas de compilación por conversación en show aic chat summary después de que AIC haya registrado al menos una compilación para la conversación actual del editor (en Cursor, las compilaciones de subagentes de la herramienta Task se reasignan al chat padre vía el hook subagentStop para que cuenten en ese hilo)
  • recuento de archivos seleccionados, tokens compilados y cifras de precisión de contexto que tengan sentido para la tarea
  • AIC bloqueando contenido sensible o excluido
  • tu ruta de proyecto listada en show aic projects después de que AIC haya visto el espacio de trabajo
  • opcional: ejecutar aic model test devuelve una tabla de aprobado/fallido si el agente puede llamar a aic_model_test y aic_compile en secuencia (ver Instalación — Servidor AIC)

Si no hay una compilación reciente, el modelo puede no estar llamando a AIC automáticamente. Verifica que las herramientas de AIC estén aprobadas en la configuración MCP de tu editor e intenta iniciar un nuevo chat.


Configuración de equipo

Para uso en equipo, la división práctica es simple:

  • cada desarrollador instala el servidor MCP en su máquina
  • confirma los archivos compartidos aic.config.json y las reglas del editor cuando quieras que todo el equipo use la misma configuración — el bootstrap añade aic.config.json a los archivos de ignorar por defecto, así que elimina esa entrada de ignorar (o añade una excepción) si el archivo debe vivir en git; ver Artefactos por proyecto
  • .aic/ (caché local y datos de tiempo de ejecución) permanece en la máquina de cada desarrollador y no debe confirmarse

AIC es útil para individuos, pero se vuelve más valioso cuando los equipos quieren una calidad de contexto más consistente en la misma base de código.


Cómo encaja AIC en el flujo de trabajo

  1. Tu integración de editor (hooks y/o la regla de activación) está configurada para llamar a aic_compile antes o como parte del manejo de cada mensaje de usuario — ver installation.md para cómo difiere según el editor
  2. AIC clasifica la tarea, selecciona archivos relevantes, aplica salvaguardas y comprime contenido
  3. AIC devuelve un paquete de contexto acotado
  4. El editor continúa el flujo de trabajo normal del modelo usando ese contexto compilado

AIC compila contexto. No llama a modelos, no reemplaza el editor ni actúa como un entorno de codificación separado.


Seguridad

AIC es local-first. Todo el procesamiento se ejecuta en la máquina del desarrollador.

El Context Guard de AIC excluye lo siguiente del contexto compilado antes de que llegue al modelo:

  • secretos y credenciales comunes
  • rutas excluidas como .env, claves y archivos sensibles similares
  • cadenas sospechosas de inyección de prompts en el contenido seleccionado

Esto evita que contenido sensible se incluya en contexto masivo. No evita que el modelo lea archivos directamente a través de herramientas del editor — eso es responsabilidad del editor. Para detalles, ver security.md.

La telemetría es local por defecto. AIC almacena metadatos de compilación localmente y no necesita una cuenta de AIC ni clave API.


Documentación

Usa el README para orientación. Usa los documentos a continuación para detalle de implementación.

DocumentoDescripción
installation.mdInstalación, entrega, arranque y detalles por editor
CHANGELOG.mdHistorial de versiones y notas de publicación
CONTRIBUTING.mdConfiguración de desarrollo, ejecución desde el código fuente, proceso de contribución
architecture.mdCanalización principal, capa de integración, modelo de capacidades del editor
best-practices.mdGuía de uso práctico
security.mdModelo de seguridad y detalles de endurecimiento
privacy.mdResumen de privacidad: datos locales, telemetría y uso de red
implementation-spec.mdComportamiento detallado de la canalización y la implementación
project-plan.mdArquitectura del producto, ADR y referencia completa de configuración

Referencias técnicas para mantenedores (documentation/technical/): Formato de salida de diagnóstico (diseño de tabla CLI y SEP), Servidor MCP y límite CJS compartido, Módulos compartidos de integraciones, Cachés JSONL de AIC, Capa de integración de Cursor, Capa de integración de Claude Code, Bloqueo y marcador de inicio de sesión.


Contribución

Las contribuciones son bienvenidas.

Este es un código base estructurado con una arquitectura definida; los cambios pequeños y enfocados se revisan y fusionan más rápido que las refactorizaciones amplias.

Consulta CONTRIBUTING.md para la configuración de desarrollo, pruebas locales de MCP, requisitos de RFC y la lista de verificación de PR.


Licencia

Licenciado bajo la Apache License, Version 2.0.