Cómo escribir código con IA en la terminal sin Electron ni Node.js
La mayoría de los asistentes de codificación con IA modernos se construyen básicamente de la misma manera. Se empaquetan en aplicaciones Electron monstruosas, arrastrando Node.js, Python o entornos de ejecución pesados, consumiendo unos cientos de megabytes de RAM antes de la primera solicitud e intentando dominar toda la pantalla. Si estás trabajando en un servidor limitado, una laptop antigua o simplemente prefieres las utilidades rápidas de Unix, este enfoque se vuelve rápidamente frustrante.
Hace poco me encontré con un proyecto interesante llamado hax de Alexander Chekhovsky. Es un agente de codificación compacto para terminal escrito en C puro. El autor decidió ir en contra de la tendencia de los contenedores pesados y creó una herramienta que se inicia al instante y ocupa solo unos pocos megabytes.

¿Qué es y por qué lo necesitas?
Hax es una utilidad CLI compilada en un único binario nativo. El proceso ocupa solo unos pocos megabytes en memoria. Si estás ejecutando redes neuronales locales a través de llama.cpp directamente en tu estación de trabajo, cada gigabyte de RAM ahorrado importa, ya que la memoria se necesita para el contexto y los pesos del modelo.
La herramienta fue diseñada para quienes no quieren ver mercados de plugins, paneles web voluminosos y diálogos interminables de confirmación de permisos. Todo aquí sigue la filosofía clásica de Unix: hay stdin, stdout, configuraciones claras y la capacidad de integrar la utilidad en pipelines regulares.
Qué hace interesante este proyecto en la práctica
A diferencia de muchos wrappers CLI alrededor de APIs, hax está diseñado específicamente como una herramienta para trabajo continuo en consola.
Amable con la terminal
Hax no rompe el scrollback de la terminal y no redibuja toda la pantalla a través de ncurses. La utilidad genera Markdown en streaming con ajuste de línea y solo actualiza la línea actual o el área de entrada. Todo tu historial de terminal permanece en su lugar, y el texto se puede copiar de forma segura con el mouse sin artefactos pseudográficos.
Modelos locales sin complicaciones
Para ejecución local, simplemente inicia llama-server o lanza ollama. Hax puede detectar automáticamente instancias de llama.cpp en ejecución, determinar los parámetros del modelo y ajustar el contexto. No necesitas escribir configuraciones JSON de varias páginas solo para una prueba local.
Transparencia en las solicitudes de red
En cualquier momento, puedes presionar Ctrl+T directamente en la sesión interactiva y ver la transcripción exacta de lo que se envió al modelo y lo que regresó en respuesta. Si estás depurando prompts o quieres verificar que no se hayan filtrado archivos adicionales al contexto, esta función ahorra mucha frustración. También hay un modo para recopilar registros detallados del protocolo de red.
Compatibilidad con diferentes proveedores
La utilidad funciona con APIs en la nube estándar y motores locales:
- OpenAI y endpoints compatibles mediante la tecla
OPENAI_API_KEY - Anthropic Claude mediante
ANTHROPIC_API_KEY - OpenRouter, OpenCode Zen / Go
- Codex mediante inicio de sesión interactivo de suscripción ChatGPT (
/login) - llama.cpp local y Ollama
Instalación y compilación
Hax funciona en Linux, macOS, FreeBSD y OpenBSD. Los usuarios de Windows pueden ejecutarlo dentro de WSL.
En macOS y Linux, la forma más sencilla de instalar la utilidad es mediante Homebrew:
brew install oleksandrchekhovskyi/hax/hax
En Arch Linux, el paquete está disponible en AUR bajo el nombre hax.
Si quieres compilar el binario manualmente y enlazarlo con las bibliotecas del sistema:
git clone https://github.com/OleksandrChekhovskyi/hax.git
cd hax
scripts/install_deps.sh
make
make install
El script de dependencias incluye el compilador C, libcurl, jansson, meson, ninja, pkg-config, fzf y @file para autocompletado de nombres de archivo mediante la sintaxis /provider.
Cómo trabajar con él
El modo principal de operación es un REPL interactivo directamente en el directorio del proyecto:
hax
Los comandos con barra diagonal están disponibles dentro. Por ejemplo, /provider muestra una lista de backends y modelos disponibles, mientras que /help muestra los atajos de teclado. Hax recuerda el modelo y proveedor seleccionado entre ejecuciones.
Para scripts y automatización rápida, hay un modo de una sola vez -p:
# Задать разовый вопрос по коду в текущей папке
hax -p "найди места с утечками памяти в main.c"
# Передать данные через пайп
git diff | hax -p "напиши понятный commit message по этому диффу"
# Продолжить последнюю сессию для этого каталога
hax -c
En el modo -p, la utilidad solo genera la respuesta limpia a stdout, enviando sugerencias de servicio a stderr. Esto facilita combinarla con grep, xargs y otras utilidades de Unix.
Bajo el capó
El proyecto está escrito en C estándar sin marcos pesados. Las solicitudes de red se manejan a través de libcurl, y el análisis y construcción de JSON dependen de una biblioteca compacta jansson.
Toda la arquitectura está construida alrededor de la auditabilidad del código. Las sesiones y configuraciones se almacenan como archivos de texto plano siguiendo el estándar XDG. En lugar de un sistema de plugins complejo, la funcionalidad se extiende mediante la creación de subprocesos del sistema operativo.
Para quién es este proyecto
Si necesitas un IDE completo con chats integrados y gráficos visuales, hax probablemente no te servirá. No hay plugins ni integraciones de menú de editor aquí.
Pero si estás acostumbrado a trabajar en tmux, ejecutar LLMs locales mediante llama-server en tu propio hardware o administrar servidores remotos sobre SSH, definitivamente vale la pena probar hax. No hace ruido, no consume recursos y hace exactamente lo que se le pide.
Proyectos relacionados