Terraform RAG
Base de conocimiento impulsada por IA para tus módulos de Terraform. Indexa, busca, compone y audita, todo desde un solo lugar.
Documentación
⬡
Terraform RAG
Base de conocimiento impulsada por IA para tus módulos de Terraform.
Indexa, busca, compone y audita, todo desde un solo lugar.
Demo en vivo - Arquitectura - Inicio rápido - Servidor MCP
Prueba la demo en vivo
Interfaz web - explora más de 2700 módulos en más de 175 repositorios (AWS / Azure / GCP):
Inicio de sesión:
demo@terraform-rag.io/demo(solo lectura)
MCP - conecta tu IDE a la base de conocimiento:
{
"mcpServers": {
"terraform-rag": {
"type": "http",
"url": "https://terraform-rag.io/mcp",
"headers": {
"Authorization": "Bearer trag_6c495d7a027369cb5d324d877626c272"
}
}
}
}
9 herramientas disponibles: query_modules, pick_modules, list_modules,
get_module_details, get_dependencies, get_module_usage,
find_similar_usages, fetch_example_code, get_stats (list_modules
también acepta semantic_query para búsqueda en lenguaje natural).
Qué hace
Apúntalo a tus repositorios de módulos de Terraform. Los clona, analiza cada archivo HCL, genera embeddings y construye una base de conocimiento buscable en PostgreSQL + pgvector. Luego aprende cómo se usan realmente esos módulos en tus repositorios de consumo: patrones de nombres, convenciones de variables, estrategias de etiquetado, diseños de implementación, y lo destila en orientación autoritativa.
Un pipeline agéntico (Claude, Bedrock o cualquier modelo compatible con OpenAI) explora la base de conocimiento a lo largo de múltiples turnos de uso de herramientas para ensamblar respuestas fundamentadas y revisables: recuperación asistida con un humano en el circuito, no un generador de código autónomo. Consulta desde la interfaz web, la API REST o directamente desde tu IDE a través de MCP.
Véalo en acción
Características
Pipeline de consulta agéntico - más que una simple búsqueda RAG. El LLM navega por los módulos, verifica detalles, lee convenciones y obtiene código de ejemplo a lo largo de múltiples turnos de uso de herramientas antes de componer una respuesta para que la revises. Cuatro modos de consulta: componer, buscar, optimizar y auditar.
Capa de conocimiento - indexa repositorios de consumo para aprender patrones de uso del mundo real. Destila convenciones en seis dimensiones (nombres, variables, etiquetado, diseño, versiones, implementación) y las trata como orientación autoritativa en todos los prompts.
Servidor MCP - el endpoint HTTP Streamable funciona con Claude Code, Cursor, Windsurf y cualquier cliente compatible con MCP. Consulta tu base de conocimiento de módulos directamente desde tu IDE.
Grafo de dependencias - los CTE recursivos de PostgreSQL mapean el árbol completo de dependencias entre módulos. Encuentra qué depende de qué, rastrea el impacto y visualiza las relaciones con un grafo dirigido por fuerza D3.
Seguimiento de versiones - descubrimiento automático de etiquetas git con historial de versiones por módulo. El almacenamiento en caché de hash de código evita llamadas redundantes de LLM/embeddings al reindexar.
Backend LLM flexible - Anthropic (directo o Bedrock), OpenRouter, Ollama o cualquier endpoint compatible con OpenAI. Cambia de modelo sin modificar código.
Integración CI/CD - flujo de trabajo de GitHub Actions y endpoints de
webhook para reindexación automática cuando cambian los archivos .tf.
Autenticación - deshabilitada (predeterminado), correo/contraseña local con JWT, o SSO terminado en ALB mediante AWS Identity Center / OIDC.
Inicio rápido
# 1. Clone and configure
git clone https://github.com/krzysztofgawrys/rag-for-terraform.git
cd rag-for-terraform
cp .env.example .env
# Edit .env - set POSTGRES_PASSWORD, JWT_SECRET, and your LLM API key
# 2. Start everything
docker compose up -d
# 3. Index your first repo
curl -X POST http://localhost:8000/index/ \
-H "Content-Type: application/json" \
-d '{"repo_url": "git@github.com:org/tf-modules.git", "branch": "main"}'
| Servicio | URL |
|---|---|
| Frontend | http://localhost:3000 |
| Documentación de API | http://localhost:8000/docs |
| Endpoint MCP | http://localhost:8000/mcp/ |
Para repositorios privados, coloca tu clave de implementación SSH en ./worker_deploy_key
(o establece SSH_KEY_PATH en .env).
Servidor MCP
Conecta cualquier cliente compatible con MCP a http://localhost:8000/mcp/.
Claude Code (.mcp.json):
{
"mcpServers": {
"terraform-rag": {
"type": "http",
"url": "http://localhost:8000/mcp/"
}
}
}
Herramientas disponibles: query_modules, pick_modules, list_modules,
get_module_details, get_dependencies, get_module_usage,
find_similar_usages, fetch_example_code, get_stats.
Configuración de LLM
| Modo | LLM_BASE_URL | Ejemplo de LLM_MODEL |
|---|---|---|
| Anthropic (directo) | (vacío) | claude-sonnet-4-6 |
| AWS Bedrock | (establece AWS_BEDROCK_REGION) | us.anthropic.claude-sonnet-4-6-20250514-v1:0 |
| OpenRouter | https://openrouter.ai/api/v1 | anthropic/claude-sonnet-4-6 |
| Ollama (local) | http://ollama:11434/v1 | qwen2.5-coder:32b |
Se puede usar un modelo económico separado para descripciones de módulos durante
la indexación (variables DESCRIPTION_LLM_*).
Arquitectura
Browser AI Agent / IDE
| |
+---------+ +--------+ +----------------+
| Frontend|----->| API |----->| PostgreSQL 16 |
| (Vite) | | FastAPI| | + pgvector |
+---------+ +---+----+ +----------------+
|
+----+----+
| Worker | +-------+
| (Celery)|----->| Redis |
+---------+ +-------+
Para el análisis técnico completo (detalles de la pila, estructura de directorios, endpoints de API, internos del agente, pipeline de la capa de conocimiento, limitaciones conocidas y notas de implementación), consulta docs/ARCHITECTURE.md.
Licencia
Business Source License 1.1 - consulta LICENSE para más detalles.
- Se permite el uso no productivo (evaluación, pruebas, desarrollo)
- El uso productivo requiere una licencia comercial del autor
- El 2029-05-25 la licencia se convierte a AGPL-3.0