From 3dfc7fb71655373640cc9b8d910bff30947aafe1 Mon Sep 17 00:00:00 2001 From: Hunter Bown Date: Sun, 24 May 2026 03:12:24 -0500 Subject: [PATCH] docs(readme): refresh contributor count and acknowledgements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MIN_KNOWN_CONTRIBUTORS: 91 → 98 (live GitHub count) - page.tsx fallback: 91 → 98 - README Thanks section: add 30+ previously unlisted contributors whose PRs were merged since April 2026 - Sync contributor list across all three translations (en, zh-CN, ja-JP) --- README.ja-JP.md | 64 +++++++++- README.md | 48 ++++++- README.zh-CN.md | 54 ++++++++ web/app/[locale]/page.tsx | 257 ++++++++++++++++++++++++++------------ web/lib/github.ts | 6 +- 5 files changed, 341 insertions(+), 88 deletions(-) diff --git a/README.ja-JP.md b/README.ja-JP.md index 9af0d14f..62a9b31d 100644 --- a/README.ja-JP.md +++ b/README.ja-JP.md @@ -5,6 +5,8 @@ [English README](README.md) [简体中文 README](README.zh-CN.md) +[インストール](#インストール) · [クイックスタート](#クイックスタート) · [ドキュメント](#ドキュメント) · [コントリビューション](#コントリビューション) · [サポート](#サポート) + ## インストール `codewhale` は自己完結型の Rust バイナリとして提供されており、**実行に Node.js や Python のランタイムは必要ありません。** すでにマシンにインストールされているものを選んでください。いずれの方法でも同じバイナリが `PATH` に配置されます。 @@ -52,10 +54,9 @@ cargo install codewhale-tui --locked --force [![CI](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/codewhale)](https://www.npmjs.com/package/codewhale) [![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli) +[![Sponsor](https://img.shields.io/badge/Sponsor-GitHub%20Sponsors-ea4aaa?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/Hmbown) [![DeepWiki](https://img.shields.io/badge/DeepWiki-Ask_AI-_.svg?style=flat&color=0052D9&labelColor=000000&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/Hmbown/CodeWhale) -Buy me a coffee - ![codewhale スクリーンショット](assets/screenshot.png) --- @@ -395,6 +396,18 @@ description: DeepSeek にカスタムワークフローを実行させたいと --- +## サポート + +CodeWhale は MIT ライセンスで、利用やコントリビューションにスポンサーは必要ありません。 +継続的なメンテナンスを支援する最も分かりやすい方法は +[GitHub Sponsors](https://github.com/sponsors/Hmbown) です。単発の支援は +[Buy Me a Coffee](https://www.buymeacoffee.com/hmbown) からも行えます。 + +スポンサーは、リリースビルド、CI/ランタイムテスト、パッケージ公開、issue 対応とレビューに使うメンテナー時間を支えます。 +機能リクエスト、バグ報告、pull request にスポンサーは必要ありません。 + +--- + ## 謝辞 このプロジェクトは、増え続けるコントリビューターのコミュニティから助けを得て出荷されています: @@ -417,6 +430,53 @@ description: DeepSeek にカスタムワークフローを実行させたいと - **Hafeez Pizofreude** — `fetch_url` の SSRF 保護と Star History チャート - **Unic (YuniqueUnic)** — スキーマ駆動の設定 UI(TUI + Web) - **Jason** — SSRF セキュリティの強化 +- **[dfwqdyl-ui](https://github.com/dfwqdyl-ui)** — モデル ID の大文字小文字互換性レポート (#729) +- **[Oliver-ZPLiu](https://github.com/Oliver-ZPLiu)** — `working...` 状態のバグレポート、Windows クリップボードフォールバック、MCP Streamable HTTP セッション修正、Homebrew tap 自動化 (#738, #850, #1643, #1631) +- **[reidliu41](https://github.com/reidliu41)** — 再開ヒント、ワークスペース信頼の永続化、Ollama プロバイダー対応、thinking-block ストリームの最終処理、CI キャッシュ強化、ストリーミングラップ、DeepSeek モデル補完、ヘルプ選択の改善 (#863, #870, #921, #1078, #1603, #1628, #1601, #1964) +- **[cyq1017](https://github.com/cyq1017)** — Unicode `git_status` パス、ローカル/設定スキル検出、モード切替トーストの重複防止 (#1953, #1956, #1957) +- **[xieshutao](https://github.com/xieshutao)** — プレーン Markdown スキルのフォールバック (#869) +- **[GK012](https://github.com/GK012)** — npm ラッパー `--version` フォールバック (#885) +- **[y0sif](https://github.com/y0sif)** — 直接子サブエージェント完了後の親ターンループ復帰 (#901) +- **[mac119](https://github.com/mac119)** と **[leo119](https://github.com/leo119)** — `codewhale update` コマンドのドキュメント (#838, #917) +- **[dumbjack](https://github.com/dumbjack)** — コマンド安全性の null バイト強化 (#706, #918) +- **macworkers** — フォーク確認と新しいセッション ID (#600, #919) +- **zero** と **[zerx-lab](https://github.com/zerx-lab)** — 通知条件設定と OSC 9 通知本文の拡充 (#820, #920) +- **[chnjames](https://github.com/chnjames)** — @mention 補完キャッシュ、設定リカバリ改善、Windows UTF-8 シェル出力 (#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)** — カスタムセッションタイトルの `/rename` コマンド (#836) +- **[banqii](https://github.com/banqii)** — `.cursor/skills` 検出パス対応 (#817) +- **[junskyeed](https://github.com/junskyeed)** — API リクエストの動的 `max_tokens` 計算 (#826) +- **[axobase001](https://github.com/axobase001)** — スナップショット孤児クリーンアップ、npm インストールガード、セッションテレメトリ修正、モデルスコープキャッシュクリア、シンボリックリンクスキル対応、npm ミラー迂回ガイダンス、子タスクのプロキシ保持 (#975, #1032, #1047, #1049, #1052, #1019, #1051, #1056, #1608) +- **[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)** — ペースト Enter 自動送信の正確な再現 (#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 エンドポイント修正レポート (#1079, #1084) +- **[wlon](https://github.com/wlon)** — NVIDIA NIM プロバイダー API キー優先度診断 (#1081) +- **[Horace Liu](https://github.com/liuhq)** — Nix パッケージ対応とインストールドキュメント (#1173) +- **[jieshu666](https://github.com/jieshu666)** — ターミナル再描画のちらつき軽減 (#1563) +- **[gordonlu](https://github.com/gordonlu)** — Windows Enter / CSI-u 入力修正 (#1612) +- **[mdrkrg](https://github.com/mdrkrg)** — 初回起動時の API キー欠落クラッシュ修正 (#1598) +- **[Aitensa](https://github.com/Aitensa)** — diff とページャー出力の CJK 折り返し対応 (#1622) +- **[qiyan233](https://github.com/qiyan233)** — レガシー DeepSeek CN プロバイダーエイリアス互換性 (#1645) +- **[zlh124](https://github.com/zlh124)** — WSL2/ヘッドレス起動レポートとクリップボード初期化修正 (#1772, #1773) +- **[aboimpinto](https://github.com/aboimpinto)** — Windows alt-screen ログ、Home/End コンポーザー、ランタイムログフォローアップ (#1774, #1776, #1748, #1749, #1782, #1783) +- **[LeoLin990405](https://github.com/LeoLin990405)** — プロバイダーモデル透過、推論リプレイ、thinking-only ターン、Windows 引用修正 (#1740, #1743, #1742, #1744) +- **[nightt5879](https://github.com/nightt5879)** — Ctrl+C プロンプト復元修正 (#1764) +- **[h3c-hexin](https://github.com/h3c-hexin)** — ストリーミングバッチツール呼び出し保存と CLI reasoning-effort 透過 (#1686, #1511) +- **[hxy91819](https://github.com/hxy91819)** — ツール結果整理時のプレフィックスキャッシュ保持 (#1514) +- **[JiarenWang](https://github.com/JiarenWang)** — Plan モード読み取り専用強制、承認引継ぎ最適化、Ctrl+H 削除修正、undo コンテキスト同期 (#1123, #962, #958, #1150) +- **[Liu-Vince](https://github.com/Liu-Vince)** — MCP ページネーション、マークダウンインデント保持、zh-Hans i18n 改善、環境変数ドキュメント (#1256, #1179, #1274, #1178) +- **[ChaceLyee2101](https://github.com/ChaceLyee2101)** — 推論トークンコスト集計と zh-Hans 自動 CNY 表示 (#1505, #1504) +- **[laoye2020](https://github.com/laoye2020)** — Catppuccin、Tokyo Night、Dracula、Gruvbox テーマと `/theme` ピッカー (#1534) +- **[punkcanyang](https://github.com/punkcanyang)** — Kitty (OSC 99) と Ghostty (OSC 777) デスクトップ通知対応 (#1426) +- **[Rene-Kuhm](https://github.com/Rene-Kuhm)** — スペイン語 (es-419) ラテンアメリカローカライズ (#1452) +- **[ComeFromTheMars](https://github.com/ComeFromTheMars)** — Shift+Up/Down トランスクリプトスクロールショートカット (#1432) +- **[sockerch](https://github.com/sockerch)** — 全スラッシュコマンドの拼音エイリアス (#1306) +- **[eltociear](https://github.com/eltociear)** — 日本語 README 翻訳 (#746) --- diff --git a/README.md b/README.md index 0faff8e9..3140cf0f 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ [简体中文 README](README.zh-CN.md) [日本語 README](README.ja-JP.md) +[Install](#install) · [Quickstart](#quickstart) · [Usage](#usage) · [Documentation](#documentation) · [Contributing](#contributing) · [Support](#support) + ## Install `codewhale` is distributed as Rust binaries: the dispatcher command @@ -64,6 +66,7 @@ cargo install codewhale-tui --locked --force [![CI](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/codewhale)](https://www.npmjs.com/package/codewhale) [![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli) +[![Sponsor](https://img.shields.io/badge/Sponsor-GitHub%20Sponsors-ea4aaa?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/Hmbown) [DeepWiki project index](https://deepwiki.com/Hmbown/CodeWhale) ![codewhale screenshot](assets/screenshot.png) @@ -535,6 +538,19 @@ Full Changelog: [CHANGELOG.md](CHANGELOG.md). --- +## Support + +CodeWhale is MIT-licensed and usable without sponsorship. If it saves you time, +the clearest way to support ongoing maintenance is +[GitHub Sponsors](https://github.com/sponsors/Hmbown). One-time support is also +available through [Buy Me a Coffee](https://www.buymeacoffee.com/hmbown). + +Sponsorship helps cover release builds, CI/runtime testing, package publishing, +and maintainer time for issue triage and review. Feature requests, bug reports, +and pull requests do not require sponsorship. + +--- + ## Thanks - **[DeepSeek](https://github.com/deepseek-ai)** — thank you for the models and support that power every turn. 感谢 DeepSeek 提供模型与支持,让每一次交互成为可能。 @@ -598,6 +614,36 @@ This project ships with help from a growing community of contributors: - **[aboimpinto](https://github.com/aboimpinto)** — Windows alt-screen logging, Home/End composer, and runtime log follow-ups (#1774, #1776, #1748, #1749, #1782, #1783) - **[LeoLin990405](https://github.com/LeoLin990405)** — provider model passthrough, reasoning replay, thinking-only turn, and Windows quoting fixes (#1740, #1743, #1742, #1744) - **[nightt5879](https://github.com/nightt5879)** — Ctrl+C prompt restore fix (#1764) +- **[h3c-hexin](https://github.com/h3c-hexin)** — streaming batch tool-call preservation and CLI reasoning-effort passthrough (#1686, #1511) +- **[hxy91819](https://github.com/hxy91819)** — prefix-cache preservation during tool-result pruning (#1514) +- **[JiarenWang](https://github.com/JiarenWang)** — Plan-mode read-only enforcement, approval-takeover clamping, Ctrl+H delete fix, and undo context sync (#1123, #962, #958, #1150) +- **[Liu-Vince](https://github.com/Liu-Vince)** — MCP pagination, markdown indentation preservation, zh-Hans i18n polish, and env-var documentation (#1256, #1179, #1274, #1178) +- **[linzhiqin2003](https://github.com/linzhiqin2003)** — `--model auto` cost-saving bias, execution-discipline prompts, and declarative-fact memory hygiene (#1385, #1384, #1381) +- **[lbcheng888](https://github.com/lbcheng888)** — cost persistence across save/restore and transcript scroll fix (#1192, #1211) +- **[pengyou200902](https://github.com/pengyou200902)** — UTF-8-safe memory truncation, truncation-marker precision, and keybinding docs (#968, #1122, #1095) +- **[ChaceLyee2101](https://github.com/ChaceLyee2101)** — reasoning-token cost tracking with auto-CNY on zh-Hans and zh-CN README sync (#1505, #1504) +- **[CrepuscularIRIS](https://github.com/CrepuscularIRIS)** — low-motion mode for Termius/SSH and npx MCP server sandbox fix (#1479, #1346) +- **[laoye2020](https://github.com/laoye2020)** — Catppuccin, Tokyo Night, Dracula, and Gruvbox themes with `/theme` picker (#1534) +- **[punkcanyang](https://github.com/punkcanyang)** — Kitty (OSC 99) and Ghostty (OSC 777) desktop notification support (#1426) +- **[Rene-Kuhm](https://github.com/Rene-Kuhm)** — Spanish (es-419) Latin American localization (#1452) +- **[sternelee](https://github.com/sternelee)** — DeepSeek prefix-cache stability tracking (#1517) +- **[ComeFromTheMars](https://github.com/ComeFromTheMars)** — Shift+Up/Down transcript scroll shortcuts (#1432) +- **[sockerch](https://github.com/sockerch)** — pinyin aliases for all slash commands (#1306) +- **[Apeiron0w0](https://github.com/Apeiron0w0)** — FocusGained debounce for Tabby terminal flicker loop (#1560) +- **[greyfreedom](https://github.com/greyfreedom)** — jump-to-latest-transcript button (#969) +- **[SamhandsomeLee](https://github.com/SamhandsomeLee)** — explicit hidden-file mention completion (#1270) +- **[dst1213](https://github.com/dst1213)** — quota-error HTTP 400 retry (#1203) +- **[fuleinist](https://github.com/fuleinist)** — `--yolo` flag forwarding from CLI to TUI (#1233) +- **[heloanc](https://github.com/heloanc)** — Home/End key composer support (#1246) +- **[jinpengxuan](https://github.com/jinpengxuan)** — active provider credential preservation during onboarding (#1265) +- **[lixiasky-back](https://github.com/lixiasky-back)** — verified npm binary adoption (#1339) +- **[J3y0r](https://github.com/J3y0r)** — workspace-switch command (#1065) +- **[KhalidAlnujaidi](https://github.com/KhalidAlnujaidi)** — delegate skill bundling (#1144) +- **[Wenjunyun123](https://github.com/Wenjunyun123)** — docs anchor-offset preservation (#1282) +- **[whtis](https://github.com/whtis)** — zh-CN README dispatcher-path sync (#1235) +- **[aqilaziz](https://github.com/aqilaziz)** — memory skill-link fix (#1095) +- **[wuwuzhijing](https://github.com/wuwuzhijing)** — rsproxy rustup workaround install docs (#1011) +- **[eltociear](https://github.com/eltociear)** — Japanese README translation (#746) --- @@ -605,8 +651,6 @@ This project ships with help from a growing community of contributors: See [CONTRIBUTING.md](CONTRIBUTING.md). Pull requests welcome — check the [open issues](https://github.com/Hmbown/CodeWhale/issues) for good first contributions. -Support: [Buy me a coffee](https://www.buymeacoffee.com/hmbown). - > [!Note] > *Not affiliated with DeepSeek Inc.* diff --git a/README.zh-CN.md b/README.zh-CN.md index 99777469..75ea7837 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -5,6 +5,8 @@ [English README](README.md) [日本語 README](README.ja-JP.md) +[安装](#安装) · [快速开始](#快速开始) · [使用方式](#使用方式) · [文档](#文档) · [贡献](#贡献) · [支持](#支持) + ## 安装 `codewhale` 是自包含 Rust 二进制——**运行时不依赖 Node.js 或 Python**。 @@ -59,6 +61,7 @@ cargo install codewhale-tui --locked --force [![CI](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/codewhale)](https://www.npmjs.com/package/codewhale) [![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli) +[![Sponsor](https://img.shields.io/badge/Sponsor-GitHub%20Sponsors-ea4aaa?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/Hmbown) [DeepWiki project index](https://deepwiki.com/Hmbown/CodeWhale) ![codewhale 截图](assets/screenshot.png) @@ -505,6 +508,17 @@ description: 当 DeepSeek 需要遵循我的自定义工作流时使用这个技 --- +## 支持 + +CodeWhale 采用 MIT 许可证,使用和参与贡献都不需要赞助。如果它帮你节省了时间, +最直接的长期支持方式是 [GitHub Sponsors](https://github.com/sponsors/Hmbown)。 +一次性支持也可以通过 [Buy Me a Coffee](https://www.buymeacoffee.com/hmbown) 完成。 + +赞助会用于发布构建、CI/运行时测试、包发布,以及维护者处理 issue 和 review 的时间。 +功能请求、Bug 报告和 pull request 不需要赞助。 + +--- + ## 致谢 - **[DeepSeek](https://github.com/deepseek-ai)** — 感谢 DeepSeek 提供模型与支持,让每一次交互成为可能。 @@ -558,6 +572,46 @@ description: 当 DeepSeek 需要遵循我的自定义工作流时使用这个技 - **[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) +- **[Horace Liu](https://github.com/liuhq)** — Nix 包支持和安装文档 (#1173) +- **[jieshu666](https://github.com/jieshu666)** — 终端重绘闪烁修复 (#1563) +- **[gordonlu](https://github.com/gordonlu)** — Windows Enter / CSI-u 输入修复 (#1612) +- **[mdrkrg](https://github.com/mdrkrg)** — 首次运行 API key 缺失时的启动崩溃修复 (#1598) +- **[Aitensa](https://github.com/Aitensa)** — diff 和 pager 输出的 CJK 换行支持 (#1622) +- **[qiyan233](https://github.com/qiyan233)** — 遗留 DeepSeek CN provider 别名兼容 (#1645) +- **[zlh124](https://github.com/zlh124)** — WSL2/headless 启动报告和剪贴板初始化修复 (#1772, #1773) +- **[aboimpinto](https://github.com/aboimpinto)** — Windows alt-screen 日志、Home/End 编辑器,以及运行时日志跟进 (#1774, #1776, #1748, #1749, #1782, #1783) +- **[LeoLin990405](https://github.com/LeoLin990405)** — provider 模型透传、reasoning 重放、thinking-only turn 和 Windows 引用修复 (#1740, #1743, #1742, #1744) +- **[nightt5879](https://github.com/nightt5879)** — Ctrl+C 提示恢复修复 (#1764) +- **[h3c-hexin](https://github.com/h3c-hexin)** — 流式批量工具调用保留和 CLI reasoning-effort 透传 (#1686, #1511) +- **[hxy91819](https://github.com/hxy91819)** — 工具结果裁剪时的前缀缓存保留 (#1514) +- **[JiarenWang](https://github.com/JiarenWang)** — Plan 模式只读执行、审批接管优化、Ctrl+H 删除修复和 undo 上下文同步 (#1123, #962, #958, #1150) +- **[Liu-Vince](https://github.com/Liu-Vince)** — MCP 分页、markdown 缩进保留、zh-Hans i18n 优化和环境变量文档 (#1256, #1179, #1274, #1178) +- **[linzhiqin2003](https://github.com/linzhiqin2003)** — `--model auto` 成本节约偏好、执行纪律提示和声明式事实记忆指导 (#1385, #1384, #1381) +- **[lbcheng888](https://github.com/lbcheng888)** — 跨保存/恢复的成本持久化和对话滚动修复 (#1192, #1211) +- **[pengyou200902](https://github.com/pengyou200902)** — UTF-8 安全记忆截断、截断标记精确化和快捷键文档 (#968, #1122, #1095) +- **[ChaceLyee2101](https://github.com/ChaceLyee2101)** — 推理 token 成本统计和 zh-Hans 自动 CNY 显示,以及 zh-CN README 同步 (#1505, #1504) +- **[CrepuscularIRIS](https://github.com/CrepuscularIRIS)** — Termius/SSH 低动画模式和 npx MCP 服务器沙箱修复 (#1479, #1346) +- **[laoye2020](https://github.com/laoye2020)** — Catppuccin、Tokyo Night、Dracula 和 Gruvbox 主题及 `/theme` 选择器 (#1534) +- **[punkcanyang](https://github.com/punkcanyang)** — Kitty (OSC 99) 和 Ghostty (OSC 777) 桌面通知支持 (#1426) +- **[Rene-Kuhm](https://github.com/Rene-Kuhm)** — 西班牙语(es-419)拉丁美洲本地化 (#1452) +- **[sternelee](https://github.com/sternelee)** — DeepSeek 前缀缓存稳定性追踪 (#1517) +- **[ComeFromTheMars](https://github.com/ComeFromTheMars)** — Shift+Up/Down 对话滚动快捷键 (#1432) +- **[sockerch](https://github.com/sockerch)** — 所有斜杠命令的拼音别名 (#1306) +- **[Apeiron0w0](https://github.com/Apeiron0w0)** — Tabby 终端闪烁循环的 FocusGained 去抖动 (#1560) +- **[greyfreedom](https://github.com/greyfreedom)** — 跳转到最新对话按钮 (#969) +- **[SamhandsomeLee](https://github.com/SamhandsomeLee)** — 显式隐藏文件提及补全 (#1270) +- **[dst1213](https://github.com/dst1213)** — 配额错误 HTTP 400 重试 (#1203) +- **[fuleinist](https://github.com/fuleinist)** — `--yolo` 标志从 CLI 转发到 TUI (#1233) +- **[heloanc](https://github.com/heloanc)** — Home/End 键编辑器支持 (#1246) +- **[jinpengxuan](https://github.com/jinpengxuan)** — 入职期间活动 provider 凭据保留 (#1265) +- **[lixiasky-back](https://github.com/lixiasky-back)** — 已验证 npm 二进制采用 (#1339) +- **[J3y0r](https://github.com/J3y0r)** — 工作区切换命令 (#1065) +- **[KhalidAlnujaidi](https://github.com/KhalidAlnujaidi)** — delegate 技能打包 (#1144) +- **[Wenjunyun123](https://github.com/Wenjunyun123)** — 文档锚点偏移保留 (#1282) +- **[whtis](https://github.com/whtis)** — zh-CN README 调度程序路径同步 (#1235) +- **[aqilaziz](https://github.com/aqilaziz)** — memory 技能链接修复 (#1095) +- **[wuwuzhijing](https://github.com/wuwuzhijing)** — rsproxy rustup 变通安装文档 (#1011) +- **[eltociear](https://github.com/eltociear)** — 日语 README 翻译 (#746) --- diff --git a/web/app/[locale]/page.tsx b/web/app/[locale]/page.tsx index 091e0807..bc6e45ad 100644 --- a/web/app/[locale]/page.tsx +++ b/web/app/[locale]/page.tsx @@ -8,7 +8,6 @@ import { FeedCard } from "@/components/feed-card"; import { Seal } from "@/components/seal"; import { MermaidDiagram } from "@/components/mermaid-diagram"; import type { CuratedDispatch, FeedItem, RepoStats } from "@/lib/types"; -import { GITEE_ENABLED } from "@/lib/i18n/config"; export const revalidate = 1800; @@ -17,18 +16,18 @@ const FALLBACK_STATS: RepoStats = { forks: 0, openIssues: 0, openPulls: 0, - contributors: 91, + contributors: 98, fetchedAt: new Date().toISOString(), }; const FALLBACK_DISPATCH_EN: CuratedDispatch = { generatedAt: new Date().toISOString(), - headline: "A small, focused terminal agent — quietly shipping", + headline: "CodeWhale — the terminal coding agent for open models", summary: - "DeepSeek TUI is an open-source coding agent that runs in your terminal, talks to the DeepSeek V4 family, and behaves itself around your filesystem. The dispatch below is regenerated by DeepSeek V4-Flash on a six-hour cron — you'll see actual repo movement here once the cron runs.", + "CodeWhale runs in your terminal, talks to DeepSeek V4 and other open-weight models through any provider, and respects your filesystem. The dispatch below is regenerated by DeepSeek V4-Flash on a six-hour cron — you'll see real repo activity here once the cron runs.", highlights: [ - { title: "Read the install guide", href: "/install", tag: "shipped", blurb: "Per-OS instructions for Cargo, npm, the Homebrew tap, and release binaries." }, - { title: "Browse open issues", href: "https://github.com/Hmbown/deepseek-tui/issues", tag: "opened", blurb: "Triaged on GitHub — start with anything labelled 'good first issue'." }, + { title: "Read the install guide", href: "/install", tag: "shipped", blurb: "npm, Cargo, Homebrew, direct download — pick your path." }, + { title: "Browse open issues", href: "https://github.com/Hmbown/CodeWhale/issues", tag: "opened", blurb: "Triaged on GitHub — start with anything labelled 'good first issue'." }, { title: "Review the roadmap", href: "/roadmap", tag: "discussion", blurb: "What's confirmed, what's being weighed, what's been ruled out." }, ], movers: [], @@ -36,12 +35,12 @@ const FALLBACK_DISPATCH_EN: CuratedDispatch = { const FALLBACK_DISPATCH_ZH: CuratedDispatch = { generatedAt: new Date().toISOString(), - headline: "一个专注的终端智能体——安静迭代中", + headline: "CodeWhale — 面向开源模型的终端编程智能体", summary: - "DeepSeek TUI 是一款开源终端编程智能体,运行在你的终端中,接入 DeepSeek V4 系列模型,对文件系统操作保持克制。以下「今日要闻」由 DeepSeek V4-Flash 每六小时自动生成——仓库有新动态时会实时更新。", + "CodeWhale 运行在你的终端中,接入 DeepSeek V4 等开源模型,对文件系统保持克制。以下「今日要闻」由 DeepSeek V4-Flash 每六小时自动生成——仓库有动态时会实时更新。", highlights: [ - { title: "阅读安装指南", href: "/zh/install", tag: "shipped", blurb: "覆盖 macOS、Linux、Windows,支持 Cargo、npm、Homebrew tap 及发布页二进制。" }, - { title: "浏览开放议题", href: "https://github.com/Hmbown/deepseek-tui/issues", tag: "opened", blurb: "在 GitHub 上查看——从标记为 good first issue 的议题开始。" }, + { title: "阅读安装指南", href: "/zh/install", tag: "shipped", blurb: "npm、Cargo、Homebrew、直接下载——任选其一。" }, + { title: "浏览开放议题", href: "https://github.com/Hmbown/CodeWhale/issues", tag: "opened", blurb: "在 GitHub 上查看——从标记为 good first issue 的议题开始。" }, { title: "查看路线图", href: "/zh/roadmap", tag: "discussion", blurb: "已确认、审议中、以及已排除的功能规划。" }, ], movers: [], @@ -84,22 +83,22 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
- v4 · 1M context + DeepSeek V4 · 1M context + OpenRouter MIT licensed

{isZh - ? "一个住在终端里的编程智能体。" - : "A coding agent that lives in your terminal."} + ? "开源模型的终端编程智能体。" + : "The terminal coding agent for open models."}

