docs(readme): renovate website hero + localized READMEs; nest contributors
- Home hero (web/app/[locale]/page.tsx): multi-model, community-first, 'intent outranks everything' framing; replace DeepSeek-only positioning. - Add 'See how it decides' section + thinking-trace.tsx: surfaces real reasoning traces (Article II/V citations) paired with the decision each produced — proof, not assertion, that the constitution operates. - docs/CONTRIBUTORS.md: chronological collapsible bands (forward-track -> recurring/historical -> v0.8.48). Rebuilt by byte-copying verified HEAD content; handle diff confirms zero contributor drops. - Localize README.zh-CN / ja-JP / vi to mirror the new English README (multi-model, community-first, constitution in its own section, concise Thanks linking to docs/CONTRIBUTORS.md).
This commit is contained in:
+106
-71
@@ -1,31 +1,47 @@
|
||||
# CodeWhale
|
||||
|
||||
> DeepSeek V4 とオープンモデルのためのローカル Agent ハーネス。自己、権威、証拠のループを扱います。
|
||||
> コミュニティで作る、使える最良のモデルでコードを書くためのエージェントターミナル。
|
||||
|
||||
[English README](README.md) · [简体中文 README](README.zh-CN.md) · [Tiếng Việt README](README.vi.md)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://deepwiki.com/Hmbown/CodeWhale)
|
||||
|
||||

