プログラミング
Hax – C言語で書かれたミニマルなターミナルネイティブコーディングエージェント
Hax – a minimalist, terminal-native coding agent written in C (usehax.dev)
要約
Haxは、C言語で書かれた軽量かつミニマルなターミナルネイティブのコーディングエージェントです。単一のネイティブバイナリで、依存関係が少なく、起動が速く、メモリ使用量もわずか数MBです。ローカルモデルを第一に考え、ストリーミング表示やターミナル操作を尊重し、OpenAI互換、Anthropic互換、llama.cppなど様々なプロバイダーやモデルをサポートしています。開発者がターミナル中心のワークフローで、ローカルモデルを使い、ツールの動作を監査したい場合に最適です。
全文翻訳
軽量設計
単一のネイティブCバイナリで、依存関係は少量です。瞬時に起動し、メモリ使用量もわずか数MBなので、ローカルLLMのためにRAMをより多く残せます。
ローカルモデルは第一級市民
haxはモデルとランタイムの機能を自動検出します。デフォルト設定ではカスタムプロバイダー設定ブロックは不要です。llama-server -m [model].gguf hax --provider llama.cpp
ターミナルを尊重
ストリーミングMarkdownとライブツール出力をターミナルに表示するためにリフローします。現在のストリーミング行または入力領域のみを再描画し、ネイティブのスクロールバックは保持されます。ターミナルを乗っ取ったり、混乱させたりしません。
検査可能
モデルに送信されたものと、それが返信したものを、使用可能なトランスクリプトビュー(Ctrl+T)で正確に確認できます。オプションで詳細なワイヤプロトコルトレースを収集できます。
任意のプロバイダー/モデルを使用
OpenAI(互換含む)、Anthropic(互換含む)、Codex(ChatGPTサブスクリプション経由)、OpenRouter、llama.cppなどをサポートしています。
挙動の良いUnixツール
XDGパス、-p one-shotモードでのクリーンな標準出力(標準エラー出力に再開ヒントあり)、プレーンテキストの設定ファイルとセッションファイル、プラグインではなくサブプロセスによる構成。
ターゲットユーザー
ターミナルで生活し、ローカルモデルを実行し、ツールの動作を監査し、ディストリビューション向けにソフトウェアをパッケージ化し、リソースが限られた環境でエージェントを実行する開発者。MCPマーケットプレイス、プラグインランタイム、IDEパネル、またはコマンドごとの権限プロンプトが必要な場合は、他のエージェントがまさにそれらを構築しています — haxは意図的にそれらを排除しており、docs/philosophy.mdに各省略とニーズをカバーするパターンが説明されています。「古いスタイルのミニマルパッケージに新しい派手なAI技術」があなたのスタイルに合うなら、気に入るかもしれません。
開始方法
haxはLinuxとmacOSで動作します。WindowsではWSL下で使用してください。
Homebrew(macOSまたはLinux)を使用する場合:
brew install oleksandrchekhovskyi/hax/hax
Linuxでは、最新リリースからお使いのアーキテクチャ(x86_64またはaarch64)用のプリビルド静的バイナリをダウンロードし、haxバイナリをPATH上の任意のディレクトリに展開してください。
ソースからビルドすると、静的ライブラリではなくシステム共有ライブラリにリンクされたバイナリが得られます。
git clone https://github.com/OleksandrChekhovskyi/hax.git
cd hax
scripts/install_deps.sh # Debian/Ubuntu, Fedora, Arch, openSUSE, Alpine, macOS
make # バイナリは./build/haxにあります
make install # オプション; sudoを要求する場合があります
scripts/install_deps.shは、Cコンパイラ、libcurl、jansson、meson、ninja、pkg-config、およびhaxが利用可能な場合にファイル補完に使用するfzfをビルド依存関係としてインストールします。
動作させたいプロジェクトディレクトリからhaxを実行します。
hax # インタラクティブREPL
hax -p "list TODOs" # 1つのプロンプトを実行し、最終的な回答を表示
printf "explain x" | hax -p # 標準入力からプロンプトを読み取る
hax -c # このディレクトリの最新セッションを続行
hax --resume # このディレクトリの過去のセッションを選択
hax --resume=ID -p "next" # ワンショットモードで特定のセッションを再開
最初の実行で最も簡単なのはインタラクティブモードです。haxを開始し、/providerを使用して利用可能なプロバイダーを確認し、モデルを選択します。haxはインタラクティブなプロバイダー、モデル、およびエフォートの選択を記憶します。プロバイダーの設定と完全なドキュメントについては、READMEを参照してください。