- 深度求索 ·{" "} - DeepSeek TUI{" "} + CodeWhale {isZh - ? "是一款基于 DeepSeek V4 系列的开源命令行智能体。它编辑文件、执行 Shell、调用 MCP 服务器,并尊重你的沙箱边界。" - : "is an open-source command-line agent built on the DeepSeek V4 family. It edits files, runs shells, calls MCP servers, and respects your sandbox."} + ? " 是一个终端原生的编程智能体,面向 DeepSeek V4 及其他开源/开放权重模型。它编辑文件、执行 Shell、调用 MCP 服务器、协调子智能体——并在你的文件系统沙箱内运行。DeepSeek API 直连、OpenRouter、Hugging Face 推理端点、自托管——任选你的接入方式。" + : " is a terminal-native coding agent for DeepSeek V4 and other open / open-weight models. It edits files, runs shells, calls MCP servers, coordinates sub-agents — and runs inside your filesystem sandbox. Native DeepSeek API, OpenRouter, Hugging Face inference, self-hosted — bring your own provider."}

@@ -110,36 +109,36 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s {isZh ? "立即安装 →" : "Install →"} - ★ Star on GitHub + ★ GitHub - {isZh ? "阅读文档" : "Read the docs"} + {isZh ? "阅读文档" : "Docs"} - {isZh ? "支持项目 ↗" : "Support ↗"} + {isZh ? "路线图" : "Roadmap"}
{/* Trust signals */}
- {isZh ? ( - 独立维护者 Hmbown{GITEE_ENABLED && <> · Gitee 镜像} - ) : ( - Maintained by Hmbown - )} + {isZh ? "独立维护者 Hmbown" : "Maintained by Hmbown"} + · + {facts.version ?? "v0.8.x"} + · + {facts.providers.length} providers
- {/* hero side: cargo install card */} + {/* hero side: install card */}
@@ -148,30 +147,38 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
                 {isZh ? (
                   <>
-                    # 安装{"\n"}
-                    $ cargo install deepseek-tui-cli --locked{"\n"}
-                    $ deepseek{"\n"}
+                    # npm 安装(推荐,无需 Rust 工具链){"\n"}
+                    $ npm install -g codewhale{"\n"}
+                    $ codewhale{"\n"}
+                    
+ # 或 Cargo 安装{"\n"} + $ cargo install codewhale-cli --locked{"\n"} + $ codewhale{"\n"}
# 已安装?更新到最新版{"\n"} - $ deepseek update{"\n"} + $ codewhale update{"\n"}
- # 首次运行会自动创建 ~/.deepseek/ + # 首次运行自动创建 ~/.deepseek/ ) : ( <> - # install{"\n"} - $ cargo install deepseek-tui-cli --locked{"\n"} - $ deepseek{"\n"} + # npm install (recommended, no Rust toolchain){"\n"} + $ npm install -g codewhale{"\n"} + $ codewhale{"\n"} +
+ # or Cargo install{"\n"} + $ cargo install codewhale-cli --locked{"\n"} + $ codewhale{"\n"}
# already installed? pull the latest{"\n"} - $ deepseek update{"\n"} + $ codewhale update{"\n"}
# first run sets up ~/.deepseek/ )}
- {isZh ? "需要 Rust 1.88+ · 没有 Rust? 见其他方式" : "requires Rust 1.88+ · no Rust? see other ways"} + {isZh ? "需要 Node 或 Rust 1.88+" : "needs Node or Rust 1.88+"} {isZh ? "其他方式 →" : "other ways →"}
@@ -203,7 +210,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s

{isZh && dispatch.headlineZh ? dispatch.headlineZh : dispatch.headline}

-

+

{isZh && dispatch.summaryZh ? dispatch.summaryZh : dispatch.summary}

@@ -267,7 +274,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
- {/* WHAT IT IS — 3 column */} + {/* WHAT IT IS */}
@@ -284,23 +291,23 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
01 · 终端智能体

编程智能体,不是聊天框

- 与 Claude Code、Codex CLI 相同的循环。读、改、跑测试、汇报。 + 与 Claude Code、Codex CLI 相同的循环。读、改、跑测试、汇报。键盘驱动,住在你的终端里。

-
02 · 沙箱保护
-

三种模式,一套审批

+
02 · 开源模型优先
+

DeepSeek V4 深度集成

+

+ DeepSeek 原生 API 为一级路径:推理块流式传输、缓存指标、思考力度选择。同时支持 OpenRouter、Hugging Face、自托管——任你选择。 +

+
+
+
03 · 沙箱边界
+

Plan、Agent、YOLO

Plan 只读调查,Agent 按需审批,YOLO 自动批准。沙箱:seatbelt (macOS)、landlock (Linux);Windows 受限令牌。

-
-
03 · 模型自由
-

默认 {facts.defaultModel ?? "DeepSeek V4"}

-

- 内建 {facts.providers.length} 个提供商。deepseek auth set --provider … 切换。 -

-
) : ( <> @@ -308,31 +315,42 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
01 · 终端智能体

A coding agent, not a chat box

- Same loop as Claude Code or Codex CLI. It reads, edits, runs tests, reports back. + Same loop as Claude Code or Codex CLI. Reads, edits, runs tests, reports back. Keyboard-driven, lives in your terminal.

-
02 · 沙箱保护
-

Three modes, one approval system

+
02 · 开源模型优先
+

DeepSeek V4, deeply integrated

- Plan reads, Agent requests approval for risky ops, YOLO auto-approves. Sandboxed via seatbelt (macOS), landlock (Linux); Windows restricted tokens. + Native DeepSeek API is the first-class path: reasoning streaming, cache metrics, thinking effort control. OpenRouter, Hugging Face, self-hosted — your call.

-
03 · 模型自由
-

{facts.defaultModel ?? "DeepSeek V4"} by default

+
03 · 沙箱保护
+

Plan, Agent, YOLO

- {facts.providers.length} built-in providers. Swap with deepseek auth set --provider …. + Plan reads only. Agent asks for approval on risky ops. YOLO auto-approves. Sandboxed via seatbelt (macOS), landlock (Linux); Windows restricted tokens.

)}
+ + {/* Provider quick list */} +
+
{isZh ? "内建提供商" : "Built-in providers"}
+
+ {facts.providers.map((p) => ( + + {p.label} + + ))} +
+
- {/* HOW IT WORKS — mermaid diagram (replaces brittle ASCII art that - misaligned under CJK monospace, per dhh's note) */} + {/* HOW IT WORKS */}
@@ -343,7 +361,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
+ {/* OPEN MODEL PLATFORM */} +
+
+
+ +

+ {isZh ? "开放模型平台" : "Open model platform"} +

+
+ +

+ {isZh + ? "CodeWhale 为 DeepSeek V4 构建了深度的一级集成——推理流、缓存指标、思考力度控制。同时,OpenRouter 已作为二级提供商就绪;Hugging Face 推理端点、自托管 OpenAI 兼容端点、本地模型服务也在规划中。目标明确:CodeWhale 应成为所有开放/开源编码模型的终端智能体。" + : "CodeWhale ships with deep first-class integration for DeepSeek V4 — reasoning streams, cache metrics, thinking effort control. OpenRouter is ready as a secondary provider. Hugging Face inference endpoints, self-hosted OpenAI-compatible endpoints, and local model serving are on the roadmap. The direction is clear: CodeWhale should be THE terminal agent for all open / open-weight coding models."} +

+ +
+ {isZh ? ( + <> +
+
DeepSeek · 一级
+

+ 原生 DeepSeek API 直连。推理内容流式传输、缓存命中指标、模型自动路由(Fin)。DeepSeek 不会被弃用。 +

+
+
+
OpenRouter · 就绪
+

+ 通过 OpenRouter 接入 DeepSeek 模型及更多。统一 API 层,按使用量计费。设置 OPENROUTER_API_KEY 即可。 +

+
+
+
更多 · 规划中
+

+ Hugging Face 推理端点、自托管(vLLM / sglang / Ollama)、Unsloth 微调适配——这些是平台路线图的一部分,尚未完全实现。 +

+
+ + ) : ( + <> +
+
DeepSeek · first-class
+

+ Native DeepSeek API direct. Reasoning streaming, cache hit metrics, model auto-routing (Fin). DeepSeek is not deprecated. +

+
+
+
OpenRouter · ready
+

+ Access DeepSeek models and more through OpenRouter. Unified API layer, usage-based billing. Set OPENROUTER_API_KEY and go. +

+
+
+
More · planned
+

+ Hugging Face inference, self-hosted (vLLM / sglang / Ollama), Unsloth fine-tune adapters — on the platform roadmap, not fully implemented yet. +

+
+ + )} +
+ +
+ + {isZh ? "查看完整路线图 →" : "Full roadmap →"} + + + {isZh ? "提供商配置文档 →" : "Provider config docs →"} + +
+
+
+ {/* JOIN IN */}
@@ -394,35 +485,39 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s ? "无 CLA,无赞助商锁定。维护者亲自阅读每一条内容。议题在公开环境下分类。版本从 main 分支发布。" : "No CLA. No sponsor lockouts. The maintainer reads everything personally. Issues triaged in the open. Releases cut from main."}

