gi-dellav/zerostack
Lightweight coding agent written in Rust, optimized for memory footprint and performance
zerostack – 軽量なRustベースのコーディングアシスタント
概要 – zerostackは、ターミナルベースのAI「コーディングエージェント」で、コードの作成、計画、レビュー、デバッグ、リファクタリングを行うことができます。大規模言語モデルプロバイダー(OpenAI、Anthropic、Gemini、OpenRouter、Ollamaなど)と通信し、組み込みのユーティリティツールボックス(ファイル読み書き、grep、git、シェルコマンド、ウェブ検索など)を使用して要求されたタスクを実行します。システム全体はRustで書かれた単一のネイティブバイナリ(約26MB)として動作し、JavaScriptベースの代替品と比較して低メモリ/CPU使用率を目指しています。
主な機能
- マルチプロバイダー対応 – 任意のLLMサービスに加え、カスタムプロバイダーフックをプラグインできます。
- 豊富なプロンプトライブラリ –
code、plan、review、debug、brainstorm、frontend-designなどの組み込みシステムプロンプトを実行時に切り替えたり、独自のMarkdownプロンプトを追加したりできます。 - 権限システム – エージェントが呼び出せるツールを制御する5つの安全モード(
restrictive、readonly、guarded、standard、yolo)があり、ツールごとのグロブルールとセッション全体の許可リストがあります。 - セッション永続化 – セッションの保存、読み込み、再開が可能。自動コンテキストウィンドウ圧縮、実行間でシステムプロンプトに注入されるオプションのプレーンマークダウンメモリ。
- ターミナルUI – crossterm TUIで、Markdownレンダリング、マウスコピー、スクロールバック、モデルの「思考」トレースを表示するトグルを備えています。
- 拡張性 – オプションのコンパイル時機能:
- MCP(エージェント通信プロトコル)でZedなどのエディタに接続。
- アドバイザー – 戦略的ガイダンスのために相談したり、人間に引き継いだりできるセカンドモデル。
- フック – Claude Codeと同じJSONコントラクトを使用して、ツール呼び出しを監視または拒否できる外部コマンド。
- マルチモーダル入力 – 画像やPDFを添付(プロバイダーがサポートしている場合)。
- ステータスシグナル – 外部ステータスバー用にUnixソケット経由で実行状態イベントを発行。
- サブエージェントと並列作業 – コードベースを探索するための高速な並列サブエージェントを起動したり、
multistackを実行して複数のエージェントを同時に管理したりできます。 - サンドボックス化 – エージェントが実行するシェルコマンドに対して、オプションの
bubblewrap(Linux)またはzerobox(macOS)による分離を提供し、資格情報ディレクトリの細かい露出とネットワーク制御を実現します。
使用方法
- 提供されたスクリプト、Cargo、Homebrew、またはNixでインストールします。
- LLMプロバイダーのAPIキーをエクスポートします(デフォルトはOpenRouter)。
zerostackを実行すると、自然言語リクエストを入力できるTUIが表示されます。/prompt <name>または/mode <permission-mode>でエージェントの動作をその場で変更します。- セッションを保存(
/session save)し、後で再開します(zerostack -c)。
重要性
- パフォーマンス – 約16MiBのRAMとほぼゼロのアイドルCPUで、低スペックマシンや長時間のセッションに適しています。
- 安全性 – 権限システムとサンドボックス化は、自律型コーディングボットでよくある問題である、偶発的な破壊的コマンドを防ぐことを目的としています。
- ネイティブRust – 多くの競合エージェントが必要とする重いNode.jsランタイムを回避し、起動が速く、攻撃面が小さくなります。
- カスタマイズ可能なワークフロー – プロンプトチェーンにより、ブレインストーミング→計画→コーディング→レビューの流れをガイド付きで繰り返し実行できます。
はじめに – リポジトリには完全なGet Startedガイド、クイックインストールスクリプト、コミュニティサポート用の専用Matrixチャットルームが含まれています。
上記の詳細はすべてプロジェクトのREADMEから直接取得しています。
関連
- Dispatch
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト