Cómo dejar de ahogarte en el código de otros y empezar a vivir con Sourcebot
Situación conocida: saltas a un proyecto nuevo o intentas entender un monstruo legacy que tres generaciones de desarrolladores escribieron antes que tú. El IDE intenta ayudar honestamente, pero saltar entre definiciones de funciones en diez repositorios diferentes se convierte en una aventura. Por lo general, en momentos como estos, solo quieres preguntarle a alguien: "¿Dónde está la lógica de procesamiento de pagos de todos modos?" Pero los colegas están ocupados, y la documentación se quedó obsoleta el año pasado.
Hace poco me topé con Sourcebot. Es una herramienta de código abierto que puedes alojar tú mismo y usar como guía personal a través de tu base de código. Puede indexar tus repositorios y responder preguntas en lenguaje natural, citando líneas específicas de código.
Qué es en realidad
En resumen, Sourcebot es una mezcla de búsqueda avanzada de código y un asistente LLM. La característica principal es que se aloja tú mismo. Esto resuelve la eterna pregunta de seguridad: "¿No terminará nuestro código fuente en OpenAI?" Tú controlas dónde se ejecuta el servicio y qué datos ve.
La herramienta aborda varios puntos débiles a la vez. Primero, te da búsqueda rápida en todas tus ramas y repositorios simultáneamente. Segundo, construye un gráfico de navegación a nivel de IDE directamente en el navegador. Y la guinda del pastel: un chat que entiende el contexto de tu proyecto.
Qué puede hacer
Los desarrolladores han destacado varias áreas principales que realmente ahorran tiempo en la rutina diaria.
Chat inteligente con contexto
Escribes una pregunta como: "¿Cómo está configurada la autorización en este servicio?" Sourcebot no adivina al azar — usa sus índices de búsqueda, encuentra los archivos relevantes, analiza las conexiones y entrega una respuesta con citas. Esto es más conveniente que ChatGPT plano porque obtienes pruebas en forma de enlaces al código.
Búsqueda sin retrasos
Grep normal en un monorepo enorme puede tardar mucho. Aquí, la búsqueda funciona muy rápido. Soporta expresiones regulares, filtros por lenguaje y repositorio, así como operadores lógicos. Puedes encontrar rápidamente todos los lugares donde se usa una biblioteca específica o una configuración particular, incluso si tienes decenas de proyectos.
Navegación en el navegador
A veces solo necesitas explorar el código sin descargarlo localmente. El explorador integrado soporta resaltado de sintaxis y Go to Definition. Esto funciona entre repositorios: si una función está definida en un proyecto vecino, Sourcebot te llevará allí.
Cómo funciona internamente
El proyecto está escrito en TypeScript. Requiere Docker para ejecutarse, ya que la forma más fácil de desplegarlo es a través de Docker Compose. La arquitectura está diseñada para que puedas conectar tus propios LLMs. En la configuración, puedes especificar proveedores de modelos, configurar autenticación e indicar qué repositorios de GitHub o GitLab indexar.
Curiosamente, los autores advierten honestamente sobre la recolección de telemetría anónima. Puedes desactivarla con una sola variable de entorno SOURCEBOT_TELEMETRY_DISABLED=true, lo cual es agradable — sin actividad oculta.
Cómo lanzar y probar
El despliegue toma un par de minutos si ya tienes Docker. Primero, descarga la configuración:
curl -o docker-compose.yml https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/docker-compose.yml
Luego crea config.json. En él, describes dónde debe buscar el bot. Para una prueba, puedes apuntarlo al repositorio de Sourcebot mismo:
{
"$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
"connections": {
"starter-connection": {
"type": "github",
"repos": [
"sourcebot-dev/sourcebot"
]
}
}
}
Después de eso, inicia los contenedores con docker compose up y ve a localhost:3000.
A quién le será útil
Veo el valor de Sourcebot en dos escenarios. El primero es cuando un equipo está creciendo rápidamente y los recién llegados pasan demasiado tiempo en la incorporación. En lugar de molestar al líder, pueden "consultar" al bot. El segundo es cuando tienes un zoológico de microservicios, y rastrear la ruta de datos entre servicios se vuelve físicamente doloroso.
El proyecto todavía está evolucionando, y hay una lista decente de issues abiertos en el repositorio, pero la base ya es bastante usable. Si has estado buscando una forma de hacer tu conocimiento de código más accesible para el equipo sin querer enviar datos a la nube — este es un gran candidato para probar.
Por cierto, tienen un demo público, así que incluso puedes probar la interfaz sin instalar nada. Te ayuda a entender si este formato de trabajar con código te conviene.
Proyectos relacionados