Come Scrivere Codice con l'AI nel Terminale Senza Electron e Node.js
La maggior parte dei moderni assistenti di codifica AI sono costruiti più o meno allo stesso modo. Sono racchiusi in mostruose app Electron, trascinandosi dietro Node.js, Python o runtime pesanti, consumando un paio di centinaia di megabyte di RAM prima ancora della prima richiesta e cercando di prendere il controllo dell'intero schermo. Se stai lavorando su un server debole, un vecchio portatile, o semplicemente preferisci le utility Unix veloci, questo approccio diventa rapidamente frustrante.
Recentemente mi sono imbattuto in un progetto interessante chiamato hax di Alexander Chekhovsky. È un agente di codifica compatto per terminale scritto in puro C. L'autore ha deciso di andare contro la tendenza dei wrapper pesanti e ha creato uno strumento che si avvia istantaneamente e pesa solo pochi megabyte.

Cos'è e Perché Ti Serve
Hax è un'utility CLI compilata in un singolo binario nativo. Il processo occupa solo pochi megabyte in memoria. Se stai eseguendo reti neurali locali attraverso llama.cpp direttamente sulla tua workstation, ogni gigabyte di RAM risparmiato conta, dato che la memoria è necessaria per il contesto e i pesi del modello.
Lo strumento è stato progettato per chi non vuole vedere marketplace di plugin, dashboard web ingombranti e infiniti dialoghi di conferma dei permessi. Qui tutto segue la classica filosofia Unix: c'è stdin, stdout, configurazioni chiare e la possibilità di incorporare l'utility in pipeline normali.
Cosa Rende Questo Progetto Interessante in Pratica
A differenza di molti wrapper CLI attorno alle API, hax è progettato specificamente come strumento per il lavoro continuo in console.
Delicato con il Terminale
Hax non rompe lo scrollback del terminale e non ridisegna l'intero schermo attraverso ncurses. L'utility emette Markdown in streaming con ritorno a capo automatico e aggiorna solo la riga corrente o l'area di input. L'intera cronologia del terminale rimane al suo posto e il testo può essere copiato liberamente con il mouse senza artefatti pseudografici.
Modelli Locali Senza Complicazioni
Per l'esecuzione locale, basta avviare llama-server o lanciare ollama. Hax può rilevare automaticamente le istanze llama.cpp in esecuzione, determinare i parametri del modello e regolare il contesto. Non c'è bisogno di scrivere configurazioni JSON di più pagine solo per un test locale.
Trasparenza delle Richieste di Rete
In qualsiasi momento, puoi premere Ctrl+T direttamente nella sessione interattiva e vedere l'esatta trascrizione di ciò che è stato inviato al modello e di ciò che è tornato in risposta. Se stai debuggando prompt o vuoi verificare che file extra non siano trapelati nel contesto, questa funzionalità fa risparmiare molta frustrazione. C'è anche una modalità per raccogliere log dettagliati del protocollo di rete.
Supporto per Diversi Provider
L'utility funziona con API cloud standard e motori locali:
- OpenAI ed endpoint compatibili tramite il tasto
OPENAI_API_KEY - Anthropic Claude tramite
ANTHROPIC_API_KEY - OpenRouter, OpenCode Zen / Go
- Codex tramite login interattivo dell'abbonamento ChatGPT (
/login) - llama.cpp locale e Ollama
Installazione e Compilazione
Hax funziona su Linux, macOS, FreeBSD e OpenBSD. Gli utenti Windows possono eseguirlo dentro WSL.
Su macOS e Linux, il modo più semplice per installare l'utility è tramite Homebrew:
brew install oleksandrchekhovskyi/hax/hax
In Arch Linux, il pacchetto è disponibile in AUR con il nome hax.
Se vuoi compilare il binario manualmente e collegarlo con le librerie di sistema:
git clone https://github.com/OleksandrChekhovskyi/hax.git
cd hax
scripts/install_deps.sh
make
make install
Lo script delle dipendenze installa il compilatore C, libcurl, jansson, meson, ninja, pkg-config e fzf per l'autocompletamento dei nomi dei file tramite sintassi @file.
Come Lavorare con Questo Strumento
La modalità principale di funzionamento è un REPL interattivo direttamente nella directory del progetto:
hax
I comandi slash sono disponibili all'interno. Ad esempio, /provider mostra un elenco dei backend e modelli disponibili, mentre /help mostra le scorciatoie da tastiera. Hax ricorda il modello e il provider selezionati tra le esecuzioni.
Per script e automazione rapida, c'è una modalità one-off -p:
# Задать разовый вопрос по коду в текущей папке
hax -p "найди места с утечками памяти в main.c"
# Передать данные через пайп
git diff | hax -p "напиши понятный commit message по этому диффу"
# Продолжить последнюю сессию для этого каталога
hax -c
In modalità -p, l'utility emette solo la risposta pulita su stdout, inviando suggerimenti di servizio su stderr. Questo rende facile combinarlo con grep, xargs e altre utility Unix.
Sotto il Cofano
Il progetto è scritto in C standard senza framework pesanti. Le richieste di rete sono gestite attraverso libcurl, e l'analisi e la costruzione JSON si basano su una libreria compatta jansson.
L'intera architettura è costruita attorno all'auditabilità del codice. Le sessioni e le impostazioni sono memorizzate come file di testo semplice seguendo lo standard XDG. Invece di un sistema di plugin complesso, la funzionalità è estesa attraverso il spawning di sottoprocessi del sistema operativo.
A Chi Serve Questo Progetto
Se hai bisogno di una pesante suite IDE con chat integrate e grafici visivi, hax probabilmente non fa per te. Non ci sono plugin o integrazioni con menu di editor qui.
Ma se sei abituato a lavorare in tmux, eseguire LLM locali tramite llama-server sul tuo hardware, o amministrare server remoti via SSH, hax vale sicuramente la pena provarlo. Non fa rumore, non consuma risorse e fa esattamente ciò che gli viene chiesto.
Progetti correlati