Ñaupa — Motor de inteligencia de código
Ñaupa es el motor de inteligencia de código de Theus: un binario estático que analiza tu repositorio con tree-sitter (AST real, 158 lenguajes), construye un grafo de conocimiento persistente y lo expone al agente por MCP — con respuestas en menos de 1 ms y 100% local.
Qué es
Ñaupa indexa el proyecto una vez y mantiene un grafo de conocimiento con símbolos, relaciones CALLS, rutas HTTP y flujos de datos. Sobre ese grafo el agente puede preguntar «¿quién llama a esta función?», «¿qué endpoints tocan esta tabla?» o «¿por dónde fluye este dato?» sin gastar tokens leyendo archivos.
- Binario estático en C — sin runtime, sin dependencias; parsing por AST con tree-sitter para 158 lenguajes.
- Hybrid LSP — resolución precisa de símbolos con servidores de lenguaje para 13 lenguajes, combinada con el análisis estático del resto.
- Grafo persistente — relaciones
CALLS, rutas HTTP y data flows consultables con Cypher. - Rápido de verdad — consultas en <1 ms; indexa el kernel de Linux (28 M LOC) en ~3 minutos.
- Embeddings incluidos — búsqueda semántica con embeddings nomic locales, sin llamadas a ninguna API.
- 14 herramientas MCP — cualquier agente compatible con MCP puede usarlas.
- UI 3D — visualización interactiva del grafo en
http://localhost:9749. - 100% local — nada sale de tu máquina.
Instalación
Instalador de una línea (detecta tu plataforma y descarga el binario):
curl -fsSL https://theus.pe/naupa.sh | bash
Instalación manual: descarga el binario para tu plataforma desde https://theus.pe/dl/naupa/, dale permisos de ejecución y colócalo en tu PATH:
curl -fsSLo naupa https://theus.pe/dl/naupa/<plataforma>/naupa
chmod +x naupa
mv naupa /usr/local/bin/
Después de instalar el binario, regístralo en tus agentes:
naupa install # detecta hasta 11 agentes instalados y los configura
naupa install --skip-config # solo instala; el registro en cada agente lo haces tú
naupa install detecta los agentes de código presentes en tu máquina (hasta 11 soportados) y añade Ñaupa como servidor MCP en la configuración de cada uno. Con --skip-config no toca ninguna configuración y puedes registrarlo manualmente donde quieras.Uso con Theus CLI
Con Theus no hay nada que configurar: si el binario naupa está instalado, Theus lo monta automáticamente como servidor MCP con el nombre theus-naupa al arrancar la sesión. Sus 14 herramientas aparecen junto a las nativas y el agente las usa cuando necesita entender la estructura del proyecto.
# kill-switch: arranca Theus sin montar Ñaupa
THEUS_NO_NAUPA=1 theus
localhost:9749). THEUS_DASHBOARD=neural vuelve al dashboard clásico.naupa config set ui-lang es|en|zh|auto) y estrena diseño: paleta por conectividad, aristas por familia semántica con gradiente en las llamadas, niebla de profundidad, campo de estrellas, halo de selección y panel de detalle como overlay.THEUS_NO_NAUPA=1 desactiva el montaje automático para esa sesión. Es útil para aislar problemas o en proyectos donde no quieras indexar nada.Las 14 herramientas MCP
| Herramienta | Qué hace |
|---|---|
search_graph | Búsqueda híbrida (semántica + estructural) sobre el grafo: símbolos, archivos y relaciones relevantes a una consulta en lenguaje natural. |
query_cypher | Ejecuta una consulta Cypher arbitraria sobre el grafo de conocimiento. |
get_symbol | Detalle de un símbolo: definición, ubicación exacta (archivo:línea) y firma. |
find_callers | Quién llama a una función (relaciones CALLS entrantes). |
find_callees | Qué llama una función (relaciones CALLS salientes). |
call_path | Ruta de llamadas entre dos funciones a través del grafo. |
list_http_routes | Rutas HTTP detectadas (método, path y handler que las atiende). |
trace_data_flow | Sigue el flujo de un dato: desde dónde entra hasta dónde se usa o persiste. |
list_symbols | Símbolos del proyecto (funciones, clases, tipos), con filtro por archivo o clase. |
file_outline | Esqueleto estructural de un archivo: símbolos que define y qué importa. |
project_stats | Resumen del índice: archivos, lenguajes, conteo de nodos y aristas del grafo. |
semantic_search | Búsqueda puramente semántica por embeddings (nomic, local) sobre código y símbolos. |
reindex | Reindexa el proyecto (incremental; solo lo que cambió). |
graph_ui | Abre la visualización 3D del grafo en http://localhost:9749. |
Ejemplos reales
Las herramientas también están disponibles desde la línea de comandos con naupa cli:
# búsqueda híbrida sobre el grafo
naupa cli search_graph 'dónde se valida el token de sesión'
# quién llama a una función
naupa cli find_callers 'handleLogin'
# rutas HTTP del proyecto
naupa cli list_http_routes
Consulta Cypher directa — por ejemplo, las 10 funciones más llamadas del proyecto:
naupa cli query_cypher "
MATCH (caller)-[:CALLS]->(f:Function)
RETURN f.name, f.file, count(caller) AS llamadas
ORDER BY llamadas DESC
LIMIT 10
"
Datos y privacidad
Todo el análisis ocurre en tu máquina. Ñaupa no envía código, símbolos ni embeddings a ningún servicio externo.
| Ruta | Qué contiene |
|---|---|
~/.cache/naupa/<proyecto>.db | El grafo de conocimiento y los embeddings del proyecto (caché local por proyecto). |
.naupa.json | Configuración por proyecto en la raíz del repo: exclusiones, lenguajes, opciones de indexado. |
.naupa/graph.db.zst | Artefacto opcional del grafo comprimido, versionable para compartir el índice con el equipo. |
~/.cache/naupa/ en cualquier momento; el índice se reconstruye con naupa cli reindex o en el siguiente arranque.Licencia y atribución
Ñaupa se distribuye bajo licencia MIT y es un producto de Theus. La atribución de los componentes de terceros que vendoriza (tree-sitter y sus gramáticas, SQLite, mimalloc, nomic-embed, entre otros) se preserva en los avisos de licencia que acompañan a los binarios.