Skip to content

Latest commit

 

History

History
185 lines (123 loc) · 16.1 KB

File metadata and controls

185 lines (123 loc) · 16.1 KB

CodeWhale

あらゆるモデルのためのターミナルコーディングエージェント — オープンモデルを最優先に。

Rust 製の TUI と CLI、24 のプロバイダ。DeepSeek、OpenRouter、Hugging Face、ローカルの vLLM/SGLang/Ollama を第一級のルートとして扱い、手元にあるのが Anthropic Claude や OpenAI のキーなら、それらの API もネイティブに扱えます。承認ゲート付きツール、OS サンドボックス、そして全ターンを巻き戻せる /restore

English README · 简体中文 README · Tiếng Việt README · codewhale.net · Install guide · Provider registry · Changelog

CI crates.io npm DeepWiki project index

ターミナルで動作する CodeWhale

インストール

npm install -g codewhale
codewhale --version   # 0.8.61

npm wrapper(Node 18+)は GitHub Releases から SHA-256 検証済みのバイナリをダウンロードし、codewhalecodewcodewhale-tui をインストールします。ソースからビルドしたい場合は cargo(Rust 1.88+)で:

cargo install codewhale-cli --locked
cargo install codewhale-tui --locked

その他の経路:

# Docker
docker pull ghcr.io/hmbown/codewhale:latest

# Nix
nix run github:Hmbown/CodeWhale

# Windows
scoop install codewhale        # または GitHub Releases の NSIS インストーラ

# GitHub に安定して到達できない場合の CNB ミラー
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.61 codewhale-cli --locked --force
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.61 codewhale-tui --locked --force

# 旧 Homebrew 互換。formula の改名が完了するまで deepseek-tui 名のままです
brew tap Hmbown/deepseek-tui
brew install deepseek-tui

Linux riscv64 を含む全プラットフォーム向けのビルド済みアーカイブは GitHub Releases に添付されています。チェックサム、中国ミラー、Windows 固有の手順、トラブルシューティングは docs/INSTALL.md を見てください。

最初の起動

codewhale auth set --provider deepseek
codewhale auth status
codewhale doctor
codewhale

どのプロバイダも同じ一行の形です: --provider openrouter--provider moonshot、あるいは vllmsglangollama を自分の localhost ランタイムに向ければキーすら要りません。Claude のキーを持っているなら、codewhale auth set --provider anthropic を実行するか ANTHROPIC_API_KEY を export するだけで、ネイティブの Messages アダプタがあとを引き受けます。

キーは ~/.codewhale/config.toml に保存されます。互換性のため、旧 ~/.deepseek/ の設定も引き続き読み込まれます。

セッション中に便利なコマンド:

  • /provider/model — ルートとモデルをセッション中に切り替えます。
  • /restore — side-git スナップショットから過去のターンを巻き戻します。
  • /skills~/.codewhale/skills/ の再利用可能なワークフローを読み込みます。
  • /config — ランタイム設定を編集します。/statusline は現在のルート、コスト、セッション状態を表示します。
  • ! cargo test -p codewhale-tui — 任意の Shell コマンドを、通常の承認・サンドボックス経路で実行します。

スクリプトや CI 向けのヘッドレス実行:

codewhale exec --allowed-tools read_file,exec_shell --max-turns 10 "fix the failing test"

できること

