patriceckhart/zot

Yet another coding agent harness, lightweight and written in go.

zot – Goベースのコーディングアシスタントハーネス

機能

  • 単一の静的バイナリで、コード関連タスクのために大規模言語モデル(LLM)と対話できます。
  • 30以上のLLMプロバイダーをすぐにサポート(Anthropic、OpenAI/Codex、Google Gemini、Ollamaなど)。Ollamaを介してローカルモデルも呼び出せます。
  • モデルが呼び出せる組み込みツール(ファイル読み書き、編集、bashコマンド実行、グロブ)を提供し、LLMを自律型コーディングエージェントに変えます。
  • 3つのモードで動作します:
    1. インタラクティブTUI – プロンプトを入力し、モデルのアクションを監視するターミナルUI。
    2. プリントモード – zot "プロンプト" で最終生成テキストを出力して終了します。
    3. JSONモード – プログラムで消費するための改行区切りJSONイベントをストリーミングします。
  • Telegramボットブリッジ、プラグインシステム(サブプロセス+JSON-RPC)、テーマ、カスタムキーバインド、マークダウンファイルによる永続的な「エージェント」/スキルを含みます。

入手方法

  • macOS/Linux用のワンライナーインストーラ(curl … | bash)またはWindows PowerShell。
  • go install github.com/patriceckhart/zot/cmd/zot@latest。
  • ビルド済みバイナリはGitHubリリースページでも入手できます。

主要概念

概念 説明
プロバイダー zotが通信するリモートLLMサービス(Anthropic、OpenAI、Geminiなど)。
ツール モデルが要求できる組み込みアクション:ファイル読み書き、編集、シェルコマンド実行、グロブパターン。
AGENTS.md すべてのプロンプトに常時指示を追加するグローバルまたはプロジェクト単位のマークダウンファイル(例:「明示的に求められない限りファイルを編集しない」)。
SKILL.md /skill:<name>で呼び出せる再利用可能な指示スニペット。
拡張機能 任意の言語で書かれた外部プログラム;zotはJSON-RPCで通信します。
継続モード クラッシュ後も存続し、複数クライアントに提供できる永続的なローカルストア($ZOT_HOME/sessions/…)。
テーマとキーマップ $ZOT_HOME下のJSONファイルでTUIの色とキーボードショートカットをカスタマイズできます。

典型的なワークフロー

  1. バイナリをインストールし、zotを実行します。初回起動時に/loginコマンドを持つTUIが開きます。
  2. APIキーまたはOAuthでログインします(ツールはブラウザを起動するか、Anthropic、OpenAI、Kimi、xAI、GitHub Copilotなどのプロバイダー向けデバイスコードフローを使用できます)。
  3. プロンプトを入力します(例:fix the failing test)。Zotは選択したモデルにプロンプトを送信し、応答を受け取り、ツールを自動的に呼び出す場合があります(ファイル編集、テストスイート実行など)。
  4. TUIにモデルの推論、ツール出力、最終回答が表示されます。アクションを承認、拒否、または編集できます。
  5. 必要に応じてAGENTS.mdまたはSKILL.mdを追加して今後の動作を形成するか、ドメイン固有タスク用のカスタム拡張機能を作成します。

設定と状態

  • すべてのファイルは$ZOT_HOME(デフォルトは$XDG_STATE_HOME/zotまたはプラットフォーム固有の同等ディレクトリ)の下にあります。
  • config.jsonは最後に使用したプロバイダー/モデル、UI設定、HTTPプロキシ、カスタムキーバインドを保存します。
  • auth.jsonはAPIキーまたはOAuthトークンを保持します(モード0600)。トークンは自動的に更新されます。
  • models.jsonでカスタムエンドポイントまたはセルフホストモデルを定義できます。
  • セッションのトランスクリプトはsessions/下にJSONLとして保存され、zot --continueで再開できます。

重要性

  • 単一バイナリ: Pythonランタイム、Docker、または重量級の依存関係は不要 – 単なるGo実行可能ファイルです。
  • 広範なプロバイダーカバレッジ: 主要な商用APIとローカルOllamaモデルの両方で動作し、コードを変更せずにプロバイダーを簡単に切り替えられます。
  • ツール使用: モデルはファイルの読み書きやシェルコマンドの実行ができ、コード生成、リファクタリング、デバッグのための真の「エージェント」動作を可能にします。
  • 拡張可能: プラグインアーキテクチャにより、再コンパイルせずにドメイン固有の機能(例:データベースクエリツール)を追加できます。

制限・注意点

  • 公式CLIと同じOAuthクライアントIDを使用します。プロバイダーがそれらを失効させる可能性があるため、APIキーフローが最も安全なフォールバックです。
  • 拡張機能はオプトインです。デフォルトでは同梱されません。
  • 永続状態はローカルマシンにあります。マシン間でセッションを共有するにはzot continuous serveを実行する必要があります。

結論 zotは、LLMをインタラクティブなコーディングアシスタントに変える軽量でGoネイティブなハーネスであり、組み込みツール使用、マルチプロバイダーサポート、カスタマイズ可能なターミナルUIを備えています。

関連

  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト