AIC

Servidor MCP local-first que opera de forma transparente entre seu editor de IA e qualquer modelo, classificando intenções, selecionando os arquivos corretos e compilando contexto focado — sem necessidade de invocação manual.

Documentação

Agent Input Compiler (AIC)

License npm version Local-first Telemetry MCP Compatible Cursor Directory

Servidor MCP local-first que compila contexto focado para Cursor e Claude Code — classifica a intenção, seleciona arquivos relevantes, remove ruído e bloqueia segredos antes que cheguem ao modelo.

AIC não substitui seu editor. Ele roda junto com editores compatíveis com MCP e melhora o contexto que eles enviam ao modelo.

AIC in action


Por que desenvolvedores usam AIC

Ferramentas de codificação com IA frequentemente trazem contexto irrelevante demais. Isso desperdiça tokens, enfraquece o seguimento de instruções e aumenta alucinações.

AIC adiciona uma etapa de compilação antes de o modelo rodar:

  • classifica a tarefa
  • seleciona os arquivos mais relevantes
  • bloqueia conteúdo sensível ou irrelevante
  • comprime o resultado para caber em um orçamento de tokens
  • retorna um pacote de contexto limitado sobre o qual o modelo pode raciocinar

O resultado é uma entrada menor, mais relevante e mais inspecionável.

Com o que ajuda

ProblemaO que AIC faz
Contexto irrelevante demaisSeleciona e comprime apenas os arquivos que importam
Qualidade de contexto inconsistenteProduz contexto compilado determinístico para a mesma tarefa e base de código
Tokens desperdiçadosRemove ruído e comprime progressivamente o conteúdo para permanecer dentro do orçamento
Risco de exposição de segredosBloqueia segredos, caminhos excluídos e strings suspeitas de injeção de prompt localmente
Sem visibilidade do que o modelo viuMostra resumos de compilação, o prompt compilado em disco sob .aic/ no projeto e pontuações opcionais de seleção por arquivo via MCP aic_last (veja Detalhe de seleção após os exemplos abaixo)
Atraso do editor devido à compactação de contextoO contexto compilado é limitado por um orçamento rígido de tokens, então sua contribuição para o preenchimento da janela é previsível independentemente do tamanho do repositório; isso deixa uma margem estável na janela de contexto e reduz a pressão sobre a compactação

Saída real capturada

Os exemplos abaixo espelham o quadro de stdout compartilhado impresso pela CLI de diagnóstico (status, last, chat-summary, projects, quality — ou pnpm aic ao desenvolver este repositório com devMode): cada tabela começa com uma linha de título e uma régua de largura total, depois uma linha hero (sempre presente), outra régua, linhas body de largura fixa (os rótulos padRow têm 32 caracteres de largura em show aic status e 30 caracteres de largura nas outras tabelas de diagnóstico, exceto o roster projects de múltiplas colunas), e uma régua de fechamento opcional mais nota de rodapé (ambas omitidas no roster projects, que termina após suas linhas de corpo). Os valores são representativos (não uma única sessão verbatim); os totais vêm do seu banco de dados local (~/.aic/aic.sqlite) e do projeto atual, então sua saída não corresponderá exatamente a esses números.

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.

Uma janela de tempo contínua no status (show aic status 7d ou status --window 7) adiciona uma linha de corpo Intervalo de tempo (Last 7 days quando N é 7) e altera o cabeçalho do bloco de guarda de Guard scans (lifetime) para Guard scans (Nd) (mesmo N da janela) para que o rótulo corresponda à janela agregada da guarda. Veja implementation-spec.md — aic_status e 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".

A CLI usa por padrão uma janela de 7 dias quando você omite flags (show aic quality ou aic quality). Com compilações na janela, o corpo também inclui linhas de mediana, mix de níveis, colunas de classe de tarefa, sparklines opcionais e a mesma nota de rodapé de glossário de várias linhas mostrada abaixo para o caso vazio.


Início rápido

Requisitos: Node.js >= 22 (veja .nvmrc para a versão principal do Node de referência usada para desenvolver e testar AIC).