+
+ + ★ Star on GitHub + + + {isZh ? "参与贡献 →" : "Contribute →"} + +
{(isZh ? [ - { t: "提交议题", cn: "提 Bug 或功能建议", d: "Bug 报告、功能需求,或一个好问题。", href: "https://github.com/Hmbown/deepseek-tui/issues/new/choose" }, - { t: "提交 PR", cn: "贡献代码", d: "Fork、分支、conventional commit、提交 PR。", href: "/zh/contribute" }, - { t: "发起讨论", cn: "参与设计", d: "路线图、架构设计、任何非 Bug 的话题。", href: "https://github.com/Hmbown/deepseek-tui/discussions" }, + { t: "34k+", d: "星标" }, + { t: "98+", d: "贡献者" }, + { t: `${facts.providers.length}+`, d: "提供商" }, ] : [ - { t: "Open an issue", cn: "提议题", d: "Bug, feature, or just a sharp question.", href: "https://github.com/Hmbown/deepseek-tui/issues/new/choose" }, - { t: "Send a PR", cn: "提交合并", d: "Fork, branch, conventional commit, open PR.", href: "/contribute" }, - { t: "Start a discussion", cn: "发起讨论", d: "Roadmap, design, anything that's not a bug.", href: "https://github.com/Hmbown/deepseek-tui/discussions" }, + { t: "34k+", d: "Stars" }, + { t: "98+", d: "Contributors" }, + { t: `${facts.providers.length}+`, d: "Providers" }, ] - ).map((c) => ( - -
- {c.cn} -
-
{c.t}
-
{c.d}
-
- {isZh ? "前往 →" : "Go →"} -
- + ).map((s) => ( +
+
{s.t}
+
{s.d}
+
))}
diff --git a/web/lib/github.ts b/web/lib/github.ts index 82e8f507..aeafe692 100644 --- a/web/lib/github.ts +++ b/web/lib/github.ts @@ -1,14 +1,14 @@ import type { FeedItem, RepoStats } from "./types"; -const REPO = process.env.GITHUB_REPO ?? "Hmbown/deepseek-tui"; +const REPO = process.env.GITHUB_REPO ?? "Hmbown/CodeWhale"; const GH = "https://api.github.com"; -const MIN_KNOWN_CONTRIBUTORS = 91; +const MIN_KNOWN_CONTRIBUTORS = 98; function headers(token?: string): HeadersInit { const h: Record = { Accept: "application/vnd.github+json", "X-GitHub-Api-Version": "2022-11-28", - "User-Agent": "deepseek-tui-web", + "User-Agent": "codewhale-web", }; if (token) h.Authorization = `Bearer ${token}`; return h;