CCC (ContextCodeCache) es una herramienta de línea de comandos, escrita en Rust, que analiza un proyecto y produce un directorio .ccc con un mapa compacto y legible por máquina de cada archivo fuente: constantes, funciones (con tipo de retorno y resumen de documentación), grafo de llamadas intra-archivo resuelto por ámbito y notas marcadoras (TODO, FIXME, NOTE, etc.). El objetivo es ofrecer a los agentes de programación un índice barato y siempre actualizado del repositorio, evitando reanalizar todo el código en cada interacción.
Su uso principal se da en flujos de trabajo con modelos de IA y en pipelines de integración continua. Los comandos principales son ccc scan, que regenera el caché en PATH/.ccc; ccc scan --tokens, que además pre-codifica el contenido con el vocabulario tiktoken de OpenAI (o200k_base por defecto); ccc check, que devuelve un código de salida distinto de cero si el caché está desactualizado, ideal para puertas de frescura en CI; y ccc install, que copia el binario a ~/.local/bin en Linux sin requerir sudo. La salida JSON de ccc check --format json está pensada para consumo programático, por ejemplo desde GitHub Actions, que el repositorio incluye ya preconfigurada: en cada push a main y semanalmente verifica los directorios declarados en CCC_ROOTS y, si detecta deriva, regenera el caché y abre un pull request con el bot CCC-bot.
El analizador se apoya en tree-sitter y soporta de forma nativa Rust, Python, JavaScript, TypeScript (incluido TSX) y Go, ignorando archivos no soportados y respetando .gitignore y carpetas habituales como target o node_modules. Añadir un lenguaje adicional implica extender el mapa de extensiones, gramáticas y conjuntos de nodos en src/languages.rs; el extractor en src/extract.rs es agnóstico a la gramática. Una limitación importante del flujo de tokens es que utiliza vocabularios de OpenAI (tiktoken), por lo que no es compatible con modelos de Anthropic: para Claude se recomienda pasar el markdown .ccc directamente como contexto o usar el endpoint count_tokens de Anthropic para conteos exactos. Los artefactos de tokens son derivados, de modo que un ccc scan sin --tokens los elimina.
