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:

  • Interactieve REPL:

``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.