- Codebuff es una herramienta CLI que, al ingresar tareas en lenguaje natural desde la terminal, lee la base de código y puede incluso modificar o crear archivos; se puede usar de inmediato tras instalarla con
npm i -g codebuff, sin barrera de inicio de sesión - Reduce el flujo de entrada a un solo paso: el usuario solo escribe la tarea que quiere y la herramienta aprovecha el proceso para ejecutar pruebas, el verificador de tipos e incluso instalar paquetes
- Internamente usa tree-sitter para parsear símbolos como nombres de funciones y clases en 11 lenguajes y crear un mapa de la base de código, combinando caché de prompts de Claude Haiku 3.5 con llamadas a Claude/OpenAI
- El agente coloca los archivos relevantes en el contexto y luego procesa llamadas a herramientas en forma de etiquetas XML para
edit_file, ejecución de comandos en terminal y solicitudes de lectura de archivos adicionales - Todas las cuentas reciben hasta $20 en créditos; hay más créditos disponibles en un plan de $99 al mes, aunque indican que es más caro que productos competidores debido al gran contexto y a las costosas llamadas a LLM
Modificar código con lenguaje natural desde la terminal
- Codebuff es una herramienta CLI que funciona como un “Cursor Composer dentro de la terminal”
- Escribes en lenguaje natural el cambio que quieres, presionas Enter, y luego revisa la base de código antes de modificar los archivos
- Puede tanto modificar archivos fuente existentes como crear nuevos archivos
- Puede ejecutar pruebas, verificadores de tipos e instalación de paquetes para completar la solicitud
- La instalación y el inicio se hacen con
npm i -g codebuff- Se puede usar de inmediato sin barrera de inicio de sesión
- Todas las cuentas reciben hasta $20 en créditos
- Video demo: YouTube
De experimento inicial a producto
- La idea inicial comenzó al probar Sonnet 3.5 en un hackathon
- El primer script traía de una vez el contexto de la base de código, y en una segunda etapa reescribía los archivos
- Este proceso de 2 etapas sigue presente en Codebuff actualmente
- La demo inicial no lograba producir código útil
- Al intentar transmitir al modelo conocimiento específico de cada base de código surgió la idea de knowledge.md
- En un servidor de una startup anterior, para crear un endpoint había que modificar 3 archivos específicos, pero el modelo no lo sabía
- Al escribir una guía de la base de código en un archivo Markdown, como si se le explicara a una persona nueva, e incluirla en el prompt del sistema de Sonnet 3.5, la calidad del código mejoró mucho
- Actualmente Codebuff también usa un archivo
knowledge.mdque se lee automáticamente en cada solicitud
- Justo antes de la entrevista de YC, la mayor limitación era la estabilidad al editar archivos
- Probaron varias estrategias de prompts para reemplazar cadenas en archivos originales, pero ninguna funcionó de forma estable
- El día antes de la entrevista ajustaron finamente GPT-4o para convertir en un git patch el boceto de cambios generado por Claude
- Al día siguiente funcionó, y lo desplegaron a producción justo antes de la entrevista de YC
Mapa de la base de código y flujo de ejecución del agente
- Al ejecutarse, recorre el directorio actual y sus subdirectorios para crear un mapa de la base de código
- Usa tree-sitter para parsear nombres de funciones, clases o símbolos equivalentes en 11 lenguajes
- Utiliza tanto el árbol de archivos como la información de símbolos
- Hace una solicitud a Claude Haiku 3.5 para cachear el contexto de la base de código y reducir la latencia al responder a la entrada del usuario
- Cuando el usuario envía un mensaje, Claude primero elige los archivos relevantes
- Después de cargar los archivos seleccionados en el contexto, el agente responde
- Las llamadas a herramientas se escriben y parsean como etiquetas XML
- Un ejemplo es una etiqueta de modificación de archivo con forma
<edit_file path="src/app.ts">…</edit_file> - Otras etiquetas también permiten ejecutar comandos de terminal o solicitar la lectura de archivos adicionales
Arquitectura del servidor e infraestructura
- El servidor tiene una estructura que reenvía mensajes a Anthropic u OpenAI, y no guarda estado
- Usa websocket para mover datos entre cliente y servidor
- Durante los primeros 3 meses procesó solicitudes con instalación gratuita y claves API propias, sin autenticación ni base de datos
- Después agregaron los componentes necesarios para operar el producto
- Base de datos Postgres + Drizzle
- Servidor Bun
- Hosting en Render
- Autenticación con Auth.js
- Sitio web en NextJS
- Pagos con Stripe
- Logging con BetterStack
- Dashboard con Retool
Precio, casos de uso y SDK
- El precio se compone de un uso gratuito limitado y un plan de pago de $99 al mes
- El plan de pago ofrece más créditos
- Indican que es más caro que productos competidores por el mayor contexto y las costosas llamadas a LLM
- Entre los casos de uso reales están la creación de apps Flutter, escritura de pruebas unitarias, modificaciones iterativas y automatización de tareas repetitivas
- Un usuario creó en paralelo dos apps Flutter y generó una factura de $500; completó las apps mediante una larga conversación con Codebuff sin revisar directamente el código generado
- Varios usuarios crearon apps reales para uso de equipo o personal durante un fin de semana
- Los usos generales más frecuentes son escribir pruebas unitarias, ejecutar bucles de corrección de código hasta que las pruebas pasen, configurar flujos de OAuth y tareas de scaffolding de API
- También ofrecen un SDK alpha para usuarios que quieran usar Codebuff en sus propios sistemas
- La app puede invocar la misma interfaz en lenguaje natural y recibir edición de código
- Enlace para solicitar early access: Retool form
1 comentarios
Opiniones en Hacker News
Felicidades por el lanzamiento de Codebuff, pero parece muy similar a Aider. Aider es de código abierto y solo hay que aprobar cuando pide agregar archivos. Aider también puede ejecutar comandos. Me pregunto cuál es la diferencia
Las demos siempre se aplican solo a proyectos simples, y faltan ejemplos sobre proyectos complejos reales. Necesito ayuda para resolver las partes difíciles de un PR. Muchas herramientas ayudan a empezar, pero se quedan cortas al resolver problemas
No quiero pagar $20 por enviar mis claves SSH y mi portapapeles a varios terceros. Quisiera comprar software que ofrezca soporte de shell inline sin llamadas de red. Esa es mi opinión general sobre este tipo de productos
Codebuff antes se conocía como manicode y es útil para tareas complejas de refactorización. Lo usé en un proyecto de Rust para separar archivos en directorios de módulos, y puede ejecutar pruebas y revisar errores de compilación. Esta tarea consumió alrededor de 100 créditos
Me pregunto si el código se envía a través de sus servidores. Creo que sería mejor implementarlo como un servicio local. También me pregunto si el LLM puede recibir comandos que provoquen pérdida de archivos y cómo piensan evitarlo
Es riesgoso y vulnerable desde el punto de vista de seguridad que un LLM ejecute comandos sin revisión humana
Ya existen AIDE, Continue, Cody, Aider y Cursor. Me pregunto por qué debería usar esta herramienta
Probé esta herramienta y tiene aspectos mejores que CoPilot y Cursor. En particular, no da la sensación de estar “compitiendo” con el editor, especialmente en comparación con CoPilot. Tengo preocupaciones de seguridad y me pregunto cómo manejan los archivos sensibles
Me pregunto si es mejor que Cursor en términos de calidad de código. Uso Cursor y me ahorra tiempo al copiar archivos. Aun así, sigo programando usando la interfaz de chatGPT/claude
Ajusté finamente GPT-4o para convertir los bocetos de cambios de Claude en parches de git. Los datos de entrenamiento se generaron tarde en la noche y el trabajo de ajuste fino se ejecutó mientras dormía. Me pregunto cuál era el contenido completo de los datos de entrenamiento y cómo funcionaban exactamente los bocetos de cambios y los parches de git