ターミナルネイティブのエージェントハーネス — TUI + CLI、16 個の Rust クレート。安全のためのレールは、モデルが覚えておくべき助言ではなく、ランタイムの仕組みとして実装されています:

  • 承認ゲート付きツールと OS サンドボックス。 ファイル、Shell、Git、Web、MCP、サブエージェントの各ツールは、明示的な承認ゲートとサンドボックスバックエンド(bwrap、Landlock、Seatbelt、seccomp)の背後で動きます。
  • 信頼できるロールバック。 side-git スナップショットと /restore は、リポジトリの .git の外側に置かれます — ターンを取り消しても履歴には一切触れません。
  • Hooks v2 (0.8.58)tool_call_before フックが JSON で allow/deny/ask の判定を返します。deny 優先の優先順位、glob マッチャ、プロジェクトローカルな .codewhale/hooks.toml に対応。
  • プロバイダを認識する並行サブエージェント (0.8.58)。調査と実装を並列に進め、big/cheap のモデル階層はプロバイダごとに解決されます — モデル ID のハードコードはありません。
  • 耐久性のあるセッション。 fork、relay 引き継ぎ、そして Plan/Agent/YOLO のモード切り替えをまたいでもバイト単位で安定する、セッション横断のディスク永続プロンプトキャッシュ (0.8.56)。ターンはシステムのスリープも生き延びます (0.8.57): ストリーミング中にサスペンドしても、復帰後にリクエストが静かに再発行され、ターンは失敗しません。
  • ヘッドレスモード。 スクリプトや CI 向けに、codewhale exec--allowed-tools--disallowed-tools(deny 優先)、--max-turns--append-system-prompt (0.8.58) に対応。
  • どこにでも組み込める。 HTTP/SSE と ACP の Runtime API、VS Code 拡張(Phase 0)、Telegram/Feishu ブリッジ。
  • 日常使いの磨き込み。 MCP のクライアントかつサーバー、再利用可能なスキル、7 ロケールのローカライズ(0.8.56 から承認ダイアログも対象)、Xiaomi MiMo による音声合成(TTS)。

あらゆるモデル、まずはオープンモデル

24 のプロバイダが、同じハーネス、同じ Constitution、同じツール群を通ります:

  • オープンモデル(ホスト型): deepseek(同格の中の筆頭)、openrouterhuggingface(Inference Providers)、moonshot(Kimi)、volcengine(Ark)、nvidia-nimtogetherfireworksnovitasiliconflow / siliconflow-CNarceexiaomi-mimoatlascloudwanjie-ark、さらに任意のゲートウェイに使える汎用の openai 互換ルート。
  • オープンモデル(セルフホスト型): vllmsglangollama を自分の localhost エンドポイントに向けて使えます — キーは不要です。
  • クローズドプロバイダ(ネイティブ対応): anthropic は専用の /v1/messages アダプタ (0.8.58) 経由で、適応的 thinking、プロンプトキャッシュのブレークポイント、署名付き thinking のリプレイに対応します — OpenAI 方言のシムではありません。openai-codex は既存の ChatGPT/Codex CLI ログインを再利用します。

ルーティングは base URL の差し替えにとどまりません: /reasoning の effort は各プロバイダのワイヤ方言に翻訳され、サブエージェントの階層はプロバイダごとに解決され、システムプロンプト内のモデル情報はハードコードではなくモデルごとにテンプレート化されます (0.8.58)。セッション中の切り替えは /provider/model で。認証情報、base URL、能力の境界を含む完全なレジストリは docs/PROVIDERS.md にあります。

上のバージョンタグは、直近 3 リリース(0.8.56 → 0.8.58)で入ったものを示しています。詳細は CHANGELOG.md を参照してください。

考え方

多くのコーディングエージェントは、力を足すところから始めます。もっと多くのツール、もっと長いコンテキスト、もっと強い自律性。CodeWhale は責任を割り当てるところから始めます。

リポジトリを編集するエージェントには住所があるべきです — このターミナル、このユーザー、このブランチ、このセッション。人格ではなく、返送先の住所です。何かが壊れたとき、「モデルがやった」は答えになりません。「このインスタンスが、このセッションで、この承認のあとに」なら答えになります。

次に必要なのは法です。実際の作業セッションは衝突の積み重ねです: 現在のリクエスト、リポジトリの指示、新しい Shell 出力、古い記憶、前のエージェントの引き継ぎが、同じターンの中で競合します。CodeWhale Constitution は権威の順序を固定します:

  1. ユーザーの意図が主権を持つ。 現在のリクエストは、古いリポジトリの指示、記憶、過去の引き継ぎ、人格オーバーレイより上位です。
  2. リポジトリの法は明示する。 .codewhale/constitution.json を追加して、プロジェクトの持続的な権威を宣言します: 保護すべき不変条件、ブランチポリシー、検証ルール。
  3. 証拠は語りより上。 ツール出力は、自信たっぷりの推測に勝ちます。失敗した cargo test は失敗した cargo test として報告され、楽観へ要約されることはありません。検証はタスクの一部であり、後日談ではありません。
  4. 記憶は最後。 有用ですが、決して権威にはなりません。

重要なポリシーはプロンプトではなくコードで強制されます: 承認ゲート、サンドボックス、スナップショット、ロールバック、ツールスキーマは、モデルが口先で回避できないランタイムの仕組みです。

そして、この法はどれもモデルの中には住んでいません — だからこそモデルは交換可能なのです。ハーネスが Constitution を担い、モデルは推論を提供します。DeepSeek とオープンウェイトの世界は第一級市民であり、LAN 上で vLLM や Ollama を動かす一台のマシンも完全に対等な存在です。そして手元にあるのが Claude や OpenAI のキーなら、CodeWhale はそれらの API にもネイティブ対応します。

それがこの製品です: より大きなモデルではなく、選んだどのモデルにも掛けられる、より厳格なハーネス。モデルを交換しても、法は保たれます。

詳細ドキュメント

README は考え方と最初の経路だけを持ちます。詳細はドキュメントと codewhale.net にあります:

  • User guide — CodeWhale との最初の 1 時間。
  • Install guide — すべてのパッケージ経路とトラブルシューティング。
  • Configuration — 設定ファイル、リポジトリ constitution、プロバイダ設定。
  • Provider registry — モデルルート、認証情報、base URL、能力の境界。
  • Sub-agents — 役割、ライフサイクル、出力コントラクト、復旧挙動。
  • MCP — 外部ツールサーバーへの接続と、CodeWhale 自身を MCP サーバーとして動かす方法。
  • Runtime API — HTTP/SSE、ACP、モバイル、GUI/エディタ統合のコントラクト。
  • Model Lab — オープンモデルの発見と評価のロードマップ。
  • Architecture — クレート構成、ランタイムフロー、ツールシステム、拡張ポイント、セキュリティモデル。

v0.9.0 トラック

v0.9.0 は現在の統合レーンです。そこに集まりつつある作業:

  • セッションとエージェント間の relay / 引き継ぎ面の強化
  • 密集したツール実行でも落ち着いて読めるトランスクリプト
  • VS Code と GUI クライアント向けの Runtime API
  • WhaleFlow によるブランチ/リーフのワークフローオーケストレーション

リリースごとの詳細は CHANGELOG.md にあります。

謝辞

  • DeepSeek — すべてのターンを動かすモデルとサポートをありがとうございます。感谢 DeepSeek 提供模型与支持,让每一次交互成为可能。
  • DataWhale 🐋 — サポートと、「鯨兄弟」ファミリーへ迎え入れてくださったことに感謝します。感谢 DataWhale 的支持,并欢迎我们加入“鲸兄弟”大家庭。
  • OpenWarp — codewhale 対応を優先し、より良いターミナルエージェント体験のために協力してくださっていることに感謝します。
  • Open Design — デザイン主導のエージェントワークフローをめぐるサポートと協力に感謝します。

このプロジェクトは、増え続けるコントリビューターのコミュニティの助けで出荷されています。メンテナのルールはシンプルです: 報告も PR も本物のプロジェクト作業です。最終的なパッチを絞り込んだり、遅らせたり、メンテナブランチへ収穫(harvest)することになったとしても、それは変わりません。

個々のコントリビューターへの常に最新のクレジット一覧は、正準の記録である英語版 README の Thanks セクションを参照してください。


コントリビューション

CONTRIBUTING.md を参照してください。プルリクエストを歓迎します — 最初のコントリビューションには Open Issues を確認してください。

CodeWhale には良い報告と PR がたくさん届きます。メンテナの姿勢は、その扉を開いたままリリース品質を守ることです:

  • Issue は人間が読めて行動に移せる状態を保ちます。インテイク自動化は、メンテナが意図的に強制を有効にしない限り、助言にとどまります。
  • PR はタイトルだけでなく、コード、テスト、関連 Issue、ランタイムの挙動から評価されます。
  • PR が広すぎて直接マージできない場合、メンテナが安全な部分をより狭いブランチへ収穫し、作者をクレジットして何が入ったかを説明することがあります。
  • Co-author トレーラーには .github/AUTHOR_MAP にあるマッピング可能な GitHub noreply ID を使います。報告者や再現手順の作者には、changelog、リリースノート、クローズコメントで感謝が示されるべきです。
  • 継続的なコントリビューターは .github/APPROVED_CONTRIBUTORS に追加でき、dry-run ゲートが邪魔をしないようになります。

サポート: Buy me a coffee

Note

DeepSeek Inc. とは関係ありません。

ライセンス

MIT

Star History

Star History Chart