|
||||
|
||||
## 考え方
|
||||
## CodeWhale とは
|
||||
|
||||
多くのコーディング Agent は「もっと強く」から始めます。もっと多くのツール、もっと長いコンテキスト、もっと多い自動化。CodeWhale は責任から始めます。
|
||||
CodeWhale は、あなた自身のマシンでローカルに動くオープンソースのターミナルエージェントです。自分のリポジトリで実仕事をこなします――コードを読み、コマンドを走らせ、ファイルを編集し、パッチをShipする。しかも**あなたが選んだモデル**で。シェル・ファイル編集・git・Web・MCP・サブエージェントからなる完全なツール面を、承認ゲート、巻き戻せるスナップショット、再開できるセッションと組み合わせて提供します。
|
||||
|
||||
Agent がリポジトリを編集する前に、まず住所が必要です。このターミナル、このユーザー、このブランチ、このセッション。それが ego の層です。誇示ではなく、継続性。人格の仮面ではなく、責任が結びつく場所です。
|
||||
もともとは DeepSeek に触発された TUI として始まりました。コミュニティがそれをより広いものへと育てました。大多数の人の手元にある最良のモデルで仕事ができるハーネス――それがどのプロバイダであれ。DeepSeek はここでも第一級の扱いですが、もはや唯一の良い選択肢ではなく、必須でもありません。
|
||||
|
||||
その次に法が必要です。実際の作業ディレクトリでは、現在のユーザー意図、リポジトリの指示、Shell 出力、古い記憶、前回の引き継ぎ、安全ポリシー、未完了の変更が同じターンで衝突します。CodeWhale の Constitution は、その衝突に順序を与えます。現在のユーザー要求は古い文脈より上、ライブの証拠は推測より上、検証は自信より上、人格は声だけを決めて行動は決めません。
|
||||
すべてはあなた自身のマシンで動きます。鍵もリポジトリも判断も、あなたの手元にあります。
|
||||
|
||||
CodeWhale の本体は、モデルの外側にある順序づけの層です。誰が行動しているのか、どの法に従うのか、どんな証拠があるのか、次の人間や Agent がどう続けられるのかを扱います。
|
||||
## なぜ使われるのか
|
||||
|
||||
## できること
|
||||
- **承認ゲート付きツール。** ファイル編集・シェル・git・Web・MCP・サブエージェント呼び出しはすべて、サンドボックスとあなたが制御する承認ポリシーを経由します。
|
||||
- **サブエージェントと Fleet。** ヘッドレスなサブエージェントワーカーに並列の調査や実装を振り分け、複数ステップの実行を編成します。
|
||||
- **スナップショットと巻き戻し。** 毎ターン side-git にスナップショットが残るので、`/restore` はリポジトリの `.git` に触れずに変更を取り消せます。
|
||||
- **リアルタイム診断。** 編集後に(利用可能な環境では)言語サーバーが即座に反応し、型エラーや警告をその場で表示します。
|
||||
- **永続セッション。** ターン・セッション・マシンをまたいで再開・分岐・引き継ぎ――さらにエディタや GUI 向けのランタイム API。
|
||||
- **モデルは自由に。** タスクごとに最も適したプロバイダへルーティングできます。
|
||||
|
||||
- ローカルファーストのターミナル TUI。
|
||||
- ファイル、Shell、Git、Web、MCP、RLM、サブ Agent の型付きツール。
|
||||
- 承認ゲート、サンドボックス、side-git スナップショット、`/restore` ロールバック。
|
||||
- 編集後の Language Server 診断フィードバック。
|
||||
- 並行サブ Agent、永続セッション、fork、relay 引き継ぎ、Runtime API。
|
||||
- DeepSeek V4 を第一級として扱いながら、OpenRouter、Xiaomi MiMo、NVIDIA NIM、Arcee、SiliconFlow、Fireworks、Novita、自前の SGLang/vLLM、Ollama なども明示的な provider として扱います。
|
||||
## 対応するモデルとプロバイダ
|
||||
|
||||
DeepSeek は第一級ですが、唯一の経路ではありません。provider、model、base URL、認証情報は別々の選択です。
|
||||
CodeWhale は、人々が実際に使っているプロバイダの第一級ルートを同梱しています。キーを用意して、タスクに合うモデルを選んでください:
|
||||
|
||||
- **DeepSeek** ―― V4 Pro / Flash、および DeepSeek 互換ゲートウェイ
|
||||
- **GLM / Z.ai** ―― GLM-5.1、GLM-5.2(Z.ai Coding Plan)
|
||||
- **Kimi(Moonshot)** ―― Kimi K2.6 / K2.7 Code
|
||||
- **MiniMax** ―― 第一級ルート
|
||||
- **OpenRouter** ―― ひとつのキーで数百のモデル
|
||||
- **NVIDIA NIM · Xiaomi MiMo · SiliconFlow · Fireworks · Novita · StepFun / StepFlash**
|
||||
- **セルフホスト** ―― vLLM、SGLang、Ollama
|
||||
- **任意の OpenAI 互換ゲートウェイ**
|
||||
|
||||
`/provider` と `/model` で切り替えられます。認証情報・ベース URL・能力の境界は
|
||||
[docs/PROVIDERS.md](docs/PROVIDERS.md) を参照してください。
|
||||
|
||||
## インストール
|
||||
|
||||
@@ -33,97 +49,116 @@ DeepSeek は第一級ですが、唯一の経路ではありません。provider
|
||||
cargo install codewhale-cli --locked
|
||||
cargo install codewhale-tui --locked
|
||||
codewhale --version
|
||||
codewhale --model auto
|
||||
```
|
||||
|
||||
他の方法:
|
||||
初回起動時に、CodeWhale はプロバイダキーを尋ね、`~/.codewhale/config.toml`
|
||||
に保存します。互換のため、従来の `~/.deepseek/` 設定も引き続き読み込まれます。
|
||||
|
||||
その他のインストール方法:
|
||||
|
||||
```bash
|
||||
# GitHub Releases にプラットフォーム別アーカイブがあります:
|
||||
# npm ラッパー
|
||||
npm install -g codewhale
|
||||
|
||||
# プラットフォーム別アーカイブは GitHub Releases に
|
||||
# https://github.com/Hmbown/CodeWhale/releases
|
||||
|
||||
# GitHub に安定して到達できない場合は CNB mirror を使えます:
|
||||
# CNB ミラー(GitHub への接続が不安定な場合)
|
||||
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.60 codewhale-cli --locked --force
|
||||
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.60 codewhale-tui --locked --force
|
||||
|
||||
# 旧 Homebrew 互換。formula はまだ deepseek-tui 名を使います。
|
||||
brew tap Hmbown/deepseek-tui
|
||||
brew install deepseek-tui
|
||||
# Homebrew(formula 改名中の互換運用)
|
||||
brew tap Hmbown/deepseek-tui && brew install deepseek-tui
|
||||
```
|
||||
|
||||
`codewhale` npm wrapper も `npm install -g codewhale` で利用できます。
|
||||
Docker、直接ダウンロード、中国ミラー、Windows/Scoop、Nix、チェックサム、トラブルシューティングは
|
||||
[docs/INSTALL.md](docs/INSTALL.md) を参照してください。
|
||||
|
||||
Docker、直接ダウンロード、中国ミラー、Windows/Scoop、Nix、チェックサム、トラブルシュートは [docs/INSTALL.md](docs/INSTALL.md) を見てください。
|
||||
**従来の `deepseek-tui` パッケージからのアップグレードですか?** 設定・セッション・スキル・MCP の設定はすべて保持されます。[docs/REBRAND.md](docs/REBRAND.md) を確認したうえで、`codewhale doctor` を走らせて移行を確かめてください。
|
||||
|
||||
## 最初の起動
|
||||
## クイックスタート
|
||||
|
||||
```bash
|
||||
codewhale auth set --provider deepseek
|
||||
codewhale auth set --provider zai # または:deepseek、openrouter、kimi ……
|
||||
codewhale auth status
|
||||
codewhale doctor
|
||||
codewhale
|
||||
codewhale # TUI を起動
|
||||
```
|
||||
|
||||
よく使う入口は `/provider`、`/model`、`/config`、`/statusline`、`/skills`、`/restore` です。入力の先頭に `!` を付けると、通常の承認とサンドボックス経路で Shell コマンドを実行できます。
|
||||
セッション内でよく使うコマンド:
|
||||
|
||||
## 詳細ドキュメント
|
||||
- `/provider` と `/model` ―― ルートとモデルを選ぶ。
|
||||
- `/config` ―― ランタイム設定を編集する。
|
||||
- `/statusline` ―― 現在のルート・コスト・セッション状態。
|
||||
- `/skills` ―― `~/.codewhale/skills/` から再利用可能なワークフローを読み込む。
|
||||
- `/restore` ―― side-git のスナップショットから過去のターンを巻き戻す。
|
||||
- `! cargo test` ―― 通常の承認・サンドボックス経路でシェルコマンドを走らせる。
|
||||
|
||||
README は考え方と最短経路だけを持ちます。詳細はドキュメントと [codewhale.net](https://codewhale.net/) にあります。
|
||||
## コミュニティとコントリビュート
|
||||
|
||||
- [User guide](docs/GUIDE.md)
|
||||
- [Install guide](docs/INSTALL.md)
|
||||
- [Configuration](docs/CONFIGURATION.md)
|
||||
- [Provider registry](docs/PROVIDERS.md)
|
||||
- [Sub-agents](docs/SUBAGENTS.md)
|
||||
- [Runtime API](docs/RUNTIME_API.md)
|
||||
- [Model Lab](docs/MODEL_LAB.md)
|
||||
- [Architecture](docs/ARCHITECTURE.md)
|
||||
- [v0.9.0 release acceptance](docs/V0_9_0_RELEASE_ACCEPTANCE.md)
|
||||
CodeWhale はオープンに作られています――それがこのプロジェクトの要点です。目標はシンプルです。より多くの目と手によって、より多くの人々のための最良のエージェントハーネスを作る。ひとりのDeepSeek触発の個人プロジェクトが、コミュニティによって、当初の想像を超えるものへと形作られてきました。
|
||||
|
||||
## v0.9.0 トラック
|
||||
**経験の有無を問わず、issue も pull requestも大歓迎です。** バグ報告、機能のアイデア、ドキュメントの修正、「初めてのPR」、ちょっとした疑問、どれも立派なプロジェクトへの貢献です。最終的なパッチが絞り込まれたり、遅れたり、メンテナのコミットに折り畳まれたりする場合であっても、メンテナは報告や PR を貢献として扱います――そして繰り返し貢献してくれる人は、公開記録に残り続けます。
|
||||
|
||||
v0.9.0 はまだ統合トラックです。tag、GitHub Release、npm、Cargo、リリース成果物が実際に作成され検証されるまで、公開済みリリースとは呼びません。現在の焦点は relay / 引き継ぎ、転写の落ち着き、コマンドと provider アーキテクチャ、VS Code / GUI Runtime API、HarnessProfile、WhaleFlow、そして貢献者 credit hygiene です。
|
||||
- [Open issues](https://github.com/Hmbown/CodeWhale/issues) ―― 初回コントリビューション向けのものが揃っています。
|
||||
- [CONTRIBUTING.md](CONTRIBUTING.md) ―― 開発ループを整えて PR を出す。
|
||||
- [行動規範](CODE_OF_CONDUCT.md) ―― 互いに親切に。
|
||||
- [コントリビューター](docs/CONTRIBUTORS.md) ―― CodeWhale を形作ってきた人々。
|
||||
|
||||
## ドキュメント
|
||||
|
||||
README はスタートラインです。詳しくは [`docs/`](docs) と [codewhale.net](https://codewhale.net/) にあります:
|
||||
|
||||
- [ユーザーガイド](docs/GUIDE.md) ―― CodeWhale との最初の1時間。
|
||||
- [インストールガイド](docs/INSTALL.md) ―― すべてのパッケージパスとトラブルシューティング。
|
||||
- [設定](docs/CONFIGURATION.md) ―― 設定ファイルとプロバイダ設定。
|
||||
- [プロバイダ](docs/PROVIDERS.md) ―― モデルルート・認証情報・能力。
|
||||
- [モード](docs/MODES.md) ―― Agent、Plan、YOLO。
|
||||
- [サブエージェント](docs/SUBAGENTS.md) ―― 役割・ライフサイクル・リカバリ。
|
||||
- [Fleet](docs/FLEET.md) ―― マルチワーカー実行とヘッドレス編成。
|
||||
- [WhaleFlow 作成](docs/WHALEFLOW_AUTHORING.md) ―― 宣言的ワークフロー。
|
||||
- [ランタイム API](docs/RUNTIME_API.md) ―― HTTP/SSE・ACP・エディタ/GUI 契約。
|
||||
- [MCP](docs/MCP.md) ―― Model Context Protocol サーバー。
|
||||
- [アーキテクチャ](docs/ARCHITECTURE.md) ―― crate 構成・ランタイムフロー・セキュリティ。
|
||||
- [キーバインド](docs/KEYBINDINGS.md) ―― 完全なキーマップ。
|
||||
- [サンドボックスと承認](docs/SANDBOX.md) · [アクセシビリティ](docs/ACCESSIBILITY.md)
|
||||
· [Docker](docs/DOCKER.md) · [メモリ](docs/MEMORY.md)
|
||||
- [ドキュメント総目次](docs) ―― その他すべて。
|
||||
|
||||
## 実行アイデンティティと憲法
|
||||
|
||||
CodeWhale は、エージェントが実際のワークスペースで**どう振る舞うべきか**について、明確な主張を持っています。できることだけでなく。その主張は
|
||||
[CodeWhale 憲法](docs/AGENT_ETHOS.md) として書き下ろされており、いくつかの考えに要約されます:
|
||||
|
||||
- **エージェントには居場所がある。** それは*この*ターミナル・*この*ワークスペースにおけるひとつのインスタンスであり、モデルカードでもリーダーボードのスコアでもありません。
|
||||
- **証拠は叙述に勝る。** ツールの出力は推測に勝ります。失敗したコマンドは失敗として報告され、検証はタスクの一部です。
|
||||
- **ユーザーの意図が至上。** あなたの現在の要求は、古いリポジトリの指示・記憶・以前の引き継ぎよりも優先されます。
|
||||
- **ローカルの掟は明示的。** リポジトリは `.codewhale/constitution.json` を置いて、永続するプロジェクト権威・保護される不変条件・検証ルールを定義できます。
|
||||
- **ランタイムポリシーは強制される。** モード・承認ゲート・サンドボックス・巻き戻し・ツールスキーマはコードであり、モデルが覚えておくべき助言ではありません。
|
||||
|
||||
このプロダクトは、モデルを取り巻く「順序のレイヤー」です。誰が行動しているか、誰の掟が適用されるか、どのような証拠があるか、そして次の人やエージェントがどう続けられるか。もしこの枠組みが役に立つなら、それは素晴らしいことです。役に立たなければ、無視してツールとしてだけ使っても構いません。
|
||||
|
||||
## 謝辞
|
||||
|
||||
このプロジェクトは、増え続けるコントリビューターのコミュニティから助けを得て出荷されています:
|
||||
CodeWhale が存在するのは、それを使い、壊し、直してくれる人たちのおかげです。
|
||||
|
||||
v0.8.48 でマージまたは取り込まれた貢献者: **[@cy2311](https://github.com/cy2311)**、**[@LING71671](https://github.com/LING71671)**、**[@axobase001](https://github.com/axobase001)**、**[@dzyuan](https://github.com/dzyuan)**、**[@mvanhorn](https://github.com/mvanhorn)**、**[@malsony](https://github.com/malsony)**、**[@gaord](https://github.com/gaord)**、**[@yuanchenglu](https://github.com/yuanchenglu)**、**[@idling11](https://github.com/idling11)**、**[@h3c-hexin](https://github.com/h3c-hexin)**、**[@AdityaVG13](https://github.com/AdityaVG13)**、**[@Sskift](https://github.com/Sskift)**、**[@cyq1017](https://github.com/cyq1017)**、**[@HUQIANTAO](https://github.com/HUQIANTAO)**、**[@New2Niu](https://github.com/New2Niu)**、**[@AiurArtanis](https://github.com/AiurArtanis)**、**[@Lee-take](https://github.com/Lee-take)**、**[@nightt5879](https://github.com/nightt5879)**、**[@AresNing](https://github.com/AresNing)**、**[@AccMoment](https://github.com/AccMoment)**、**[@reidliu41](https://github.com/reidliu41)**、**[@aboimpinto](https://github.com/aboimpinto)**、**[@zhuangbiaowei](https://github.com/zhuangbiaowei)**、**[@donglovejava](https://github.com/donglovejava)**、**[@hongqitai](https://github.com/hongqitai)**、**[@zlh124](https://github.com/zlh124)**、**[@encyc](https://github.com/encyc)**、**[@Implementist](https://github.com/Implementist)**、**[@lihuan215](https://github.com/lihuan215)**、**[@LeoAlex0](https://github.com/LeoAlex0)**、**[@jimmyzhuu](https://github.com/jimmyzhuu)**、**[@rockyzhang](https://github.com/rockyzhang)**、**[@mo-vic](https://github.com/mo-vic)**、**[@hufanexplore](https://github.com/hufanexplore)**、**[@hoclaptrinh33](https://github.com/hoclaptrinh33)**、**[@BryonGo](https://github.com/BryonGo)**、**[@gordonlu](https://github.com/gordonlu)**、**[@hongchen1993](https://github.com/hongchen1993)**。
|
||||
- **[DeepSeek](https://github.com/deepseek-ai)** ―― このプロジェクトを始められたモデルと支援。感謝 DeepSeek 提供模型与支持。
|
||||
- **[DataWhale](https://github.com/datawhalechina)** 🐋 ―― 支援と、「鯨兄弟」ファミリーへの歓迎に感謝します。
|
||||
- **[OpenWarp](https://github.com/zerx-lab/warp)** と
|
||||
**[Open Design](https://github.com/nexu-io/open-design)** ―― より良いターミナルエージェント体験の協業に感謝します。
|
||||
- **すべてのコントリビューター** ―― PR ごとの完全な記録は
|
||||
[docs/CONTRIBUTORS.md](docs/CONTRIBUTORS.md) にあります。ありがとうございます。
|
||||
|
||||
報告、再現手順、検証で v0.8.48 を支えてくれた **[@buko](https://github.com/buko)**、**[@yyyCode](https://github.com/yyyCode)**、**[@gaslebinh-glitch](https://github.com/gaslebinh-glitch)**、**[@Dr3259](https://github.com/Dr3259)**、**[@lpeng1711694086-lang](https://github.com/lpeng1711694086-lang)**、**[@VerrPower](https://github.com/VerrPower)**、**[@yan-zay](https://github.com/yan-zay)**、**[@jretz](https://github.com/jretz)**、**[@Neo-millunnium](https://github.com/Neo-millunnium)**、**[@caeserchen](https://github.com/caeserchen)**、**[@T-Phuong-Nguyen](https://github.com/T-Phuong-Nguyen)**、**[@zhyuzhyu](https://github.com/zhyuzhyu)**、**[@0gl20shk0sbt36](https://github.com/0gl20shk0sbt36)**、**[@hatakes](https://github.com/hatakes)**、**[@goodvecn-dev](https://github.com/goodvecn-dev)**、**[@bevis-wong](https://github.com/bevis-wong)**、**[@PurplePulse](https://github.com/PurplePulse)**、**[@nbiish](https://github.com/nbiish)** にも感謝します。
|
||||
## コントリビュート
|
||||
|
||||
- **[merchloubna70-dot](https://github.com/merchloubna70-dot)** — 機能、修正、VS Code 拡張のスキャフォールドにまたがる 28 件の PR (#645–#681)
|
||||
- **[WyxBUPT-22](https://github.com/WyxBUPT-22)** — 表、太字/斜体、水平線の Markdown レンダリング (#579)
|
||||
- **[loongmiaow-pixel](https://github.com/loongmiaow-pixel)** — Windows と中国向けインストールドキュメント (#578)
|
||||
- **[20bytes](https://github.com/20bytes)** — ユーザーメモリのドキュメントとヘルプの磨き込み (#569)
|
||||
- **[staryxchen](https://github.com/staryxchen)** — glibc 互換性のプリフライト (#556)
|
||||
- **[Vishnu1837](https://github.com/Vishnu1837)** — glibc 互換性の改善 (#565)
|
||||
- **[shentoumengxin](https://github.com/shentoumengxin)** — シェル `cwd` の境界バリデーション (#524)
|
||||
- **[toi500](https://github.com/toi500)** — Windows 貼り付け修正の報告
|
||||
- **[xsstomy](https://github.com/xsstomy)** — ターミナル起動時の再描画報告
|
||||
- **[melody0709](https://github.com/melody0709)** — スラッシュ接頭辞の Enter アクティベーション報告
|
||||
- **[lloydzhou](https://github.com/lloydzhou)** と **[jeoor](https://github.com/jeoor)** — コンパクションコストの報告
|
||||
- **[Agent-Skill-007](https://github.com/Agent-Skill-007)** — README の明瞭化対応 (#685)
|
||||
- **[woyxiang](https://github.com/woyxiang)** — Windows Scoop インストールドキュメント (#696)
|
||||
- **[wangfeng](mailto:wangfengcsu@qq.com)** — 料金/割引情報の更新 (#692)
|
||||
- **[zichen0116](https://github.com/zichen0116)** — CODE_OF_CONDUCT.md (#686)
|
||||
- **Hafeez Pizofreude** — `fetch_url` の SSRF 保護と Star History チャート
|
||||
- **Unic (YuniqueUnic)** — スキーマ駆動の設定 UI(TUI + Web)
|
||||
- **Jason** — SSRF セキュリティの強化
|
||||
|
||||
---
|
||||
|
||||
## コントリビューション
|
||||
|
||||
[CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。プルリクエストを歓迎します。良い初コントリビューションは [Open Issues](https://github.com/Hmbown/CodeWhale/issues) を確認してください。
|
||||
|
||||
> [!Note]
|
||||
> *DeepSeek Inc. とは関係ありません。*
|
||||
[CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。pull request をお待ちしています――まずは [open issues](https://github.com/Hmbown/CodeWhale/issues) からどうぞ。
|
||||
|
||||
## ライセンス
|
||||
|
||||
[MIT](LICENSE)
|
||||
|
||||
## Star History
|
||||
> *CodeWhale は独立したコミュニティプロジェクトであり、いかなるモデルプロバイダとも提携していません。*
|
||||
|
||||
## Star 履歴
|
||||
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
|
||||
|
||||
+151
-125
@@ -1,31 +1,61 @@
|
||||
# CodeWhale
|
||||
|
||||
> Harness agent local cho DeepSeek V4 và model mở: bản ngã vận hành, thứ bậc quyền lực, và vòng chứng cứ.
|
||||
> Một terminal agent mã nguồn mở do cộng đồng xây dựng, để viết code với những mô hình tốt nhất hiện có.
|
||||
|
||||
[English README](README.md) · [简体中文 README](README.zh-CN.md) · [日本語 README](README.ja-JP.md)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://deepwiki.com/Hmbown/CodeWhale)
|
||||
|
||||

|
||||
|
||||
## Ý tưởng chính
|
||||
## CodeWhale là gì
|
||||
|
||||
Phần lớn coding agent bắt đầu bằng sức mạnh: nhiều công cụ hơn, context dài hơn, tự động hóa nhiều hơn. CodeWhale bắt đầu bằng trách nhiệm.
|
||||
CodeWhale là một terminal agent mã nguồn mở, chạy cục bộ trên máy của bạn để làm
|
||||
việc thật trong các repository — đọc code, chạy lệnh, sửa file và đóng góp bản vá —
|
||||
với **mô hình do chính bạn chọn**. Nó kết hợp một bộ công cụ đầy đủ (shell, sửa
|
||||
file, git, web, MCP và sub-agent) với các cổng phê duyệt, snapshot có thể khôi
|
||||
phục, và session có thể tiếp tục.
|
||||
|
||||
Trước khi một agent sửa repo, nó cần một địa chỉ: terminal này, người dùng này, branch này, session này. Đó là lớp ego. Không phải khoe mẽ, mà là tính liên tục. Không phải mặt nạ personality, mà là nơi trách nhiệm bám vào.
|
||||
Nó bắt đầu như một TUI lấy cảm hứng từ DeepSeek. Cộng đồng đã biến nó thành thứ
|
||||
rộng lớn hơn: một harness hoạt động với những mô hình tốt nhất cho đại đa số mọi
|
||||
người, bất kể provider đó là ai với bạn. DeepSeek vẫn là hạng nhất ở đây; nhưng nó
|
||||
không còn là lựa chọn tốt duy nhất, và cũng không phải là bắt buộc.
|
||||
|
||||
Sau đó nó cần luật. Workspace thật là một chồng xung đột: ý định hiện tại của người dùng, hướng dẫn trong repo, output từ shell, memory cũ, handoff cũ, chính sách an toàn và thay đổi đang dang dở có thể va vào nhau trong cùng một lượt. Constitution của CodeWhale xếp thứ tự cho các nguồn đó: yêu cầu hiện tại cao hơn ngữ cảnh cũ; bằng chứng trực tiếp cao hơn phỏng đoán; kiểm chứng cao hơn sự tự tin; personality chỉ điều chỉnh giọng nói, không quyết định hành động.
|
||||
Mọi thứ đều chạy trên chính máy của bạn. Khóa, repo và phán đoán của bạn luôn nằm
|
||||
trong tay bạn.
|
||||
|
||||
Sản phẩm thật là lớp sắp thứ tự quanh model: ai đang hành động, luật nào thắng, chứng cứ nào tồn tại, và người hoặc agent tiếp theo có thể tiếp tục ra sao.
|
||||
## Tại sao dùng nó
|
||||
|
||||
## CodeWhale cung cấp gì
|
||||
- **Công cụ có cổng phê duyệt.** Sửa file, shell, git, web, MCP và các lệnh gọi
|
||||
sub-agent đều đi qua một sandbox và chính sách phê duyệt do bạn kiểm soát.
|
||||
- **Sub-agent & Fleet.** Phân tán điều tra hay triển khai song song qua các
|
||||
sub-agent worker headless, và điều phối các chạy nhiều bước.
|
||||
- **Snapshot & khôi phục.** Mỗi lượt đều được chụp snapshot trong side-git, nên
|
||||
`/restore` hoàn tác một thay đổi mà không động tới `.git` của repo bạn.
|
||||
- **Chẩn đoán trực tiếp.** Sau khi sửa, các language server (nếu có) sẽ sáng lên,
|
||||
để bạn thấy lỗi kiểu và cảnh báo ngay khi chúng xảy ra.
|
||||
- **Session bền vững.** Tiếp tục, phân nhánh và bàn giao giữa các lượt, session,
|
||||
và máy — cùng các runtime API cho editor và GUI.
|
||||
- **Tự mang mô hình của bạn.** Điều hướng mỗi tác vụ tới provider phù hợp nhất.
|
||||
|
||||
- TUI chạy cục bộ trong terminal.
|
||||
- Công cụ có schema cho file, Shell, Git, Web, MCP, RLM và sub-agent.
|
||||
- Cổng phê duyệt, sandbox, snapshot side-git và rollback bằng `/restore`.
|
||||
- Phản hồi diagnostics từ language server sau khi chỉnh sửa.
|
||||
- Sub-agent chạy song song, session bền, fork, relay handoff và Runtime API.
|
||||
- DeepSeek V4 là đường chính, cùng các provider rõ ràng như OpenRouter, Xiaomi MiMo, NVIDIA NIM, Arcee, SiliconFlow, Fireworks, Novita, SGLang/vLLM tự host, Ollama và các bề mặt Hugging Face khi chúng được hoàn thiện.
|
||||
## Mô hình & provider được hỗ trợ
|
||||
|
||||
DeepSeek là first-class, nhưng không phải giới hạn duy nhất. Provider, model, base URL và credentials là các lựa chọn tách biệt.
|
||||
CodeWhale đi kèm các tuyến hạng nhất cho những provider mà người ta thực sự dùng.
|
||||
Mang theo key của bạn và chọn mô hình phù hợp với tác vụ:
|
||||
|
||||
- **DeepSeek** — V4 Pro / Flash, cùng các gateway tương thích DeepSeek
|
||||
- **GLM / Z.ai** — GLM-5.1, GLM-5.2 (Z.ai Coding Plan)
|
||||
- **Kimi (Moonshot)** — Kimi K2.6 / K2.7 Code
|
||||
- **MiniMax** — tuyến hạng nhất
|
||||
- **OpenRouter** — hàng trăm mô hình sau một key
|
||||
- **NVIDIA NIM · Xiaomi MiMo · SiliconFlow · Fireworks · Novita · StepFun / StepFlash**
|
||||
- **Tự host** — vLLM, SGLang, Ollama
|
||||
- **Bất kỳ gateway tương thích OpenAI nào**
|
||||
|
||||
Chuyển đổi bằng `/provider` và `/model`. Xem [docs/PROVIDERS.md](docs/PROVIDERS.md)
|
||||
về thông tin xác thực, base URL và giới hạn năng lực.
|
||||
|
||||
## Cài đặt
|
||||
|
||||
@@ -33,149 +63,145 @@ DeepSeek là first-class, nhưng không phải giới hạn duy nhất. Provider
|
||||
cargo install codewhale-cli --locked
|
||||
cargo install codewhale-tui --locked
|
||||
codewhale --version
|
||||
codewhale --model auto
|
||||
```
|
||||
|
||||
Các đường khác:
|
||||
Khi khởi động lần đầu, CodeWhale sẽ hỏi một provider key và lưu vào
|
||||
`~/.codewhale/config.toml`; vì tương thích, cấu hình `~/.deepseek/` cũ vẫn được
|
||||
đọc.
|
||||
|
||||
Các đường dẫn cài đặt khác:
|
||||
|
||||
```bash
|
||||
# GitHub Releases có archive theo nền tảng:
|
||||
# npm wrapper
|
||||
npm install -g codewhale
|
||||
|
||||
# Các bản nén theo nền tảng đính kèm ở GitHub Releases
|
||||
# https://github.com/Hmbown/CodeWhale/releases
|
||||
|
||||
# Nếu GitHub không ổn định, dùng CNB mirror:
|
||||
# CNB mirror, nếu khó tiếp cận GitHub
|
||||
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.60 codewhale-cli --locked --force
|
||||
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.60 codewhale-tui --locked --force
|
||||
|
||||
# Homebrew legacy trong lúc formula vẫn dùng tên deepseek-tui
|
||||
brew tap Hmbown/deepseek-tui
|
||||
brew install deepseek-tui
|
||||
# Homebrew (tương thích trong khi formula được đổi tên)
|
||||
brew tap Hmbown/deepseek-tui && brew install deepseek-tui
|
||||
```
|
||||
|
||||
Wrapper npm `codewhale` cũng có thể được cài đặt qua `npm install -g codewhale`.
|
||||
Về Docker, tải trực tiếp, mirror cho Trung Quốc, Windows/Scoop, Nix, checksum và
|
||||
khắc phục sự cố, xem [docs/INSTALL.md](docs/INSTALL.md).
|
||||
|
||||
Docker, tải trực tiếp, mirror Trung Quốc, Windows/Scoop, Nix, checksum và troubleshooting nằm trong [docs/INSTALL.md](docs/INSTALL.md).
|
||||
**Nâng cấp từ gói `deepseek-tui` cũ?** Cấu hình, session, skill và cài đặt MCP
|
||||
của bạn được giữ nguyên. Xem [docs/REBRAND.md](docs/REBRAND.md), rồi chạy
|
||||
`codewhale doctor` để xác nhận.
|
||||
|
||||
## Lần chạy đầu tiên
|
||||
## Bắt đầu nhanh
|
||||
|
||||
```bash
|
||||
codewhale auth set --provider deepseek
|
||||
codewhale auth set --provider zai # hoặc: deepseek, openrouter, kimi, ...
|
||||
codewhale auth status
|
||||
codewhale doctor
|
||||
codewhale
|
||||
codewhale # khởi động TUI
|
||||
```
|
||||
|
||||
Các lệnh trong TUI thường dùng: `/provider`, `/model`, `/config`, `/statusline`, `/skills`, `/restore`. Bắt đầu dòng bằng `!` để chạy lệnh Shell qua cơ chế approval và sandbox bình thường.
|
||||
Các lệnh hữu ích trong session:
|
||||
|
||||
## Tài liệu chi tiết
|
||||
- `/provider` và `/model` — chọn tuyến và mô hình.
|
||||
- `/config` — sửa các cài đặt runtime.
|
||||
- `/statusline` — tuyến hiện tại, chi phí và trạng thái session.
|
||||
- `/skills` — nạp các workflow dùng lại được từ `~/.codewhale/skills/`.
|
||||
- `/restore` — khôi phục một lượt trước đó từ snapshot side-git.
|
||||
- `! cargo test` — chạy một lệnh shell qua đường phê duyệt và sandbox bình thường.
|
||||
|
||||
README chỉ giữ ý tưởng và đường đi nhanh nhất. Chi tiết nằm trong docs và [codewhale.net](https://codewhale.net/):
|
||||
## Cộng đồng & Đóng góp
|
||||
|
||||
- [User guide](docs/GUIDE.md)
|
||||
- [Install guide](docs/INSTALL.md)
|
||||
- [Configuration](docs/CONFIGURATION.md)
|
||||
- [Provider registry](docs/PROVIDERS.md)
|
||||
- [Sub-agents](docs/SUBAGENTS.md)
|
||||
- [Runtime API](docs/RUNTIME_API.md)
|
||||
- [Model Lab](docs/MODEL_LAB.md)
|
||||
- [Architecture](docs/ARCHITECTURE.md)
|
||||
- [v0.9.0 release acceptance](docs/V0_9_0_RELEASE_ACCEPTANCE.md)
|
||||
CodeWhale được xây dựng công khai — và đó chính là điểm cốt lõi. Mục tiêu thật
|
||||
đơn giản: với nhiều ánh mắt và nhiều bàn tay nhất, xây nên harness agent tốt nhất
|
||||
cho nhiều người nhất. Những gì bắt đầu như một dự án phụ lấy cảm hứng từ DeepSeek
|
||||
của một người đã được cộng đồng nhào nặn thành thứ vượt xa ý định ban đầu.
|
||||
|
||||
## Track v0.9.0
|
||||
**Chúng tôi rất hoan nghênh issue và pull request, bất kể bạn tự thấy mình giàu
|
||||
kinh nghiệm đến đâu.** Báo cáo bug, ý tưởng tính năng, sửa tài liệu, "PR đầu tiên",
|
||||
và cả những câu hỏi tò mò đều được tính là công việc dự án thật. Ngay cả khi bản
|
||||
vá cuối cùng phải thu hẹp, trì hoãn, hay gộp vào một commit của maintainer, các
|
||||
maintainer vẫn xem báo cáo và PR là những đóng góp — và những người đóng góp thường
|
||||
xuyên được ghi nhận dài lâu trong hồ sơ công khai.
|
||||
|
||||
v0.9.0 vẫn là nhánh tích hợp, chưa phải release công khai cho đến khi tag, GitHub Release, npm, Cargo và artifact phát hành thật sự được tạo và kiểm chứng. Trọng tâm hiện tại: relay/handoff, transcript gọn hơn, kiến trúc command/provider, Runtime API cho VS Code/GUI, HarnessProfile, WhaleFlow và credit hygiene cho cộng đồng đóng góp.
|
||||
- [Các issue đang mở](https://github.com/Hmbown/CodeWhale/issues) — có nhiều thứ
|
||||
phù hợp để đóng góp lần đầu.
|
||||
- [CONTRIBUTING.md](CONTRIBUTING.md) — dựng vòng lặp phát triển và mở một PR.
|
||||
- [Quy tắc ứng xử](CODE_OF_CONDUCT.md) — hãy tử tế với nhau.
|
||||
- [Những người đóng góp](docs/CONTRIBUTORS.md) — những người đã nhào nặn CodeWhale.
|
||||
|
||||
## Tài liệu
|
||||
|
||||
README giúp bạn khởi động; chi tiết nằm ở [`docs/`](docs) và trên
|
||||
[codewhale.net](https://codewhale.net/):
|
||||
|
||||
- [Hướng dẫn người dùng](docs/GUIDE.md) — giờ đầu tiên của bạn với CodeWhale.
|
||||
- [Hướng dẫn cài đặt](docs/INSTALL.md) — mọi đường dẫn gói và khắc phục sự cố.
|
||||
- [Cấu hình](docs/CONFIGURATION.md) — file cấu hình và cài đặt provider.
|
||||
- [Provider](docs/PROVIDERS.md) — tuyến mô hình, thông tin xác thực và năng lực.
|
||||
- [Các chế độ](docs/MODES.md) — Agent, Plan, và YOLO.
|
||||
- [Sub-agent](docs/SUBAGENTS.md) — vai trò, vòng đời và phục hồi.
|
||||
- [Fleet](docs/FLEET.md) — chạy đa worker và điều phối headless.
|
||||
- [Tác giả WhaleFlow](docs/WHALEFLOW_AUTHORING.md) — workflow khai báo.
|
||||
- [Runtime API](docs/RUNTIME_API.md) — hợp đồng HTTP/SSE, ACP và editor/GUI.
|
||||
- [MCP](docs/MCP.md) — các máy chủ Model Context Protocol.
|
||||
- [Kiến trúc](docs/ARCHITECTURE.md) — bố cục crate, luồng runtime, bảo mật.
|
||||
- [Phím tắt](docs/KEYBINDINGS.md) — bản đồ phím đầy đủ.
|
||||
- [Sandbox & phê duyệt](docs/SANDBOX.md) · [Trợ năng](docs/ACCESSIBILITY.md)
|
||||
· [Docker](docs/DOCKER.md) · [Bộ nhớ](docs/MEMORY.md)
|
||||
- [Toàn bộ mục lục tài liệu](docs) — mọi thứ khác.
|
||||
|
||||
## Bản sắc vận hành & Hiến pháp
|
||||
|
||||
CodeWhale có quan điểm rõ ràng về việc một agent **nên hành xử thế nào** trong một
|
||||
workspace thật, chứ không chỉ là nó có thể làm gì. Quan điểm đó được viết ra thành
|
||||
[Hiến pháp CodeWhale](docs/AGENT_ETHOS.md), và tóm lại bằng vài ý sau:
|
||||
|
||||
- **Agent có một địa chỉ.** Nó là một instance trong *terminal này* và *workspace
|
||||
này* — không phải một model card hay một điểm số trên bảng xếp hạng.
|
||||
- **Bằng chứng hơn tường thuật.** Đầu ra công cụ thắng một phỏng đoán; một lệnh
|
||||
thất bại được báo cáo là thất bại; xác minh là một phần của tác vụ.
|
||||
- **Ý định người dùng là tối thượng.** Yêu cầu hiện tại của bạn thắng các hướng
|
||||
dẫn repo cũ, bộ nhớ, và các lần bàn giao trước đó.
|
||||
- **Luật địa phương là tường minh.** Các repository có thể thêm
|
||||
`.codewhale/constitution.json` cho thẩm quyền dự án bền vững, các bất biến được
|
||||
bảo vệ và quy tắc xác minh.
|
||||
- **Chính sách runtime được thực thi.** Các chế độ, cổng phê duyệt, sandbox,
|
||||
khôi phục và schema công cụ là code, không phải lời khuyên mà model phải nhớ.
|
||||
|
||||
Sản phẩm là lớp thứ tự bao quanh model: ai đang hành động, luật của ai được áp
|
||||
dụng, bằng chứng nào tồn tại, và làm sao con người hay agent tiếp theo có thể tiếp
|
||||
nối. Nếu cách đóng khung này hữu ích với bạn, tuyệt; nếu không, bạn có thể bỏ qua
|
||||
nó và chỉ dùng các công cụ.
|
||||
|
||||
## Lời cảm ơn
|
||||
|
||||
- **[DeepSeek](https://github.com/deepseek-ai)** — Xin chân thành cảm ơn sự hỗ trợ và các mô hình AI mạnh mẽ giúp tiếp sức cho mọi tương tác trong dự án. 感谢 DeepSeek 提供模型与支持,让每一次交互成为可能。
|
||||
- **[DataWhale](https://github.com/datawhalechina)** 🐋 — Xin cảm ơn sự hỗ trợ nhiệt tình và đã chào đón chúng tôi gia nhập gia đình lớn "Whale Brother". 感谢 DataWhale 的支持,并欢迎 chúng tôi gia nhập “鲸兄弟”大家庭。
|
||||
- **[OpenWarp](https://github.com/zerx-lab/warp)** — Cảm ơn vì đã ưu tiên hỗ trợ codewhale và hợp tác để mang lại trải nghiệm agent terminal tốt hơn.
|
||||
- **[Open Design](https://github.com/nexu-io/open-design)** — Cảm ơn vì sự hỗ trợ và hợp tác xung quanh quy trình làm việc chú trọng thiết kế của agent.
|
||||
CodeWhale tồn tại nhờ những người dùng nó, làm hỏng nó, và sửa nó.
|
||||
|
||||
Dự án này được phát triển và vận hành trơn tru với sự đóng góp của cộng đồng các nhà phát triển ngày càng lớn mạnh:
|
||||
- **[DeepSeek](https://github.com/deepseek-ai)** — những mô hình và sự hỗ trợ đã
|
||||
giúp dự án này khởi đầu. 感谢 DeepSeek 提供模型与支持。
|
||||
- **[DataWhale](https://github.com/datawhalechina)** 🐋 — vì sự hỗ trợ và vì đã
|
||||
đón chúng tôi vào gia đình Whale Brother. 感谢 DataWhale 的支持。
|
||||
- **[OpenWarp](https://github.com/zerx-lab/warp)** và
|
||||
**[Open Design](https://github.com/nexu-io/open-design)** — vì đã hợp tác xây
|
||||
dựng một trải nghiệm terminal-agent tốt hơn.
|
||||
- **Mọi người đóng góp** — bản ghi chép đầy đủ theo PR nằm ở
|
||||
[docs/CONTRIBUTORS.md](docs/CONTRIBUTORS.md). Cảm ơn các bạn.
|
||||
|
||||
Các đóng góp đã được merge hoặc được harvest trong v0.8.48: **[@cy2311](https://github.com/cy2311)**, **[@LING71671](https://github.com/LING71671)**, **[@axobase001](https://github.com/axobase001)**, **[@dzyuan](https://github.com/dzyuan)**, **[@mvanhorn](https://github.com/mvanhorn)**, **[@malsony](https://github.com/malsony)**, **[@gaord](https://github.com/gaord)**, **[@yuanchenglu](https://github.com/yuanchenglu)**, **[@idling11](https://github.com/idling11)**, **[@h3c-hexin](https://github.com/h3c-hexin)**, **[@AdityaVG13](https://github.com/AdityaVG13)**, **[@Sskift](https://github.com/Sskift)**, **[@cyq1017](https://github.com/cyq1017)**, **[@HUQIANTAO](https://github.com/HUQIANTAO)**, **[@New2Niu](https://github.com/New2Niu)**, **[@AiurArtanis](https://github.com/AiurArtanis)**, **[@Lee-take](https://github.com/Lee-take)**, **[@nightt5879](https://github.com/nightt5879)**, **[@AresNing](https://github.com/AresNing)**, **[@AccMoment](https://github.com/AccMoment)**, **[@reidliu41](https://github.com/reidliu41)**, **[@aboimpinto](https://github.com/aboimpinto)**, **[@zhuangbiaowei](https://github.com/zhuangbiaowei)**, **[@donglovejava](https://github.com/donglovejava)**, **[@hongqitai](https://github.com/hongqitai)**, **[@zlh124](https://github.com/zlh124)**, **[@encyc](https://github.com/encyc)**, **[@Implementist](https://github.com/Implementist)**, **[@lihuan215](https://github.com/lihuan215)**, **[@LeoAlex0](https://github.com/LeoAlex0)**, **[@jimmyzhuu](https://github.com/jimmyzhuu)**, **[@rockyzhang](https://github.com/rockyzhang)**, **[@mo-vic](https://github.com/mo-vic)**, **[@hufanexplore](https://github.com/hufanexplore)**, **[@hoclaptrinh33](https://github.com/hoclaptrinh33)** , **[@BryonGo](https://github.com/BryonGo)**, **[@gordonlu](https://github.com/gordonlu)** và **[@hongchen1993](https://github.com/hongchen1993)**.
|
||||
## Đóng góp
|
||||
|
||||
Xin cảm ơn các báo cáo, bước tái hiện lỗi và xác minh từ **[@buko](https://github.com/buko)**, **[@yyyCode](https://github.com/yyyCode)**, **[@gaslebinh-glitch](https://github.com/gaslebinh-glitch)**, **[@Dr3259](https://github.com/Dr3259)**, **[@lpeng1711694086-lang](https://github.com/lpeng1711694086-lang)**, **[@VerrPower](https://github.com/VerrPower)**, **[@yan-zay](https://github.com/yan-zay)**, **[@jretz](https://github.com/jretz)**, **[@Neo-millunnium](https://github.com/Neo-millunnium)**, **[@caeserchen](https://github.com/caeserchen)**, **[@T-Phuong-Nguyen](https://github.com/T-Phuong-Nguyen)**, **[@zhyuzhyu](https://github.com/zhyuzhyu)**, **[@0gl20shk0sbt36](https://github.com/0gl20shk0sbt36)**, **[@hatakes](https://github.com/hatakes)**, **[@goodvecn-dev](https://github.com/goodvecn-dev)**, **[@bevis-wong](https://github.com/bevis-wong)**, **[@PurplePulse](https://github.com/PurplePulse)** và **[@nbiish](https://github.com/nbiish)** đã giúp định hình v0.8.48.
|
||||
Xem [CONTRIBUTING.md](CONTRIBUTING.md). Hoan nghênh pull request — hãy xem
|
||||
[các issue đang mở](https://github.com/Hmbown/CodeWhale/issues) để tìm nơi khởi
|
||||
đầu phù hợp.
|
||||
|
||||
- **[merchloubna70-dot](https://github.com/merchloubna70-dot)** — Đóng góp 28 PR bao gồm tính năng mới, sửa lỗi và dựng sẵn extension cho VS Code (#645–#681)
|
||||
- **[WyxBUPT-22](https://github.com/WyxBUPT-22)** — Xây dựng trình kết xuất Markdown hỗ trợ bảng biểu, chữ đậm/nghiêng và đường kẻ ngang (#579)
|
||||
- **[loongmiaow-pixel](https://github.com/loongmiaow-pixel)** — Tài liệu cài đặt cho Windows và Trung Quốc (#578)
|
||||
- **[20bytes](https://github.com/20bytes)** — Cải tiến tài liệu tính năng tự ghi nhớ và giao diện trợ giúp (#569)
|
||||
- **[staryxchen](https://github.com/staryxchen)** — Kiểm tra độ tương thích của thư viện glibc trước khi chạy (#556)
|
||||
- **[Vishnu1837](https://github.com/Vishnu1837)** — Tối ưu hóa tính tương thích glibc và tự phục hồi trạng thái terminal khi nhận tín hiệu SIGINT/SIGTERM (#565, #1586)
|
||||
- **[shentoumengxin](https://github.com/shentoumengxin)** — Kiểm tra hợp lệ ranh giới thư mục làm việc `cwd` của Shell (#524)
|
||||
- **[toi500](https://github.com/toi500)** — Báo cáo và sửa lỗi dán văn bản trên hệ điều hành Windows
|
||||
- **[xsstomy](https://github.com/xsstomy)** — Báo cáo lỗi vẽ lại màn hình khi khởi động terminal
|
||||
- **Melody0709** — Báo cáo lỗi kích hoạt phím Enter với tiền tố lệnh gạch chéo
|
||||
- **[lloydzhou](https://github.com/lloydzhou)** và **[jeoor](https://github.com/jeoor)** — Báo cáo lỗi chi phí nén dữ liệu; lloydzhou cũng đóng góp ngữ cảnh môi trường xác định (#813, #922) và ổn định bộ nhớ đệm KV prefix-cache (#1080)
|
||||
- **[Agent-Skill-007](https://github.com/Agent-Skill-007)** — Tinh chỉnh diễn đạt rõ ràng cho file giới thiệu README (#685)
|
||||
- **[woyxiang](https://github.com/woyxiang)** — Tài liệu hướng dẫn cài đặt qua Scoop trên Windows (#696)
|
||||
- **[wangfeng](mailto:wangfengcsu@qq.com)** — Cập nhật thông tin giá cả và chương trình khuyến mãi (#692)
|
||||
- **[zichen0116](https://github.com/zichen0116)** — Xây dựng tài liệu quy tắc ứng xử cộng đồng CODE_OF_CONDUCT.md (#686)
|
||||
- **[dfwqdyl-ui](https://github.com/dfwqdyl-ui)** — Báo cáo tính tương thích chữ hoa/thường của ID mô hình (#729)
|
||||
- **[Oliver-ZPLiu](https://github.com/Oliver-ZPLiu)** — Báo cáo lỗi trạng thái `working...` bị kẹt, cơ chế dự phòng khay nhớ tạm (clipboard) trên Windows, sửa lỗi phiên kết nối HTTP dạng MCP Streamable, và tự động hóa brew tap (#738, #850, #1643, #1631)
|
||||
- **[reidliu41](https://github.com/reidliu41)** — Ý tưởng gợi ý tiếp tục phiên, lưu trữ độ tin cậy workspace, hỗ trợ nhà cung cấp Ollama, hoàn thiện stream khối suy nghĩ, tăng cường cache cho CI, xử lý wrap dòng stream, và hoàn thành tính năng autocomplete cho DeepSeek (#863, #870, #921, #1078, #1603, #1628, #1601)
|
||||
- **[xieshutao](https://github.com/xieshutao)** — Cơ chế dự phòng skill dạng Markdown thuần (#869)
|
||||
- **[GK012](https://github.com/GK012)** — Cơ chế dự phòng lệnh `--version` của wrapper npm (#885)
|
||||
- **[y0sif](https://github.com/y0sif)** — Xử lý đánh thức vòng lặp agent cha sau khi các sub-agent con hoàn thành tác vụ (#901)
|
||||
- **[mac119](https://github.com/mac119)** và **[leo119](https://github.com/leo119)** — Viết tài liệu hướng dẫn cho lệnh `codewhale update` (#838, #917)
|
||||
- **[dumbjack](https://github.com/dumbjack)** / **浩淼的mac** — Tăng cường bảo mật chống mã độc qua lệnh shell byte rỗng (#706, #918)
|
||||
- **macworkers** — Cải tiến xác nhận rẽ nhánh (fork) kèm mã phiên làm việc mới (#600, #919)
|
||||
- **zero** và **[zerx-lab](https://github.com/zerx-lab)** — Cấu hình điều kiện nhận thông báo và làm phong phú nội dung thông báo qua OSC 9 (#820, #920)
|
||||
- **[chnjames](https://github.com/chnjames)** — Gợi ý hoàn thành @mentions từ cache, cải tiến phục hồi file cấu hình lỗi, và hiển thị chuẩn UTF-8 cho Shell trên Windows (#849, #927, #982, #1018)
|
||||
- **[angziii](https://github.com/angziii)** — Bảo mật cấu hình, dọn dẹp tài nguyên bất đồng bộ, tăng cường bảo mật Docker và vá lỗi an toàn thực thi lệnh (#822, #824, #827, #831, #833, #835, #837)
|
||||
- **[elowen53](https://github.com/elowen53)** — Giải mã UTF-8 và bổ sung các ca kiểm thử xác định (#825, #840)
|
||||
- **[wdw8276](https://github.com/wdw8276)** — Bổ sung lệnh `/rename` để đổi tên tiêu đề phiên làm việc tùy chỉnh (#836)
|
||||
- **[banqii](https://github.com/banqii)** — Hỗ trợ đường dẫn tìm kiếm skill dạng `.cursor/skills` (#817)
|
||||
- **[junskyeed](https://github.com/junskyeed)** — Tính toán động giá trị `max_tokens` cho các yêu cầu API (#826)
|
||||
- **Hafeez Pizofreude** — Triển khai cơ chế chống tấn công SSRF trong công cụ `fetch_url` và biểu đồ lịch sử Star History.
|
||||
- **Unic (YuniqueUnic)** — Xây dựng giao diện cấu hình tự động dựa trên schema (cả TUI và web).
|
||||
- **Jason** — Tăng cường bảo mật an toàn mạng chống tấn công giả mạo yêu cầu từ phía máy chủ (SSRF).
|
||||
- **[axobase001](https://github.com/axobase001)** — Dọn dẹp snapshot mồ côi, bổ sung bộ bảo vệ khi cài npm, sửa lỗi đo lường phiên làm việc, xóa cache phạm vi mô hình, hỗ trợ các liên kết tượng trưng (symlinks) cho skill, hướng dẫn cơ chế thoát lỗi cài đặt npm mirror, và duy trì cấu hình proxy cho các tác vụ con (#975, #1032, #1047, #1049, #1052, #1019, #1051, #1056, #1608)
|
||||
- **[MengZ-super](https://github.com/MengZ-super)** — Xây dựng nền tảng cho lệnh `/theme` và giải nén dữ liệu nén dạng gzip/brotli cho kết nối SSE (#1057, #1061)
|
||||
- **[DI-HUO-MING-YI](https://github.com/DI-HUO-MING-YI)** — Vá lỗi bảo mật sandbox chỉ đọc trong chế độ Plan (#1077)
|
||||
- **[bevis-wong](https://github.com/bevis-wong)** — Cung cấp ca tái hiện chính xác lỗi tự động gửi tin khi dán văn bản kèm ký tự xuống dòng (#1073)
|
||||
- **[Duducoco](https://github.com/Duducoco)** và **[AlphaGogoo](https://github.com/AlphaGogoo)** — Xây dựng thanh menu gạch chéo cho skill và sửa lỗi bao phủ lệnh `/skills` (#1068, #1083)
|
||||
- **[ArronAI007](https://github.com/ArronAI007)** — Sửa lỗi hiển thị tài nguyên artifact khi thay đổi kích thước cửa sổ trên macOS Terminal.app và ConHost (#993)
|
||||
- **[THINKER-ONLY](https://github.com/THINKER-ONLY)** — Duy trì mã mô hình tùy chỉnh cho OpenRouter và endpoint riêng (#1066)
|
||||
- **[Jefsky](https://github.com/Jefsky)** — Báo cáo sửa lỗi địa chỉ endpoint chính thức của DeepSeek (#1079, #1084)
|
||||
- **[wlon](https://github.com/wlon)** — Chẩn đoán và ưu tiên lựa chọn khóa xác thực cho nhà cung cấp NVIDIA NIM (#1081)
|
||||
- **[Horace Liu](https://github.com/liuhq)** — Đóng gói hỗ trợ Nix package và viết tài liệu hướng dẫn cài đặt (#1173)
|
||||
- **[jieshu666](https://github.com/jieshu666)** — Giảm thiểu hiện tượng nhấp nháy màn hình khi vẽ lại giao diện TUI (#1563)
|
||||
- **[gordonlu](https://github.com/gordonlu)** — Sửa lỗi nhận dạng phím Enter / mã nhập CSI-u trên Windows (#1612)
|
||||
- **[mdrkrg](https://github.com/mdrkrg)** — Vá lỗi sập ứng dụng trong lần chạy đầu tiên khi thiếu khóa API (#1598)
|
||||
- **[Aitensa](https://github.com/Aitensa)** — Xử lý tự động xuống dòng CJK cho các khối diff và kết quả đầu ra trang giấy (#1622)
|
||||
- **[qiyan233](https://github.com/qiyan233)** — Đảm bảo tương thích với các bí danh cũ của nhà cung cấp DeepSeek Trung Quốc (#1645)
|
||||
- **[zlh124](https://github.com/zlh124)** — Báo cáo khởi động không đầu WSL2 và sửa lỗi khay nhớ tạm (#1772, #1773)
|
||||
- **[aboimpinto](https://github.com/aboimpinto)** — Sửa lỗi ghi nhật ký màn hình phụ trên Windows, hoàn thiện phím Home/End tại bộ soạn thảo và theo dõi log runtime (#1774, #1776, #1748, #1749, #1782, #1783)
|
||||
- **[LeoLin990405](https://github.com/LeoLin990405)** — Bổ sung cơ chế truyền thẳng mô hình qua provider, phát lại luồng suy nghĩ, tối ưu lượt chạy chỉ suy nghĩ, và sửa lỗi trích dẫn trên Windows (#1740, #1743, #1742, #1744)
|
||||
- **[nightt5879](https://github.com/nightt5879)** — Khắc phục lỗi khôi phục giao diện nhắc nhở khi bấm phím Ctrl+C (#1764)
|
||||
- **[donglovejava](https://github.com/donglovejava)** — Hợp nhất kéo thả dán tệp `@file`, vá lỗi sập chữ CJK, thu thập phản hồi người dùng, định tuyến RLM, và thử lại khi `edit_file` bị kẹt (#2154–#2168)
|
||||
- **[encyc](https://github.com/encyc)** — Hiển thị chi tiết số lượng token tiêu thụ ở chân trang và lệnh `/status` (#2152)
|
||||
- **[saieswar237](https://github.com/saieswar237)** — Bổ sung tài liệu hướng dẫn về quy trình review code (#2178)
|
||||
- **[sximelon](https://github.com/sximelon)** — Chặn sự kiện tự gửi tin khi dán văn bản và tách phân hệ quản lý phím bấm (#2174, #2042)
|
||||
- **[nanookclaw](https://github.com/nanookclaw)** — Bổ sung hiển thị nhà cung cấp tìm kiếm trong kết quả của lệnh doctor (#2135)
|
||||
- **[Sskift](https://github.com/Sskift)** — Ngăn chặn việc ghi đè biến môi trường mặc định trên CLI (#2119)
|
||||
- **[xin1104](https://github.com/xin1104)** — Tạo brew formula cài binary codewhale độc lập (#2105)
|
||||
- **[mrluanma](https://github.com/mrluanma)** — Bổ sung nhà cung cấp dịch vụ tìm kiếm Metaso (#2059)
|
||||
- **[Lellansin](https://github.com/Lellansin)** — Bỏ qua việc gộp cấu hình tại thư mục home người dùng (#2055)
|
||||
- **[zhuangbiaowei](https://github.com/zhuangbiaowei)** — Cập nhật các kênh phát hành chính thức của sản phẩm (#2145)
|
||||
|
||||
---
|
||||
|
||||
## Đóng góp cho dự án
|
||||
|
||||
Xem tài liệu hướng dẫn đóng góp tại [CONTRIBUTING.md](CONTRIBUTING.md). Chúng tôi luôn hoan nghênh các yêu cầu kéo Pull Requests — vui lòng xem danh sách các [vấn đề mở (open issues)](https://github.com/Hmbown/CodeWhale/issues) để bắt đầu đóng góp những phần việc đầu tiên.
|
||||
|
||||
Ủng hộ nhà phát triển: [Buy me a coffee](https://www.buymeacoffee.com/hmbown).
|
||||
|
||||
> [!Note]
|
||||
> *Dự án này độc lập và không trực thuộc công ty DeepSeek Inc.*
|
||||
|
||||
## Bản quyền
|
||||
## Giấy phép
|
||||
|
||||
[MIT](LICENSE)
|
||||
|
||||
## Biểu đồ Star History
|
||||
> *CodeWhale là một dự án cộng đồng độc lập và không liên kết với bất kỳ provider
|
||||
> mô hình nào.*
|
||||
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
|
||||
## Lịch sử Star
|
||||
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
|
||||
|
||||
+106
-108
@@ -1,31 +1,47 @@
|
||||
# CodeWhale
|
||||
|
||||
> 面向 DeepSeek V4 和开放模型的本地 Agent 运行框架:自我、权威、证据闭环。
|
||||
> 一个社区共建的智能体终端,用最好的可用模型写代码。
|
||||
|
||||
[English README](README.md) · [日本語 README](README.ja-JP.md) · [Tiếng Việt README](README.vi.md)
|
||||
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://deepwiki.com/Hmbown/CodeWhale)
|
||||
|
||||

|
||||
|
||||
## 核心想法
|
||||
## CodeWhale 是什么
|
||||
|
||||
多数编程 Agent 从“更强”开始:更多工具、更长上下文、更多自动化。CodeWhale 从责任开始。
|
||||
CodeWhale 是一个开源的终端智能体,你在本地运行它,在自己的仓库里干实事——读代码、跑命令、改文件、提交补丁——用的是**你自己选的模型**。它把一整套工具面(shell、文件编辑、git、网页、MCP 和子智能体)与审批闸门、可回滚的快照、可恢复的会话组合在一起。
|
||||
|
||||
Agent 改仓库前,先要有一个地址:这个终端、这个用户、这个分支、这个会话。这就是 ego 层。不是炫耀,而是连续性;不是人格面具,而是责任落点。
|
||||
它最初是一个受 DeepSeek 启发的 TUI。社区把它变成了更广阔的东西:一个能用大多数人手头最好的模型来干活的工具,无论你用的是哪家。DeepSeek 在这里依然是一等公民;但它不再是唯一的好选择,也并非必须。
|
||||
|
||||
然后它需要法律。真实工作区是一组冲突来源:用户当前意图、仓库规则、Shell 输出、旧记忆、上一次交接、安全策略和未完成改动都会挤在同一轮里。CodeWhale 用 Constitution 给这些来源排出顺序:当前用户请求高于旧上下文;实时证据高于假设;验证高于自信;个性只影响语气,不决定行为。
|
||||
一切都在你自己的机器上运行。密钥、仓库、判断力,始终握在你手里。
|
||||
|
||||
CodeWhale 的产品本质是模型外面的排序层:谁在行动、听谁的 law、有什么证据,以及下一个人或 Agent 如何继续。
|
||||
## 为什么用它
|
||||
|
||||
## 已经具备的能力
|
||||
- **审批闸门工具。** 文件编辑、shell、git、网页、MCP 和子智能体调用,全部经由沙箱与由你掌控的审批策略。
|
||||
- **子智能体与 Fleet。** 把并行的调查或实现分派到无头子智能体 worker 上,编排多步任务。
|
||||
- **快照与回滚。** 每一轮都在 side-git 里留下快照,`/restore` 撤销改动时不会动到你仓库的 `.git`。
|
||||
- **实时诊断。** 编辑后,语言服务器(在可用时)会即时亮起,让你第一时间看到类型错误与告警。
|
||||
- **持久会话。** 在轮次、会话、机器之间恢复、分叉、中转交接——还有面向编辑器和 GUI 的运行时 API。
|
||||
- **自带模型。** 把每个任务路由到最适合它的提供商。
|
||||
|
||||
- 本地优先的终端 TUI;
|
||||
- 文件、Shell、Git、Web、MCP、RLM、子 Agent 等带 schema 的工具;
|
||||
- 审批门、沙箱、side-git 快照和 `/restore` 回滚;
|
||||
- 编辑后的语言服务器诊断反馈;
|
||||
- 并发子 Agent、持久会话、fork、relay 交接和运行时 API;
|
||||
- DeepSeek V4 一等支持,同时保留 OpenRouter、Xiaomi MiMo、NVIDIA NIM、Arcee、SiliconFlow、Fireworks、Novita、自托管 SGLang/vLLM、Ollama 等显式 provider 路由。
|
||||
## 支持的模型与提供商
|
||||
|
||||
DeepSeek 是一等路径,不是唯一边界。provider、model、base URL 和凭据是分开的选择。
|
||||
CodeWhale 内置了大家真正在用的那些提供商的一等路由。带上你的密钥,按任务挑模型:
|
||||
|
||||
- **DeepSeek** —— V4 Pro / Flash,以及 DeepSeek 兼容的网关
|
||||
- **GLM / Z.ai** —— GLM-5.1、GLM-5.2(Z.ai Coding Plan)
|
||||
- **Kimi(Moonshot)** —— Kimi K2.6 / K2.7 Code
|
||||
- **MiniMax** —— 一等路由
|
||||
- **OpenRouter** —— 一把钥匙,数百个模型
|
||||
- **NVIDIA NIM · Xiaomi MiMo · SiliconFlow · Fireworks · Novita · StepFun / StepFlash**
|
||||
- **自托管** —— vLLM、SGLang、Ollama
|
||||
- **任何 OpenAI 兼容的网关**
|
||||
|
||||
用 `/provider` 和 `/model` 切换。凭据、base URL 与能力边界见
|
||||
[docs/PROVIDERS.md](docs/PROVIDERS.md)。
|
||||
|
||||
## 安装
|
||||
|
||||
@@ -33,136 +49,118 @@ DeepSeek 是一等路径,不是唯一边界。provider、model、base URL 和
|
||||
cargo install codewhale-cli --locked
|
||||
cargo install codewhale-tui --locked
|
||||
codewhale --version
|
||||
codewhale --model auto
|
||||
```
|
||||
|
||||
其他路径:
|
||||
首次启动时,CodeWhale 会向你索要一个提供商密钥,并存入
|
||||
`~/.codewhale/config.toml`;出于兼容,旧的 `~/.deepseek/` 配置仍会被读取。
|
||||
|
||||
其他安装方式:
|
||||
|
||||
```bash
|
||||
# GitHub Releases 提供平台归档包:
|
||||
# npm 封装
|
||||
npm install -g codewhale
|
||||
|
||||
# 平台预编译包见 GitHub Releases
|
||||
# https://github.com/Hmbown/CodeWhale/releases
|
||||
|
||||
# 如果 GitHub 访问不稳定,可以使用 CNB 镜像:
|
||||
# CNB 镜像(GitHub 难以访问时)
|
||||
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.60 codewhale-cli --locked --force
|
||||
cargo install --git https://cnb.cool/codewhale.net/codewhale --tag v0.8.60 codewhale-tui --locked --force
|
||||
|
||||
# 旧 Homebrew 兼容路径,formula 仍使用 deepseek-tui 名称
|
||||
brew tap Hmbown/deepseek-tui
|
||||
brew install deepseek-tui
|
||||
# Homebrew(formula 改名期间的兼容方式)
|
||||
brew tap Hmbown/deepseek-tui && brew install deepseek-tui
|
||||
```
|
||||
|
||||
`codewhale` npm wrapper 也可通过 `npm install -g codewhale` 安装。
|
||||
Docker、直接下载、国内镜像、Windows/Scoop、Nix、校验和与故障排查,见
|
||||
[docs/INSTALL.md](docs/INSTALL.md)。
|
||||
|
||||
Docker、直接下载、中国大陆镜像、Windows/Scoop、Nix、校验和和故障排查见 [docs/INSTALL.md](docs/INSTALL.md)。
|
||||
**从旧的 `deepseek-tui` 包升级?** 你的配置、会话、技能和 MCP 设置都会保留。见
|
||||
[docs/REBRAND.md](docs/REBRAND.md),然后跑一遍 `codewhale doctor` 确认。
|
||||
|
||||
## 第一次运行
|
||||
## 快速开始
|
||||
|
||||
```bash
|
||||
codewhale auth set --provider deepseek
|
||||
codewhale auth set --provider zai # 或:deepseek、openrouter、kimi ……
|
||||
codewhale auth status
|
||||
codewhale doctor
|
||||
codewhale
|
||||
codewhale # 启动 TUI
|
||||
```
|
||||
|
||||
常用入口:`/provider`、`/model`、`/config`、`/statusline`、`/skills`、`/restore`。在输入框前加 `!` 可以通过正常审批和沙箱路径运行 Shell 命令。
|
||||
常用的会话内命令:
|
||||
|
||||
## 更多文档
|
||||
- `/provider` 与 `/model` —— 选择路由与模型。
|
||||
- `/config` —— 编辑运行时设置。
|
||||
- `/statusline` —— 当前的路由、成本与会话状态。
|
||||
- `/skills` —— 从 `~/.codewhale/skills/` 加载可复用工作流。
|
||||
- `/restore` —— 从 side-git 快照回滚之前的某轮。
|
||||
- `! cargo test` —— 经由正常的审批与沙箱路径跑一条 shell 命令。
|
||||
|
||||
README 只保留概念和最快路径。细节放在文档和 [codewhale.net](https://codewhale.net/):
|
||||
## 社区与贡献
|
||||
|
||||
- [用户指南](docs/GUIDE.md)
|
||||
- [安装指南](docs/INSTALL.md)
|
||||
- [配置和仓库 constitution](docs/CONFIGURATION.md)
|
||||
- [Provider 注册表](docs/PROVIDERS.md)
|
||||
- [子 Agent](docs/SUBAGENTS.md)
|
||||
- [Runtime API](docs/RUNTIME_API.md)
|
||||
- [Model Lab](docs/MODEL_LAB.md)
|
||||
- [架构](docs/ARCHITECTURE.md)
|
||||
- [v0.9.0 发布验收](docs/V0_9_0_RELEASE_ACCEPTANCE.md)
|
||||
CodeWhale 在公开环境中打造——这正是它的意义所在。目标很简单:用最多的眼睛和最多的手,为最多的人做出最好的智能体工具。它起初只是一个人受 DeepSeek 启发做的副业项目,在社区的塑造下,长成了超出它最初设想的东西。
|
||||
|
||||
## v0.9.0 轨道
|
||||
**无论你觉得自己经验几何,我们都欢迎 issue 和 pull request。** bug 报告、功能想法、文档修正、"第一次 PR"、以及带着好奇的提问,全都算作真正的项目工作。即便最终补丁不得不收窄、延后、或并入维护者的提交,维护者也会把报告和 PR 当作贡献来对待——而反复贡献的人,会一直留在公开记录里被致谢。
|
||||
|
||||
v0.9.0 仍是集成轨道,只有在 tag、GitHub Release、npm、Cargo 和发布产物都真实切出并验证后才算发布。当前重点包括 relay/交接、转录降噪、命令和 provider 架构、VS Code/GUI runtime API、HarnessProfile、WhaleFlow,以及贡献者 credit hygiene。
|
||||
- [开放的 issue](https://github.com/Hmbown/CodeWhale/issues) —— 适合作为首次贡献。
|
||||
- [CONTRIBUTING.md](CONTRIBUTING.md) —— 搭好开发循环、提交一个 PR。
|
||||
- [行为准则](CODE_OF_CONDUCT.md) —— 彼此友善。
|
||||
- [贡献者](docs/CONTRIBUTORS.md) —— 塑造了 CodeWhale 的人。
|
||||
|
||||
## 文档
|
||||
|
||||
README 帮你起步;细节都在 [`docs/`](docs) 和 [codewhale.net](https://codewhale.net/):
|
||||
|
||||
- [用户指南](docs/GUIDE.md) —— 与 CodeWhale 共度的第一个小时。
|
||||
- [安装指南](docs/INSTALL.md) —— 每一种包路径与故障排查。
|
||||
- [配置](docs/CONFIGURATION.md) —— 配置文件与提供商设置。
|
||||
- [提供商](docs/PROVIDERS.md) —— 模型路由、凭据与能力。
|
||||
- [模式](docs/MODES.md) —— Agent、Plan、YOLO。
|
||||
- [子智能体](docs/SUBAGENTS.md) —— 角色、生命周期与恢复。
|
||||
- [Fleet](docs/FLEET.md) —— 多 worker 运行与无头编排。
|
||||
- [WhaleFlow 编写](docs/WHALEFLOW_AUTHORING.md) —— 声明式工作流。
|
||||
- [运行时 API](docs/RUNTIME_API.md) —— HTTP/SSE、ACP 与编辑器/GUI 契约。
|
||||
- [MCP](docs/MCP.md) —— Model Context Protocol 服务器。
|
||||
- [架构](docs/ARCHITECTURE.md) —— crate 布局、运行时流程、安全模型。
|
||||
- [快捷键](docs/KEYBINDINGS.md) —— 完整按键表。
|
||||
- [沙箱与审批](docs/SANDBOX.md) · [无障碍](docs/ACCESSIBILITY.md)
|
||||
· [Docker](docs/DOCKER.md) · [记忆](docs/MEMORY.md)
|
||||
- [完整文档索引](docs) —— 其余一切。
|
||||
|
||||
## 运行身份与宪法
|
||||
|
||||
CodeWhale 对一个智能体在真实工作区里**该如何行动**是有主张的,而不仅仅关心它能做什么。这套主张写成了一份
|
||||
[CodeWhale 宪法](docs/AGENT_ETHOS.md),归结起来是几条想法:
|
||||
|
||||
- **智能体要有地址。** 它是*这个*终端、*这个*工作区里的一个实例——不是一张模型卡片,也不是一个榜单分数。
|
||||
- **证据高于叙述。** 工具输出胜过猜测;一条失败的命令就被如实报为失败的命令;验证是任务的一部分。
|
||||
- **用户意图至上。** 你当下的请求,高于过时的仓库指引、记忆与之前的交接。
|
||||
- **本地法规是显式的。** 仓库可以加一份 `.codewhale/constitution.json`,承载持久的项目权威、受保护的不变量与验证规则。
|
||||
- **运行时策略是被强制执行的。** 模式、审批闸门、沙箱、回滚与工具 schema 是代码,而不是模型得去记住的劝告。
|
||||
|
||||
这个产品是环绕模型的那一层秩序:是谁在行动、适用谁的法规、存在哪些证据、以及下一个人或智能体如何接续。如果这套框架对你有用,那很好;如果没用,你完全可以无视它,只当工具用。
|
||||
|
||||
## 致谢
|
||||
|
||||
- **[DeepSeek](https://github.com/deepseek-ai)** — 感谢 DeepSeek 提供模型与支持,让每一次交互成为可能。
|
||||
- **[DataWhale](https://github.com/datawhalechina)** — 感谢 DataWhale 的支持,并欢迎我们加入“鲸兄弟”大家庭。
|
||||
- **[OpenWarp](https://github.com/zerx-lab/warp)** — 感谢 OpenWarp 优先支持 codewhale,并一起打磨更好的终端智能体体验。
|
||||
- **[Open Design](https://github.com/nexu-io/open-design)** — 感谢 Open Design 对面向设计的智能体工作流提供支持与协作。
|
||||
CodeWhale 之所以存在,是因为那些使用它、把它弄坏、又把它修好的人。
|
||||
|
||||
本项目由不断壮大的贡献者社区共同打造:
|
||||
|
||||
v0.8.48 合并或吸收的贡献者包括:**[@cy2311](https://github.com/cy2311)**、**[@LING71671](https://github.com/LING71671)**、**[@axobase001](https://github.com/axobase001)**、**[@dzyuan](https://github.com/dzyuan)**、**[@mvanhorn](https://github.com/mvanhorn)**、**[@malsony](https://github.com/malsony)**、**[@gaord](https://github.com/gaord)**、**[@yuanchenglu](https://github.com/yuanchenglu)**、**[@idling11](https://github.com/idling11)**、**[@h3c-hexin](https://github.com/h3c-hexin)**、**[@AdityaVG13](https://github.com/AdityaVG13)**、**[@Sskift](https://github.com/Sskift)**、**[@cyq1017](https://github.com/cyq1017)**、**[@HUQIANTAO](https://github.com/HUQIANTAO)**、**[@New2Niu](https://github.com/New2Niu)**、**[@AiurArtanis](https://github.com/AiurArtanis)**、**[@Lee-take](https://github.com/Lee-take)**、**[@nightt5879](https://github.com/nightt5879)**、**[@AresNing](https://github.com/AresNing)**、**[@AccMoment](https://github.com/AccMoment)**、**[@reidliu41](https://github.com/reidliu41)**、**[@aboimpinto](https://github.com/aboimpinto)**、**[@zhuangbiaowei](https://github.com/zhuangbiaowei)**、**[@donglovejava](https://github.com/donglovejava)**、**[@hongqitai](https://github.com/hongqitai)**、**[@zlh124](https://github.com/zlh124)**、**[@encyc](https://github.com/encyc)**、**[@Implementist](https://github.com/Implementist)**、**[@lihuan215](https://github.com/lihuan215)**、**[@LeoAlex0](https://github.com/LeoAlex0)**、**[@jimmyzhuu](https://github.com/jimmyzhuu)**、**[@rockyzhang](https://github.com/rockyzhang)**、**[@mo-vic](https://github.com/mo-vic)**、**[@hufanexplore](https://github.com/hufanexplore)**、**[@hoclaptrinh33](https://github.com/hoclaptrinh33)** 、**[@BryonGo](https://github.com/BryonGo)**、**[@gordonlu](https://github.com/gordonlu)** 和 **[@hongchen1993](https://github.com/hongchen1993)**。
|
||||
|
||||
同样感谢提供报告、复现和验证的 **[@buko](https://github.com/buko)**、**[@yyyCode](https://github.com/yyyCode)**、**[@gaslebinh-glitch](https://github.com/gaslebinh-glitch)**、**[@Dr3259](https://github.com/Dr3259)**、**[@lpeng1711694086-lang](https://github.com/lpeng1711694086-lang)**、**[@VerrPower](https://github.com/VerrPower)**、**[@yan-zay](https://github.com/yan-zay)**、**[@jretz](https://github.com/jretz)**、**[@Neo-millunnium](https://github.com/Neo-millunnium)**、**[@caeserchen](https://github.com/caeserchen)**、**[@T-Phuong-Nguyen](https://github.com/T-Phuong-Nguyen)**、**[@zhyuzhyu](https://github.com/zhyuzhyu)**、**[@0gl20shk0sbt36](https://github.com/0gl20shk0sbt36)**、**[@hatakes](https://github.com/hatakes)**、**[@goodvecn-dev](https://github.com/goodvecn-dev)**、**[@bevis-wong](https://github.com/bevis-wong)**、**[@PurplePulse](https://github.com/PurplePulse)** 和 **[@nbiish](https://github.com/nbiish)**。
|
||||
|
||||
- **[merchloubna70-dot](https://github.com/merchloubna70-dot)** — 28 个 PR,涵盖功能、修复和 VS Code 扩展基础架构 (#645–#681)
|
||||
- **[WyxBUPT-22](https://github.com/WyxBUPT-22)** — Markdown 表格、粗体/斜体和水平线渲染 (#579)
|
||||
- **[loongmiaow-pixel](https://github.com/loongmiaow-pixel)** — Windows + 中国安装文档 (#578)
|
||||
- **[20bytes](https://github.com/20bytes)** — 用户记忆文档和帮助优化 (#569)
|
||||
- **[staryxchen](https://github.com/staryxchen)** — glibc 兼容性预检 (#556)
|
||||
- **[Vishnu1837](https://github.com/Vishnu1837)** — glibc 兼容性改进 (#565)
|
||||
- **[shentoumengxin](https://github.com/shentoumengxin)** — Shell `cwd` 边界验证 (#524)
|
||||
- **[toi500](https://github.com/toi500)** — Windows 粘贴修复报告
|
||||
- **[xsstomy](https://github.com/xsstomy)** — 终端启动重绘报告
|
||||
- **[melody0709](https://github.com/melody0709)** — 斜杠前缀回车激活报告
|
||||
- **[lloydzhou](https://github.com/lloydzhou)** 和 **[jeoor](https://github.com/jeoor)** — 压缩成本报告;lloydzhou 还贡献了确定性的环境上下文注入 (#813, #922) 和 KV 前缀缓存稳定化 (#1080)
|
||||
- **[Agent-Skill-007](https://github.com/Agent-Skill-007)** — README 清晰化改进 (#685)
|
||||
- **[woyxiang](https://github.com/woyxiang)** — Windows 安装文档 (#696)
|
||||
- **[wangfeng](mailto:wangfengcsu@qq.com)** — 价格/折扣信息更新 (#692)
|
||||
- **[zichen0116](https://github.com/zichen0116)** — CODE_OF_CONDUCT.md (#686)
|
||||
- **[dfwqdyl-ui](https://github.com/dfwqdyl-ui)** — 模型 ID 大小写兼容性报告 (#729)
|
||||
- **[Oliver-ZPLiu](https://github.com/Oliver-ZPLiu)** — `working...` 卡死状态 Bug 报告和 Windows 剪贴板兜底修复 (#738, #850)
|
||||
- **[reidliu41](https://github.com/reidliu41)** — 退出后的恢复提示、工作区信任持久化、Ollama provider 支持,以及思考块流式终结修复 (#863, #870, #921, #1078)
|
||||
- **[xieshutao](https://github.com/xieshutao)** — 纯 Markdown skill 兜底解析 (#869)
|
||||
- **[GK012](https://github.com/GK012)** — npm wrapper 的 `--version` 兜底 (#885)
|
||||
- **[y0sif](https://github.com/y0sif)** — 直接子智能体完成后唤醒父级 turn loop (#901)
|
||||
- **[mac119](https://github.com/mac119)** 和 **[leo119](https://github.com/leo119)** — `codewhale update` 命令文档 (#838, #917)
|
||||
- **[dumbjack](https://github.com/dumbjack)** / **浩淼的mac** — shell 命令空字节安全加固 (#706, #918)
|
||||
- **macworkers** — fork 完成后显示新 session id (#600, #919)
|
||||
- **zero** 和 **[zerx-lab](https://github.com/zerx-lab)** — 通知条件配置和更完整的 OSC 9 通知正文 (#820, #920)
|
||||
- **[chnjames](https://github.com/chnjames)** — @mention 补全缓存、配置恢复优化,以及 Windows UTF-8 shell 输出修复 (#849, #927, #982, #1018)
|
||||
- **[angziii](https://github.com/angziii)** — 配置安全、异步清理、Docker 加固和命令安全修复 (#822, #824, #827, #831, #833, #835, #837)
|
||||
- **[elowen53](https://github.com/elowen53)** — UTF-8 解码和确定性测试覆盖 (#825, #840)
|
||||
- **[wdw8276](https://github.com/wdw8276)** — 用于自定义 session 标题的 `/rename` 命令 (#836)
|
||||
- **[banqii](https://github.com/banqii)** — `.cursor/skills` 发现路径支持 (#817)
|
||||
- **[junskyeed](https://github.com/junskyeed)** — API 请求动态 `max_tokens` 计算 (#826)
|
||||
- **Hafeez Pizofreude** — `fetch_url` 的 SSRF 保护和 Star History 图表
|
||||
- **Unic (YuniqueUnic)** — 基于 schema 的配置 UI(TUI + web)
|
||||
- **Jason** — SSRF 安全加固
|
||||
- **[axobase001](https://github.com/axobase001)** — 快照孤儿文件清理、npm 安装守卫、会话遥测修复、模型作用域缓存清理、符号链接技能支持,以及 npm 镜像逃生路径指引 (#975, #1032, #1047, #1049, #1052, #1019, #1051, #1056)
|
||||
- **[MengZ-super](https://github.com/MengZ-super)** — `/theme` 命令基础和 SSE gzip/brotli 解压支持 (#1057, #1061)
|
||||
- **[DI-HUO-MING-YI](https://github.com/DI-HUO-MING-YI)** — Plan 模式只读沙箱安全修复 (#1077)
|
||||
- **[bevis-wong](https://github.com/bevis-wong)** — 粘贴-回车自动提交问题的精确复现 (#1073)
|
||||
- **[Duducoco](https://github.com/Duducoco)** 和 **[AlphaGogoo](https://github.com/AlphaGogoo)** — 技能斜杠菜单和 `/skills` 覆盖范围修复 (#1068, #1083)
|
||||
- **[ArronAI007](https://github.com/ArronAI007)** — macOS Terminal.app 和 ConHost 窗口大小调整残留修复 (#993)
|
||||
- **[THINKER-ONLY](https://github.com/THINKER-ONLY)** — OpenRouter 和自定义端点模型 ID 保留 (#1066)
|
||||
- **[Jefsky](https://github.com/Jefsky)** — `deepseek-cn` 官方端点默认值 (#1079, #1084)
|
||||
- **[wlon](https://github.com/wlon)** — NVIDIA NIM provider API key 优先级诊断 (#1081)
|
||||
- **[donglovejava](https://github.com/donglovejava)** — paste @file 整合、CJK panic 修复、用户反馈、RLM 路由、edit_file 重试 (#2154–#2168)
|
||||
- **[encyc](https://github.com/encyc)** — session token 分解显示和 `/status` (#2152)
|
||||
- **[saieswar237](https://github.com/saieswar237)** — 审查流程文档 (#2178)
|
||||
- **[sximelon](https://github.com/sximelon)** — paste Enter 抑制、键盘处理提取 (#2174, #2042)
|
||||
- **[nanookclaw](https://github.com/nanookclaw)** — search provider 显示在 doctor (#2135)
|
||||
- **[Sskift](https://github.com/Sskift)** — CLI 默认环境变量覆盖防止 (#2119)
|
||||
- **[xin1104](https://github.com/xin1104)** — Homebrew codewhale 二进制安装 (#2105)
|
||||
- **[mrluanma](https://github.com/mrluanma)** — Metaso 搜索提供商 (#2059)
|
||||
- **[Lellansin](https://github.com/Lellansin)** — 主目录下跳过配置合并 (#2055)
|
||||
- **[zhuangbiaowei](https://github.com/zhuangbiaowei)** — 更新发布渠道 (#2145)
|
||||
|
||||
---
|
||||
- **[DeepSeek](https://github.com/deepseek-ai)** —— 让这个项目得以起步的模型与支持。感谢 DeepSeek 提供模型与支持。
|
||||
- **[DataWhale](https://github.com/datawhalechina)** 🐋 —— 感谢支持,也感谢把我们迎进"鲸兄弟"大家庭。
|
||||
- **[OpenWarp](https://github.com/zerx-lab/warp)** 与
|
||||
**[Open Design](https://github.com/nexu-io/open-design)** —— 感谢一同打造更好的终端智能体体验。
|
||||
- **每一位贡献者** —— 完整的逐 PR 记录见
|
||||
[docs/CONTRIBUTORS.md](docs/CONTRIBUTORS.md)。谢谢你们。
|
||||
|
||||
## 贡献
|
||||
|
||||
欢迎提交 pull request——请先查看 [CONTRIBUTING.md](CONTRIBUTING.md) 并留意[开放 issue](https://github.com/Hmbown/CodeWhale/issues) 中的好入门任务。
|
||||
|
||||
*本项目与 DeepSeek Inc. 无隶属关系。*
|
||||
见 [CONTRIBUTING.md](CONTRIBUTING.md)。欢迎 pull request——可以从
|
||||
[开放的 issue](https://github.com/Hmbown/CodeWhale/issues) 里挑适合的上手。
|
||||
|
||||
## 许可证
|
||||
|
||||
[MIT](LICENSE)
|
||||
|
||||
> *CodeWhale 是一个独立的社区项目,与任何模型提供商均无附属关系。*
|
||||
|
||||
## Star 历史
|
||||
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
|
||||
|
||||
+42
-21
@@ -1,31 +1,35 @@
|
||||
# Contributors
|
||||
|
||||
CodeWhale is built in the open with a growing community of contributors. Every issue report and pull request is real project work — welcome at any experience level. This page is the full per-PR contributor record, relocated from the README so the README stays readable.
|
||||
CodeWhale is built in the open with a growing community of contributors. Every
|
||||
issue report and pull request is real project work — welcome at any experience
|
||||
level. This is the full per-PR contributor record in **chronological order**
|
||||
(newest first), collapsed into time bands so it stays scannable. Expand any band
|
||||
to see everyone.
|
||||
|
||||
For the live list, see the [GitHub contributors page](https://github.com/Hmbown/CodeWhale/graphs/contributors), [`AUTHOR_MAP`](https://github.com/Hmbown/CodeWhale/blob/main/.github/AUTHOR_MAP), and [CHANGELOG.md](../CHANGELOG.md).
|
||||
For the live list, see the
|
||||
[GitHub contributors page](https://github.com/Hmbown/CodeWhale/graphs/contributors),
|
||||
[`AUTHOR_MAP`](https://github.com/Hmbown/CodeWhale/blob/main/.github/AUTHOR_MAP),
|
||||
and [CHANGELOG.md](../CHANGELOG.md).
|
||||
|
||||
## Thanks
|
||||
## Organizational thanks
|
||||
|
||||
- **[DeepSeek](https://github.com/deepseek-ai)** — thank you for the models and support that power every turn. 感谢 DeepSeek 提供模型与支持,让每一次交互成为可能。
|
||||
- **[DataWhale](https://github.com/datawhalechina)** 🐋 — thank you for your support and for welcoming us into the Whale Brother family. 感谢 DataWhale 的支持,并欢迎我们加入“鲸兄弟”大家庭。
|
||||
- **[OpenWarp](https://github.com/zerx-lab/warp)** — thank you for prioritizing codewhale support and for collaborating on a better terminal-agent experience.
|
||||
- **[Open Design](https://github.com/nexu-io/open-design)** — thank you for support and collaboration around design-forward agent workflows.
|
||||
- **[DeepSeek](https://github.com/deepseek-ai)** — the models and support that got this project started. 感谢 DeepSeek 提供模型与支持。
|
||||
- **[DataWhale](https://github.com/datawhalechina)** 🐋 — for the support and for welcoming us into the Whale Brother family. 感谢 DataWhale 的支持。
|
||||
- **[OpenWarp](https://github.com/zerx-lab/warp)** — for prioritizing codewhale support and collaborating on a better terminal-agent experience.
|
||||
- **[Open Design](https://github.com/nexu-io/open-design)** — for support and collaboration around design-forward agent workflows.
|
||||
|
||||
This project ships with help from a growing community of contributors. The
|
||||
maintainer rule is simple: reports and PRs are real project work, even when the
|
||||
final patch has to be narrowed, delayed, or harvested into a maintainer branch.
|
||||
The maintainer rule: reports and PRs are real project work, even when the final
|
||||
patch has to be narrowed, delayed, or harvested into a maintainer branch.
|
||||
Harvested PRs keep visible credit in the commit/PR body, changelog or release
|
||||
notes, and relevant issue/PR comments.
|
||||
|
||||
For forward-track work, harvested PRs should keep visible credit in the commit
|
||||
or PR body, changelog or release notes, and relevant issue/PR comments.
|
||||
Contributor credit should use mappable GitHub identities from
|
||||
`.github/AUTHOR_MAP` or numeric noreply addresses, not placeholder local emails.
|
||||
The contribution gate is kept in dry-run mode unless a maintainer deliberately
|
||||
enables enforcement; when it comments, the tone should be warm and practical
|
||||
rather than treating the reporter as the problem. Recurring contributors should
|
||||
be recognized so the automation gets out of their way and the public record
|
||||
shows their repeated help.
|
||||
---
|
||||
|
||||
## Contributors by time
|
||||
|
||||
<details>
|
||||
<summary><strong>Forward track — recent v0.9 work (newest)</strong></summary>
|
||||
|
||||
Current forward-track credits:
|
||||
|
||||
- **[xyuai](https://github.com/xyuai)** — canonical CodeWhale settings path,
|
||||
provider persistence, provider picker, logout-scope, and MiMo auth cleanup
|
||||
@@ -88,7 +92,12 @@ Current forward-track credits:
|
||||
OpenAI-compatible path-suffix report and follow-up review trail (#1874,
|
||||
#2508, #2506)
|
||||
|
||||
Current and recurring contributors include:
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>Recurring & historical contributors</strong></summary>
|
||||
|
||||
|
||||
- **[merchloubna70-dot](https://github.com/merchloubna70-dot)** — 28 PRs spanning features, fixes, and VS Code extension scaffolding (#645–#681)
|
||||
- **[WyxBUPT-22](https://github.com/WyxBUPT-22)** — Markdown rendering for tables, bold/italic, and horizontal rules (#579)
|
||||
@@ -187,6 +196,12 @@ Current and recurring contributors include:
|
||||
- **[xyuai](https://github.com/xyuai)** — provider persistence to config, /logout scope clarification, provider picker key replacement shortcut, MiMo auth state cleanup (#2714, #2715, #2717, #2718)
|
||||
- **[RefuseOdd](https://github.com/RefuseOdd)** — configurable `path_suffix` for OpenAI-compatible endpoints (#2558)
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>v0.8.48 — reports, repros & verification (earliest listed)</strong></summary>
|
||||
|
||||
Reports, repros, and verification that shaped v0.8.48 also deserve visible
|
||||
credit: **[@buko](https://github.com/buko)**, **[@yyyCode](https://github.com/yyyCode)**,
|
||||
**[@gaslebinh-glitch](https://github.com/gaslebinh-glitch)**, **[@Dr3259](https://github.com/Dr3259)**,
|
||||
@@ -199,3 +214,9 @@ credit: **[@buko](https://github.com/buko)**, **[@yyyCode](https://github.com/yy
|
||||
**[@PurplePulse](https://github.com/PurplePulse)**, and **[@nbiish](https://github.com/nbiish)**.
|
||||
|
||||
---
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
Missed someone? Open an issue or PR — credit is kept current, and names are happily added. See [CONTRIBUTING.md](../CONTRIBUTING.md) to get started.
|
||||
|
||||
+32
-10
@@ -5,6 +5,7 @@ import { getFacts } from "@/lib/facts";
|
||||
import { Ticker } from "@/components/ticker";
|
||||
import { StatGrid } from "@/components/stat-grid";
|
||||
import { Seal } from "@/components/seal";
|
||||
import { ThinkingTrace } from "@/components/thinking-trace";
|
||||
import { MermaidDiagram } from "@/components/mermaid-diagram";
|
||||
import type { CuratedDispatch, FeedItem, RepoStats } from "@/lib/types";
|
||||
|
||||
@@ -142,33 +143,33 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
|
||||
<div className="mx-auto max-w-[1400px] px-4 sm:px-6 pt-10 sm:pt-14 pb-12 grid lg:grid-cols-12 gap-10">
|
||||
<div className="lg:col-span-7">
|
||||
<div className="mb-6">
|
||||
<span className="pill pill-hot">DeepSeek V4 · 1M context</span>
|
||||
<span className="pill pill-hot">{isZh ? "开源 · 多模型 · 本地优先" : "Open source · multi-model · local-first"}</span>
|
||||
</div>
|
||||
|
||||
<h1 className="font-display tracking-crisp">
|
||||
{isZh
|
||||
? "先有自我,再有法律,永远留下证据。"
|
||||
: "Ego first. Law next. Evidence always."}
|
||||
? "面向最佳可用模型的终端智能体。"
|
||||
: "An agentic terminal for the best available models."}
|
||||
</h1>
|
||||
|
||||
<p className="mt-6 text-lg text-ink-soft leading-relaxed max-w-2xl">
|
||||
<span className="font-cjk text-indigo font-semibold">CodeWhale</span>
|
||||
{isZh
|
||||
? " 是 DeepSeek V4 和开放模型的本地运行层。它给 Agent 一个可追责的自我、一套处理冲突的 law,以及把工具、审批、回滚、子 Agent 和交接都留在明面上的证据循环。"
|
||||
: " is a local operating layer for DeepSeek V4 and open-model coding work. It gives an agent an accountable self, a conflict law for the workspace, and an evidence loop where tools, approvals, rollback, sub-agents, and handoffs stay visible."}
|
||||
? " 是社区共建的终端智能体,本地运行,支持你真正在用的模型——GLM、DeepSeek、Kimi、MiniMax、OpenRouter 等等。完整的工具面、审批闸门、快照回滚、子智能体与可恢复会话,都在你的终端里。"
|
||||
: " is a community-built terminal agent that runs locally and works with the models you actually use — GLM, DeepSeek, Kimi, MiniMax, OpenRouter, and more. A full tool surface, approval gates, snapshots you can roll back, sub-agents, and sessions you can resume."}
|
||||
</p>
|
||||
|
||||
{/* MISSION CALLOUT */}
|
||||
{/* COMMUNITY CALLOUT */}
|
||||
<div className="mt-6 px-4 py-3 bg-indigo-pale border-l-4 border-indigo text-sm leading-relaxed max-w-2xl">
|
||||
{isZh ? (
|
||||
<>
|
||||
<span className="font-display text-indigo font-semibold mr-1">设计骨架</span>
|
||||
ego 是责任落点:这个用户、这个仓库、这个会话。constitution 是冲突法:当上下文吵起来时,谁赢。
|
||||
<span className="font-display text-indigo font-semibold mr-1">社区共建</span>
|
||||
在公开环境中打造,目标是把最好的智能体工具带给最多的人。无论你经验如何,议题和 PR 都欢迎。
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<span className="font-display text-indigo font-semibold mr-1">Design thesis</span>
|
||||
Ego is where responsibility attaches: this user, this repo, this session. Constitution is conflict law for a noisy workspace.
|
||||
<span className="font-display text-indigo font-semibold mr-1">Built in the open</span>
|
||||
Community-shaped to bring the best agent harness to the most people. Issues and pull requests are welcome at any experience level.
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
@@ -240,6 +241,27 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
|
||||
|
||||
<StatGrid stats={stats} />
|
||||
|
||||
{/* SEE HOW IT DECIDES — real reasoning traces prove the constitution operates */}
|
||||
<section className="mx-auto max-w-[1400px] px-6 py-16">
|
||||
<div className="flex items-baseline gap-4 mb-3 hairline-b pb-4">
|
||||
<Seal char="判" />
|
||||
<h2 className="font-display">
|
||||
{isZh ? "看它如何决策" : "See how it decides"}
|
||||
</h2>
|
||||
</div>
|
||||
<p className={`mb-8 text-ink-soft max-w-2xl ${isZh ? "leading-[1.9] tracking-wide" : "text-sm leading-relaxed"}`}>
|
||||
{isZh
|
||||
? "别的 Agent 声称自己「对齐」「可信」。CodeWhale 能证明——因为宪法会在模型的推理中现身:它决策时会援引「第 II 条」「第 V 条」。下面是真实会话中的推理摘录,以及它们所促成的决定。"
|
||||
: "Every agent claims to be aligned and trustworthy. CodeWhale can prove it — the Constitution shows up in the model's reasoning, citing \"Article II\" and \"Article V\" as it decides. These are real traces from an actual session, paired with the decision each produced."}
|
||||
</p>
|
||||
<ThinkingTrace locale={locale} />
|
||||
<div className="mt-6 text-[0.72rem] font-mono uppercase tracking-wider text-ink-mute">
|
||||
{isZh
|
||||
? "这些是真实推理的忠实摘录,非杜撰。宪法不是墙上的口号,而是模型决策时真正遵循的顺序。"
|
||||
: "Faithful excerpts from real reasoning — not invented. The constitution isn't a poster on the wall; it's the order the model actually follows when it decides."}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* WHAT IT IS — the core ideas behind the harness */}
|
||||
<section className="mx-auto max-w-[1400px] px-6 py-16">
|
||||
<div className="flex items-baseline gap-4 mb-2 hairline-b pb-4">
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
/**
|
||||
* "See how it decides" — a terminal-styled pane that surfaces REAL reasoning
|
||||
* traces from a CodeWhale session, paired with the decision each produced.
|
||||
*
|
||||
* The point is "show, don't tell": every agent claims to be aligned/trustworthy;
|
||||
* CodeWhale can prove it, because the Constitution is observable in the model's
|
||||
* reasoning (it cites "Article II", "Article V", etc. as it decides). No other
|
||||
* agent can show this because none have a hierarchy the model reasons against.
|
||||
*
|
||||
* The traces below are faithful excerpts from an actual session — not invented
|
||||
* marketing copy. Keep them honest if you edit them (see AGENTS.md Article II).
|
||||
*/
|
||||
|
||||
type Scene = {
|
||||
context: { en: string; zh: string };
|
||||
trace: string;
|
||||
cites: string[];
|
||||
decision: { en: string; zh: string };
|
||||
};
|
||||
|
||||
const SCENES: Scene[] = [
|
||||
{
|
||||
context: {
|
||||
en: "When the prior session's summary didn't match the real repo state…",
|
||||
zh: "当上一会话的总结与仓库真实状态不符时……",
|
||||
},
|
||||
trace:
|
||||
"Let me be careful and truthful here. Per Article II (truth) and V (verification), I need to report what's actually in the tree — not what the previous agent claimed.",
|
||||
cites: ["Article II · Truth", "Article V · Verification"],
|
||||
decision: {
|
||||
en: "Reported the uncommitted work the summary left out, instead of repeating the claim.",
|
||||
zh: "如实报告了总结遗漏的未提交改动,而不是照搬旧说法。",
|
||||
},
|
||||
},
|
||||
{
|
||||
context: {
|
||||
en: "When a “pause” signal conflicted with the user's explicit request to keep going…",
|
||||
zh: "当「暂停」信号与用户明确要求继续相冲突时……",
|
||||
},
|
||||
trace:
|
||||
"The user's current request outranks the runtime statute — so I keep executing the task, not stopping on a technicality.",
|
||||
cites: ["Article III · User agency", "Article VII · Hierarchy"],
|
||||
decision: {
|
||||
en: "Finished the work the user actually asked for.",
|
||||
zh: "完成了用户真正要求的工作。",
|
||||
},
|
||||
},
|
||||
{
|
||||
context: {
|
||||
en: "When trimming the README, tempted to drop the contributor wall…",
|
||||
zh: "精简 README 时,本可以顺手删掉贡献者名单……",
|
||||
},
|
||||
trace:
|
||||
"Deleting community credit would break the project's own ethos. Relocate it instead — zero names lost.",
|
||||
cites: ["Community ethos"],
|
||||
decision: {
|
||||
en: "Moved 200 lines of credits to docs/CONTRIBUTORS.md and linked from the README.",
|
||||
zh: "把 200 行贡献记录迁到 docs/CONTRIBUTORS.md,并在 README 中给出链接。",
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
export function ThinkingTrace({ locale = "en" }: { locale?: string }) {
|
||||
const isZh = locale === "zh";
|
||||
return (
|
||||
<div className="grid gap-6 md:grid-cols-3">
|
||||
{SCENES.map((s, i) => (
|
||||
<div
|
||||
key={i}
|
||||
className="hairline-t hairline-b hairline-l hairline-r bg-paper flex flex-col overflow-hidden"
|
||||
>
|
||||
{/* terminal title bar */}
|
||||
<div className="bg-ink text-paper px-4 py-2.5 flex items-center justify-between">
|
||||
<div className="flex items-center gap-1.5">
|
||||
<span className="w-2.5 h-2.5 rounded-full bg-jade inline-block" />
|
||||
<span className="w-2.5 h-2.5 rounded-full bg-ochre inline-block" />
|
||||
<span className="w-2.5 h-2.5 rounded-full bg-indigo inline-block" />
|
||||
<span className="ml-2.5 font-mono text-[0.66rem] uppercase tracking-widest text-paper-deep">
|
||||
codewhale — thinking
|
||||
</span>
|
||||
</div>
|
||||
<span className="font-cjk text-[0.6rem] text-paper-deep/70">
|
||||
{isZh ? "推理痕迹" : "reasoning trace"}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{/* context */}
|
||||
<div className="px-4 pt-4 text-[0.66rem] font-mono uppercase tracking-wider text-ink-mute">
|
||||
{isZh ? s.context.zh : s.context.en}
|
||||
</div>
|
||||
|
||||
{/* the trace */}
|
||||
<pre className="px-4 py-3 font-mono text-[0.82rem] text-ink leading-relaxed whitespace-pre-wrap flex-1">
|
||||
<span className="text-indigo">›</span>{" "}
|
||||
<span className="text-ink-soft">{s.trace}</span>
|
||||
</pre>
|
||||
|
||||
{/* cited authority */}
|
||||
<div className="px-4 pb-3 flex flex-wrap gap-1.5">
|
||||
{s.cites.map((c) => (
|
||||
<span key={c} className="pill text-[0.58rem] tracking-wider">
|
||||
{c}
|
||||
</span>
|
||||
))}
|
||||
</div>
|
||||
|
||||
{/* the decision it produced */}
|
||||
<div className="bg-indigo-pale px-4 py-3 hairline-t text-[0.8rem] leading-relaxed text-ink-soft">
|
||||
<span className="font-display text-indigo font-semibold mr-1">→</span>
|
||||
{isZh ? s.decision.zh : s.decision.en}
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user