Wat is hax?
hax is een minimalistische coding agent specifiek ontwikkeld voor gebruik in de terminal. Omdat het programma volledig in C is geschreven, bestaat het uit een kleine native binary die zeer weinig geheugen verbruikt en onmiddellijk start.
Belangrijkste kenmerken:
- Lichtgewicht design: Het lage RAM-verbruik zorgt ervoor dat er meer resources beschikbaar blijven voor het draaien van lokale taalmodellen (LLM's).
- Brede modelondersteuning: hax ondersteunt zowel lokale runtimes zoals
llama.cpp als diverse cloudproviders waaronder OpenAI, Anthropic en OpenRouter.
- Terminal-integratie: De tool is optimaal afgestemd op de terminal; streaming Markdown wordt zo weergegeven dat de native scrollback behouden blijft.
- Inspecteerbaarheid: Via een transcriptieoverzicht (
Ctrl+T) kunnen gebruikers precies controleren welke prompts naar het model zijn gestuurd en wat de antwoorden waren.
- Unix-standaarden: Het programma volgt de Unix-filosofie door gebruik te maken van XDG-paden, platte tekst voor configuratie en subprocessen in plaats van plugins.
Installatie en Gebruik
hax is compatibel met Linux en macOS (onder andere via Homebrew) en kan op Windows worden gebruikt via WSL. De tool biedt zowel een interactieve REPL-modus als een 'one-shot' modus voor directe prompts vanuit de commandline.
hax — een minimalistische, terminal-native coding agent
Belangrijkste kenmerken
Lichtgewicht design
hax bestaat uit één enkele native C-binary met een kleine set afhankelijkheden. Het start onmiddellijk en verbruikt zeer weinig geheugen (slechts enkele MB's), waardoor er meer RAM beschikbaar blijft voor lokale LLM's.
Lokale modellen als eersteklas burgers
hax ontdekt automatisch de mogelijkheden van het model en de runtime. Voor de standaardconfiguratie is geen aangepast provider-configuratieblok nodig.
llama-server -m [model].gguf
hax --provider llama.cpp
Respect voor de terminal
Streaming Markdown en live tool-output worden automatisch aangepast voor weergave in de terminal. Alleen de huidige streaming-regel of het invoergebied wordt opnieuw getekend, waardoor de native scrollback behouden blijft. De tool neemt de terminal niet over en verstoort deze niet.
Inspecteerbaar
Via een transcriptieoverzicht (Ctrl+T) kun je precies zien wat er naar het model is gestuurd en wat het antwoord was. Optioneel kan een gedetailleerd wire-protocol trace worden verzameld.
Ondersteuning voor diverse providers en modellen
hax ondersteunt onder andere:
- OpenAI (+ compatibele providers)
- Anthropic (+ compatibele providers)
- Codex (via ChatGPT-abonnement)
- OpenRouter
- llama.cpp
Een correcte Unix-tool
De tool maakt gebruik van XDG-paden en biedt een schone stdout in de -p one-shot modus, met resume-hints op stderr. Configuratie- en sessiebestanden zijn in platte tekst. Compositie vindt plaats via subprocessen in plaats van plugins.
Doelgroep
hax is bedoeld voor ontwikkelaars die:
- voornamelijk in de terminal werken;
- lokale modellen draaien;
- willen controleren wat hun tools precies doen;
- software verpakken voor distributies;
- agents draaien in omgevingen waar resources schaars zijn.
Indien u op zoek bent naar MCP-marketplaces, een plugin-runtime, IDE-panelen of toestemmingsprompts per commando, dan bieden andere agents dat aan. hax laat dit bewust weg; de redenen hiervoor en de patronen die deze behoeften dekken, worden uitgelegd in docs/philosophy.md.
Aan de slag
hax draait op Linux en macOS. Op Windows kan het gebruikt worden via WSL.
Installatie via Homebrew (macOS of Linux)
brew install oleksandrchekhovskyi/hax/hax
Installatie op Linux (binair bestand)
Download de vooraf gebouwde statische binary voor jouw architectuur (x86_64 of aarch64) vanuit de nieuwste release en pak het hax-binary uit in een map die in je PATH staat.
Bouwen vanuit broncode
Het bouwen uit broncode resulteert in een binary die is gekoppeld aan de gedeelde bibliotheken van je systeem in plaats van een statische versie:
git clone https://github.com/OleksandrChekhovskyi/hax.git
cd hax
scripts/install_deps.sh # Voor Debian/Ubuntu, Fedora, Arch, openSUSE, Alpine, macOS
make # De binary staat nu in ./build/hax
make install # Optioneel; kan vragen om sudo
Het script scripts/install_deps.sh installeert de benodigde build-dependencies: een C-compiler, libcurl, jansson, meson, ninja en pkg-config, evenals fzf (die hax gebruikt voor @file aanvulling indien beschikbaar).
Gebruik
Start hax vanuit de projectmap waarin je wilt werken:
``bash hax ``
- Eén prompt uitvoeren en het definitieve antwoord printen:
``bash hax -p "list TODOs" ``
- Prompt lezen vanuit stdin:
``bash printf "explain x" | hax -p ``
- De laatste sessie voor deze directory voortzetten:
``bash hax -c ``
- Een eerdere sessie voor deze directory kiezen:
``bash hax --resume ``
- Een specifieke sessie hervatten in one-shot modus:
``bash hax --resume=ID -p "next" ``
De eenvoudigste manier om te beginnen is de interactieve modus: start hax en gebruik het commando /provider om de beschikbare providers te bekijken en een model te kiezen. hax onthoudt de geselecteerde provider, het model en de gekozen 'effort' (inspanning) voor toekomstige interactieve sessies.
Voor de volledige documentatie en provider-instellingen kun je terecht in de README.
hax — een minimalistische, terminal-native coding agent
Belangrijkste kenmerken
Lichtgewicht design
hax bestaat uit één enkele native C-binary met een kleine set afhankelijkheden. Het start onmiddellijk en verbruikt zeer weinig geheugen (slechts enkele MB's), waardoor er meer RAM beschikbaar blijft voor lokale LLM's.
Lokale modellen als eersteklas burgers
hax ontdekt automatisch de mogelijkheden van het model en de runtime. Voor de standaardconfiguratie is geen aangepast provider-configuratieblok nodig.
llama-server -m [model].gguf
hax --provider llama.cpp
Respect voor de terminal
Streaming Markdown en live tool-output worden automatisch aangepast voor weergave in de terminal. Alleen de huidige streaming-regel of het invoergebied wordt opnieuw getekend, waardoor de native scrollback behouden blijft. De tool neemt de terminal niet over en verstoort deze niet.
Inspecteerbaar
Via een transcriptieoverzicht (Ctrl+T) kun je precies zien wat er naar het model is gestuurd en wat het antwoord was. Optioneel kan een gedetailleerd wire-protocol trace worden verzameld.
Ondersteuning voor diverse providers en modellen
hax ondersteunt onder andere:
- OpenAI (+ compatibele providers)
- Anthropic (+ compatibele providers)
- Codex (via ChatGPT-abonnement)
- OpenRouter
- llama.cpp
Een correcte Unix-tool
De tool maakt gebruik van XDG-paden en biedt een schone stdout in de -p one-shot modus, met resume-hints op stderr. Configuratie- en sessiebestanden zijn in platte tekst. Compositie vindt plaats via subprocessen in plaats van plugins.
Doelgroep
hax is bedoeld voor ontwikkelaars die:
- voornamelijk in de terminal werken;
- lokale modellen draaien;
- willen controleren wat hun tools precies doen;
- software verpakken voor distributies;
- agents draaien in omgevingen waar resources schaars zijn.
Indien u op zoek bent naar MCP-marketplaces, een plugin-runtime, IDE-panelen of toestemmingsprompts per commando, dan bieden andere agents dat aan. hax laat dit bewust weg; de redenen hiervoor en de patronen die deze behoeften dekken, worden uitgelegd in docs/philosophy.md.
Aan de slag
hax draait op Linux en macOS. Op Windows kan het gebruikt worden via WSL.
Installatie via Homebrew (macOS of Linux)
brew install oleksandrchekhovskyi/hax/hax
Installatie op Linux (binair bestand)
Download de vooraf gebouwde statische binary voor jouw architectuur (x86_64 of aarch64) vanuit de nieuwste release en pak het hax-binary uit in een map die in je PATH staat.
Bouwen vanuit broncode
Het bouwen uit broncode resulteert in een binary die is gekoppeld aan de gedeelde bibliotheken van je systeem in plaats van een statische versie:
git clone https://github.com/OleksandrChekhovskyi/hax.git
cd hax
scripts/install_deps.sh # Voor Debian/Ubuntu, Fedora, Arch, openSUSE, Alpine, macOS
make # De binary staat nu in ./build/hax
make install # Optioneel; kan vragen om sudo
Het script scripts/install_deps.sh installeert de benodigde build-dependencies: een C-compiler, libcurl, jansson, meson, ninja en pkg-config, evenals fzf (die hax gebruikt voor @file aanvulling indien beschikbaar).
Gebruik
Start hax vanuit de projectmap waarin je wilt werken:
``bash hax ``
- Eén prompt uitvoeren en het definitieve antwoord printen:
``bash hax -p "list TODOs" ``
- Prompt lezen vanuit stdin:
``bash printf "explain x" | hax -p ``
- De laatste sessie voor deze directory voortzetten:
``bash hax -c ``
- Een eerdere sessie voor deze directory kiezen:
``bash hax --resume ``
- Een specifieke sessie hervatten in one-shot modus:
``bash hax --resume=ID -p "next" ``
De eenvoudigste manier om te beginnen is de interactieve modus: start hax en gebruik het commando /provider om de beschikbare providers te bekijken en een model te kiezen. hax onthoudt de geselecteerde provider, het model en de gekozen 'effort' (inspanning) voor toekomstige interactieve sessies.
Voor de volledige documentatie en provider-instellingen kun je terecht in de README.