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
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.
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
| Problema | Qué hace AIC |
|---|---|
| Demasiado contexto irrelevante | Selecciona y comprime solo los archivos que importan |
| Calidad de contexto inconsistente | Produce contexto compilado determinista para la misma tarea y base de código |
| Tokens desperdiciados | Elimina ruido y comprime progresivamente el contenido para mantenerse dentro del presupuesto |
| Riesgo de exposición de secretos | Bloquea secretos, rutas excluidas y cadenas sospechosas de inyección de prompts localmente |
| Sin visibilidad de lo que vio el modelo | Muestra 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 contexto | El 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 7dostatus --window 7) añade una fila body de Rango de tiempo (Last 7 dayscuando N es 7) y cambia el encabezado del bloque de guardia deGuard scans (lifetime)aGuard scans (Nd)(mismo N que la ventana) para que la etiqueta coincida con la ventana agregada de guardia. Verimplementation-spec.md—aic_statusymcp/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 qualityoaic 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
-
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:
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. -
Empieza a escribir prompts — aprueba las herramientas cuando se te pida y empieza a codificar. En el primer
aic_compilepara el proyecto (o cuando el servidor vea el proyecto por primera vez a través de las raíces del espacio de trabajo), AIC escribeaic.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.jsony los scriptsAIC-*.cjs) ejecutando el instalador incluido en@jatbas/aic, a menos que tu proyecto ya contengaintegrations/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
- Añade el marketplace de AIC:
/plugin marketplace add Jatbas/agent-input-compiler - 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 summarydespué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 hooksubagentStoppara 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 projectsdespué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_testyaic_compileen 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.jsony las reglas del editor cuando quieras que todo el equipo use la misma configuración — el bootstrap añadeaic.config.jsona 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
- Tu integración de editor (hooks y/o la regla de activación) está configurada para llamar a
aic_compileantes o como parte del manejo de cada mensaje de usuario — ver installation.md para cómo difiere según el editor - AIC clasifica la tarea, selecciona archivos relevantes, aplica salvaguardas y comprime contenido
- AIC devuelve un paquete de contexto acotado
- 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.
| Documento | Descripción |
|---|---|
installation.md | Instalación, entrega, arranque y detalles por editor |
CHANGELOG.md | Historial de versiones y notas de publicación |
CONTRIBUTING.md | Configuración de desarrollo, ejecución desde el código fuente, proceso de contribución |
architecture.md | Canalización principal, capa de integración, modelo de capacidades del editor |
best-practices.md | Guía de uso práctico |
security.md | Modelo de seguridad y detalles de endurecimiento |
privacy.md | Resumen de privacidad: datos locales, telemetría y uso de red |
implementation-spec.md | Comportamiento detallado de la canalización y la implementación |
project-plan.md | Arquitectura 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.