Cursor

  1. Instale o servidor MCP — instale a partir do Cursor Directory, use o link de um clique abaixo ou copie a URL para o seu navegador:

    Install AIC MCP Server

    Ou copie esta URL:

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

    O Cursor solicitará que você adicione o servidor à sua configuração MCP global (~/.cursor/mcp.json). Confirme e pronto. AIC agora está disponível em todos os workspaces — nenhuma configuração por projeto é necessária.

  2. Comece a dar prompts — aprove as ferramentas quando solicitado e comece a codar. No primeiro aic_compile para o projeto (ou quando o servidor vê o projeto pela primeira vez via raízes do workspace), AIC escreve aic.config.json, o diretório .aic/, entradas de arquivos de ignore e a regra de gatilho do Cursor. Quando o Cursor está em uso, o bootstrap também instala hooks de ciclo de vida do Cursor (.cursor/hooks.json e os scripts AIC-*.cjs) executando o instalador incluído em @jatbas/aic, a menos que seu projeto já contenha integrations/cursor/install.cjs (essa cópia no repositório tem precedência). Todos os projetos compartilham um banco de dados em ~/.aic/aic.sqlite; outros arquivos por projeto permanecem no diretório do projeto. Veja Instalação — Cursor para detalhes completos.

Claude Code

  1. Adicione o marketplace da AIC: /plugin marketplace add Jatbas/agent-input-compiler
  2. Instale o plugin: /plugin install aic@aic-tools

O plugin inicia o servidor MCP e registra hooks para que cada projeto receba contexto compilado automaticamente. Nada mais para instalar ou configurar. Para pré-requisitos, instalador direto e solução de problemas, veja Instalação — Claude Code.

Desabilitando AIC para um projeto específico

Adicione "enabled": false a aic.config.json na raiz do projeto. AIC retorna imediatamente sem compilação e sem gravações no banco de dados. Defina de volta para true (ou remova o campo) para reativar. O comando show aic status reflete o estado atual.

Para a lista completa de opções de configuração disponíveis, veja §6 Configuração no Plano do Projeto.

Para remover pastas geradas ou de runtime do contexto compilado (.gitignore vs aic-rules/… excludePatterns vs guard.allowPatterns), veja Ignorando arquivos e pastas.

Outros editores

AIC requer uma camada de integração dedicada para compilar contexto automaticamente. Cursor e Claude Code têm camadas de integração de primeira classe; outros editores ainda não têm uma. Para solicitar suporte para seu editor ou contribuir com uma camada de integração, abra uma issue.

Desinstalar

Use Node.js >= 22 (correspondente a engines.node). Baixe o script de desinstalação autônomo:

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

Execute-o no seu projeto:

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

Por padrão, isso remove artefatos para ambos os editores. Passe --cursor para limitar a limpeza apenas ao Cursor, ou --claude para limitar apenas ao Claude Code.

Para --global, remoção de banco de dados e a lista completa de flags, veja Instalação — Desinstalar.


Comandos

Estes são prompts em linguagem natural para a IA do seu editor, não comandos de terminal. Use apenas as palavras antes de # em cada linha; tudo depois de # é um lembrete para você, não parte do 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)

Verifique sua configuração

Execute as frases em Comandos acima e depois verifique o seguinte.

O que procurar:

  • Instalação (servidor MCP global): OK em show aic status (a saúde reflete a sessão do servidor MCP, não uma fatia isolada do projeto)
  • uma compilação recente em show aic last (envie uma mensagem de codificação normal primeiro se nada tiver compilado ainda), incluindo a linha Cache (hit / miss / —)
  • estatísticas de compilação por conversa em show aic chat summary depois que AIC registrou pelo menos uma compilação para a conversa atual do editor (no Cursor, compilações de subagentes da ferramenta Task são reparentadas para o chat pai via hook subagentStop para que contem nesse thread)
  • contagem de arquivos selecionados, tokens compilados e números de precisão de contexto que façam sentido para a tarefa
  • AIC bloqueando conteúdo sensível ou excluído
  • seu caminho de projeto listado em show aic projects depois que AIC viu o workspace
  • opcional: run aic model test retorna uma tabela de aprovação/reprovação se o agente puder chamar aic_model_test e aic_compile em sequência (veja Instalação — Servidor AIC)

