>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
C

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.

hax che risponde a una domanda sul proprio codice sorgente usando un modello llama.cpp locale

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