>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

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

Code mit KI im Terminal schreiben ohne Electron und Node.js

Die meisten modernen KI-Coding-Assistenten sind ungefähr gleich aufgebaut. Sie werden in riesige Electron-Apps gepackt, schleppen Node.js, Python oder schwere Runtimes mit, verbrauchen ein paar hundert Megabyte RAM, bevor die erste Anfrage gestellt wird, und versuchen, den gesamten Bildschirm zu übernehmen. Wenn Sie auf einem schwachen Server, einem alten Laptop arbeiten oder einfach schnelle Unix-Tools bevorzugen, wird dieser Ansatz schnell frustrierend.

Kürzlich bin ich auf ein interessantes Projekt namens hax von Alexander Chekhovsky gestoßen. Es ist ein kompakter Terminal-Coding-Agent in reinem C. Der Autor hat sich gegen den Trend schwerer Wrapper entschieden und ein Tool geschaffen, das sofort startet und nur wenige Megabyte wiegt.

hax beantwortet eine Frage zu seinem eigenen Quellcode unter Verwendung eines lokalen llama.cpp-Modells

Was es ist und warum Sie es brauchen

Hax ist ein CLI-Tool, das in eine einzelne native Binärdatei kompiliert wird. Der Prozess benötigt nur wenige Megabyte Speicher. Wenn Sie lokale neuronale Netze direkt über llama.cpp auf Ihrem Rechner ausführen, zählt jedes gesparte Gigabyte RAM, da Speicher für den Modellkontext und die Gewichte benötigt wird.

Das Tool wurde für diejenigen entwickelt, die keine Plugin-Marktplätze, aufgeblähte Web-Dashboards und endlose Berechtigungsbestätigungsdialoge sehen wollen. Hier folgt alles der klassischen Unix-Philosophie: Es gibt stdin, stdout, klare Konfigurationen und die Möglichkeit, das Tool in normale Pipelines einzubetten.

Was dieses Projekt in der Praxis interessant macht

Im Gegensatz zu vielen CLI-Wrappern um APIs ist hax speziell als Tool für kontinuierliche Konsolenarbeit konzipiert.

Schonend für das Terminal

Hax zerstört nicht den Terminal-Scrollback und zeichnet nicht den gesamten Bildschirm über ncurses neu. Das Tool gibt Streaming-Markdown mit Zeilenumbruch aus und aktualisiert nur die aktuelle Zeile oder den Eingabebereich. Ihr gesamter Terminal-Verlauf bleibt erhalten, und Text kann sicher mit der Maus kopiert werden, ohne Pseudografik-Artefakte.

Lokale Modelle ohne Umwege

Für den lokalen Betrieb starten Sie einfach llama-server oder launchen ollama. Hax kann laufende llama.cpp-Instanzen automatisch erkennen, Modellparameter bestimmen und den Kontext anpassen. Es ist nicht nötig, mehrseitige JSON-Konfigurationen nur für einen lokalen Test zu schreiben.

Transparenz bei Netzwerkanfragen

Jederzeit können Sie Ctrl+T direkt in der interaktiven Sitzung drücken und sehen das genaue Transkript dessen, was an das Modell gesendet wurde und was als Antwort zurückkam. Wenn Sie Prompts debuggen oder überprüfen möchten, dass keine zusätzlichen Dateien in den Kontext gelangt sind, spart diese Funktion viel Frust. Es gibt auch einen Modus für die Sammlung detaillierter Netzwerkprotokoll-Logs.

Unterstützung verschiedener Anbieter

Das Tool funktioniert mit Standard-Cloud-APIs und lokalen Engines:

  • OpenAI und kompatible Endpoints über die OPENAI_API_KEY-Taste
  • Anthropic Claude über ANTHROPIC_API_KEY
  • OpenRouter, OpenCode Zen / Go
  • Codex über interaktiven ChatGPT-Abonnement-Login (/login)
  • Lokales llama.cpp und Ollama

Installation und Build

Hax funktioniert unter Linux, macOS, FreeBSD und OpenBSD. Windows-Nutzer können es innerhalb von WSL ausführen.

Unter macOS und Linux ist der einfachste Weg, das Tool zu installieren, über Homebrew:

brew install oleksandrchekhovskyi/hax/hax

Unter Arch Linux ist das Paket im AUR unter dem Namen hax verfügbar.

Wenn Sie die Binärdatei manuell bauen und mit Systembibliotheken verknüpfen möchten:

git clone https://github.com/OleksandrChekhovskyi/hax.git
cd hax
scripts/install_deps.sh
make
make install

Das Abhängigkeitsskript zieht den C-Compiler, libcurl, jansson, meson, ninja, pkg-config und fzf für Dateinamen-Autovervollständigung über @file-Syntax herein.

Wie Sie damit arbeiten

Der primäre Betriebsmodus ist eine interaktive REPL direkt im Projektverzeichnis:

hax

Slash-Befehle sind verfügbar. Zum Beispiel gibt /provider eine Liste der verfügbaren Backends und Modelle aus, während /help die Tastenkürzel anzeigt. Hax merkt sich das ausgewählte Modell und den Anbieter zwischen den Sitzungen.

Für Skripte und schnelle Automatisierung gibt es einen Einweg-Modus -p:

# Задать разовый вопрос по коду в текущей папке
hax -p "найди места с утечками памяти в main.c"

# Передать данные через пайп
git diff | hax -p "напиши понятный commit message по этому диффу"

# Продолжить последнюю сессию для этого каталога
hax -c

Im -p-Modus gibt das Tool nur die saubere Antwort an stdout aus und sendet Service-Hinweise an stderr. Dies macht es einfach, es mit grep, xargs und anderen Unix-Tools zu kombinieren.

Unter der Haube

Das Projekt ist in Standard-C geschrieben, ohne schwere Frameworks. Netzwerkanfragen werden über libcurl abgewickelt, und JSON-Parsing und -Konstruktion basieren auf einer kompakten Bibliothek jansson.

Die gesamte Architektur dreht sich um Nachvollziehbarkeit des Codes. Sitzungen und Einstellungen werden als einfache Textdateien im XDG-Standard gespeichert. Anstatt eines komplexen Plugin-Systems wird die Funktionalität durch das Starten von OS-Unterprozessen erweitert.

Für wen dieses Projekt geeignet ist

Wenn Sie eine schwere IDE-Suite mit integrierten Chats und visuellen Graphen benötigen, ist hax wahrscheinlich nichts für Sie. Es gibt hier keine Plugins oder Editor-Menü-Integrationen.

Aber wenn Sie es gewohnt sind, in tmux zu arbeiten, lokale LLMs über llama-server auf Ihrer eigenen Hardware auszuführen oder Remote-Server über SSH zu verwalten, lohnt es sich definitiv, hax auszuprobieren. Es macht keinen Lärm, verbraucht keine Ressourcen und macht genau das, was von ihm verlangt wird.

Ähnliche Projekte