Se não houver compilação recente, o modelo pode não estar chamando AIC automaticamente. Verifique se as ferramentas AIC estão aprovadas nas configurações MCP do seu editor e tente iniciar um novo chat.


Configuração de equipe

Para uso em equipe, a divisão prática é simples:

  • cada desenvolvedor instala o servidor MCP em sua máquina
  • commite aic.config.json compartilhados e arquivos de regras do editor quando quiser que toda a equipe use as mesmas configurações — o bootstrap adiciona aic.config.json aos arquivos de ignore por padrão, então remova essa entrada de ignore (ou adicione uma exceção) se o arquivo deve viver no git; veja Artefatos por Projeto
  • .aic/ (cache local e dados de runtime) permanece na máquina de cada desenvolvedor e não deve ser commitado

AIC é útil para indivíduos, mas se torna mais valioso quando equipes querem qualidade de contexto mais consistente na mesma base de código.


Como AIC se encaixa no fluxo de trabalho

  1. Sua integração de editor (hooks e/ou a regra de gatilho) está configurada para chamar aic_compile antes ou como parte do tratamento de cada mensagem do usuário — veja installation.md para como isso difere por editor
  2. AIC classifica a tarefa, seleciona arquivos relevantes, aplica guardrails e comprime o conteúdo
  3. AIC retorna um pacote de contexto limitado
  4. O editor continua o fluxo de trabalho normal do modelo usando esse contexto compilado

AIC compila contexto. Ele não chama modelos, não substitui o editor nem atua como um ambiente de codificação separado.


Segurança

AIC é local-first. Todo o processamento roda na máquina do desenvolvedor.

O Context Guard da AIC exclui o seguinte do contexto compilado antes que chegue ao modelo:

  • segredos e credenciais comuns
  • caminhos excluídos como .env, chaves e arquivos sensíveis semelhantes
  • strings suspeitas de injeção de prompt no conteúdo selecionado

Isso impede que conteúdo sensível seja incluído em contexto em massa. Não impede que o modelo leia arquivos diretamente por meio de ferramentas do editor — isso é responsabilidade do editor. Para detalhes, veja security.md.

A telemetria é local por padrão. AIC armazena metadados de compilação localmente e não precisa de conta AIC ou chave de API.


Documentação

Use o README para orientação. Use os documentos abaixo para detalhes de implementação.

DocumentDescription
installation.mdInstalação, entrega, bootstrap e detalhes por editor
CHANGELOG.mdHistórico de versões e notas de lançamento
CONTRIBUTING.mdConfiguração de desenvolvimento, execução a partir do código-fonte, processo de contribuição
architecture.mdPipeline principal, camada de integração, modelo de capacidades do editor
best-practices.mdGuia prático de uso
security.mdModelo de segurança e detalhes de endurecimento
privacy.mdVisão geral de privacidade — dados locais, telemetria e uso de rede
implementation-spec.mdComportamento detalhado do pipeline e da implementação
project-plan.mdArquitetura do produto, ADRs e referência completa de configuração

Referências técnicas para mantenedores (documentation/technical/): Formato de saída de diagnóstico (layout de tabela da CLI e SEP), Servidor MCP e limite CJS compartilhado, Módulos compartilhados de integrações, Caches JSONL do AIC, Camada de integração do Cursor, Camada de integração do Claude Code, Bloqueio e marcador de início de sessão.


Contribuindo

Contribuições são bem-vindas.

Este é um código-fonte estruturado com uma arquitetura definida; alterações pequenas e focadas são revisadas e mescladas mais rapidamente do que refatorações amplas.

Consulte CONTRIBUTING.md para configuração de desenvolvimento, testes locais de MCP, requisitos de RFC e a lista de verificação de PR.


Licença

Licenciado sob a Apache License, Versão 2.0.