docs(readme): refresh contributor count and acknowledgements

- 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)
This commit is contained in:
Hunter Bown
2026-05-24 03:12:24 -05:00
parent 04d2e4af1f
commit 3dfc7fb716
5 changed files with 341 additions and 88 deletions
+62 -2
View File
@@ -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)
<a href="https://www.buymeacoffee.com/hmbown" target="_blank"><img src="https://img.shields.io/badge/Buy%20me%20a%20coffee-5F7FFF?style=for-the-badge&logo=buymeacoffee&logoColor=white" alt="Buy me a coffee" /></a>
![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)** — スキーマ駆動の設定 UITUI + 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)
---
+46 -2
View File
@@ -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.*
+54
View File
@@ -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)
---
+176 -81
View File
@@ -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
<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-8">
<div className="flex items-center gap-2 sm:gap-3 mb-6 flex-wrap">
<span className="pill pill-hot">v4 · 1M context</span>
<span className="pill pill-hot">DeepSeek V4 · 1M context</span>
<span className="pill pill-jade">OpenRouter</span>
<span className="pill pill-ghost">MIT licensed</span>
</div>
<h1 className="font-display tracking-crisp">
{isZh
? "一个住在终端里的编程智能体。"
: "A coding agent that lives in your terminal."}
? "开源模型的终端编程智能体。"
: "The terminal coding agent for open models."}
</h1>
<p className="mt-6 text-lg text-ink-soft leading-relaxed max-w-2xl">
<span className="font-cjk text-indigo font-semibold"></span> ·{" "}
<strong>DeepSeek TUI</strong>{" "}
<span className="font-cjk text-indigo font-semibold">CodeWhale</span>
{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."}
</p>
<div className="mt-8 flex flex-wrap items-stretch sm:items-center gap-3">
@@ -110,36 +109,36 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
{isZh ? "立即安装 →" : "Install →"}
</Link>
<Link
href="https://github.com/Hmbown/deepseek-tui"
href="https://github.com/Hmbown/CodeWhale"
className="flex-1 sm:flex-none text-center px-5 py-3 hairline-t hairline-b hairline-l hairline-r font-mono text-sm uppercase tracking-wider hover:bg-paper-deep transition-colors"
>
Star on GitHub
GitHub
</Link>
<Link
href={isZh ? "/zh/docs" : "/docs"}
className="px-5 py-3 font-mono text-sm uppercase tracking-wider text-ink-mute hover:text-indigo transition-colors"
>
{isZh ? "阅读文档" : "Read the docs"}
{isZh ? "阅读文档" : "Docs"}
</Link>
<Link
href="https://buymeacoffee.com/hmbown"
href="/roadmap"
className="px-5 py-3 font-mono text-sm uppercase tracking-wider text-ink-mute hover:text-indigo transition-colors"
>
{isZh ? "支持项目 ↗" : "Support ↗"}
{isZh ? "路线图" : "Roadmap"}
</Link>
</div>
{/* Trust signals */}
<div className="mt-6 flex items-center gap-4 text-xs font-mono text-ink-mute flex-wrap">
{isZh ? (
<span> Hmbown{GITEE_ENABLED && <> · <a href="https://gitee.com/Hmbown/deepseek-tui" className="text-indigo hover:underline">Gitee </a></>}</span>
) : (
<span>Maintained by Hmbown</span>
)}
<span>{isZh ? "独立维护者 Hmbown" : "Maintained by Hmbown"}</span>
<span className="hidden sm:inline">·</span>
<span>{facts.version ?? "v0.8.x"}</span>
<span className="hidden sm:inline">·</span>
<span>{facts.providers.length} providers</span>
</div>
</div>
{/* hero side: cargo install card */}
{/* hero side: install card */}
<div className="lg:col-span-4">
<div className="hairline-t hairline-b hairline-l hairline-r bg-paper p-5 relative">
<div className="absolute -top-3 left-4 bg-paper px-2 eyebrow">
@@ -148,30 +147,38 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
<pre className="code-block mt-2">
{isZh ? (
<>
<span className="comment"># </span>{"\n"}
<span className="prompt">$</span> cargo install deepseek-tui-cli --locked{"\n"}
<span className="prompt">$</span> deepseek{"\n"}
<span className="comment"># npm Rust </span>{"\n"}
<span className="prompt">$</span> npm install -g codewhale{"\n"}
<span className="prompt">$</span> codewhale{"\n"}
<br />
<span className="comment"># Cargo </span>{"\n"}
<span className="prompt">$</span> cargo install codewhale-cli --locked{"\n"}
<span className="prompt">$</span> codewhale{"\n"}
<br />
<span className="comment"># </span>{"\n"}
<span className="prompt">$</span> deepseek update{"\n"}
<span className="prompt">$</span> codewhale update{"\n"}
<br />
<span className="comment"># <span className="key">~/.deepseek/</span></span>
<span className="comment"># <span className="key">~/.deepseek/</span></span>
</>
) : (
<>
<span className="comment"># install</span>{"\n"}
<span className="prompt">$</span> cargo install deepseek-tui-cli --locked{"\n"}
<span className="prompt">$</span> deepseek{"\n"}
<span className="comment"># npm install (recommended, no Rust toolchain)</span>{"\n"}
<span className="prompt">$</span> npm install -g codewhale{"\n"}
<span className="prompt">$</span> codewhale{"\n"}
<br />
<span className="comment"># or Cargo install</span>{"\n"}
<span className="prompt">$</span> cargo install codewhale-cli --locked{"\n"}
<span className="prompt">$</span> codewhale{"\n"}
<br />
<span className="comment"># already installed? pull the latest</span>{"\n"}
<span className="prompt">$</span> deepseek update{"\n"}
<span className="prompt">$</span> codewhale update{"\n"}
<br />
<span className="comment"># first run sets up <span className="key">~/.deepseek/</span></span>
</>
)}
</pre>
<div className="mt-3 flex items-center justify-between text-[0.7rem] font-mono text-ink-mute">
<span>{isZh ? "需要 Rust 1.88+ · 没有 Rust? 见其他方式" : "requires Rust 1.88+ · no Rust? see other ways"}</span>
<span>{isZh ? "需要 Node 或 Rust 1.88+" : "needs Node or Rust 1.88+"}</span>
<Link href={isZh ? "/zh/install" : "/install"} className="text-indigo hover:underline">{isZh ? "其他方式 →" : "other ways →"}</Link>
</div>
</div>
@@ -203,7 +210,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
<h3 className="font-display text-3xl leading-tight">
{isZh && dispatch.headlineZh ? dispatch.headlineZh : dispatch.headline}
</h3>
<p className={`${isZh ? "text-ink-soft leading-[1.9] tracking-wide text-[1.02rem]" : "text-ink-soft leading-relaxed text-[1.02rem]"}`}>
<p className={isZh ? "text-ink-soft leading-[1.9] tracking-wide text-[1.02rem]" : "text-ink-soft leading-relaxed text-[1.02rem]"}>
{isZh && dispatch.summaryZh ? dispatch.summaryZh : dispatch.summary}
</p>
@@ -267,7 +274,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
</div>
</section>
{/* WHAT IT IS — 3 column */}
{/* WHAT IT IS */}
<section className="bg-paper-deep hairline-t hairline-b">
<div className="mx-auto max-w-[1400px] px-6 py-16">
<div className="flex items-baseline gap-4 mb-8 hairline-b pb-4">
@@ -284,23 +291,23 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
<div className="eyebrow mb-3">01 · </div>
<h3 className="font-display text-xl mb-3"></h3>
<p className="text-sm text-ink-soft leading-[1.9]">
Claude CodeCodex CLI
Claude CodeCodex CLI
</p>
</div>
<div className="p-6">
<div className="eyebrow mb-3">02 · </div>
<h3 className="font-display text-xl mb-3"></h3>
<div className="eyebrow mb-3">02 · </div>
<h3 className="font-display text-xl mb-3">DeepSeek V4 </h3>
<p className="text-sm text-ink-soft leading-[1.9]">
DeepSeek API OpenRouterHugging Face
</p>
</div>
<div className="p-6">
<div className="eyebrow mb-3">03 · </div>
<h3 className="font-display text-xl mb-3">PlanAgentYOLO</h3>
<p className="text-sm text-ink-soft leading-[1.9]">
Plan Agent YOLO seatbelt (macOS)landlock (Linux)Windows
</p>
</div>
<div className="p-6">
<div className="eyebrow mb-3">03 · </div>
<h3 className="font-display text-xl mb-3"> {facts.defaultModel ?? "DeepSeek V4"}</h3>
<p className="text-sm text-ink-soft leading-[1.9]">
{facts.providers.length} <code className="inline">deepseek auth set --provider </code>
</p>
</div>
</>
) : (
<>
@@ -308,31 +315,42 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
<div className="eyebrow mb-3">01 · </div>
<h3 className="font-display text-xl mb-3">A coding agent, not a chat box</h3>
<p className="text-sm text-ink-soft leading-relaxed">
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.
</p>
</div>
<div className="p-6">
<div className="eyebrow mb-3">02 · </div>
<h3 className="font-display text-xl mb-3">Three modes, one approval system</h3>
<div className="eyebrow mb-3">02 · </div>
<h3 className="font-display text-xl mb-3">DeepSeek V4, deeply integrated</h3>
<p className="text-sm text-ink-soft leading-relaxed">
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.
</p>
</div>
<div className="p-6">
<div className="eyebrow mb-3">03 · </div>
<h3 className="font-display text-xl mb-3">{facts.defaultModel ?? "DeepSeek V4"} by default</h3>
<div className="eyebrow mb-3">03 · </div>
<h3 className="font-display text-xl mb-3">Plan, Agent, YOLO</h3>
<p className="text-sm text-ink-soft leading-relaxed">
{facts.providers.length} built-in providers. Swap with <code className="inline">deepseek auth set --provider </code>.
Plan reads only. Agent asks for approval on risky ops. YOLO auto-approves. Sandboxed via seatbelt (macOS), landlock (Linux); Windows restricted tokens.
</p>
</div>
</>
)}
</div>
{/* Provider quick list */}
<div className="mt-8 hairline-t pt-6">
<div className="eyebrow mb-4">{isZh ? "内建提供商" : "Built-in providers"}</div>
<div className="flex flex-wrap gap-2">
{facts.providers.map((p) => (
<span key={p.id} className="font-mono text-xs px-2 py-1 hairline-t hairline-b hairline-l hairline-r text-ink-soft">
{p.label}
</span>
))}
</div>
</div>
</div>
</section>
{/* HOW IT WORKS mermaid diagram (replaces brittle ASCII art that
misaligned under CJK monospace, per dhh's note) */}
{/* HOW IT WORKS */}
<section className="mx-auto max-w-[1400px] px-6 py-16">
<div className="flex items-baseline gap-4 mb-8 hairline-b pb-4">
<Seal char="作" />
@@ -343,7 +361,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
<div className="hairline-t hairline-b hairline-l hairline-r bg-paper p-4 sm:p-8">
<MermaidDiagram
label={isZh ? "DeepSeek TUI 运作方式示意图" : "DeepSeek TUI architecture diagram"}
label={isZh ? "CodeWhale 运作方式示意图" : "CodeWhale architecture diagram"}
chart={
isZh
? `flowchart TD
@@ -381,6 +399,79 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
</p>
</section>
{/* OPEN MODEL PLATFORM */}
<section className="bg-paper-deep hairline-t hairline-b">
<div className="mx-auto max-w-[1400px] px-6 py-16">
<div className="flex items-baseline gap-4 mb-8 hairline-b pb-4">
<Seal char="开" />
<h2 className="font-display">
{isZh ? "开放模型平台" : "Open model platform"}
</h2>
</div>
<p className="text-ink-soft max-w-3xl mb-8 leading-relaxed">
{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."}
</p>
<div className="grid md:grid-cols-3 gap-0 col-rule hairline-t hairline-b">
{isZh ? (
<>
<div className="p-6">
<div className="font-display text-xl mb-2 text-indigo">DeepSeek · </div>
<p className="text-sm text-ink-soft leading-[1.9]">
DeepSeek API FinDeepSeek
</p>
</div>
<div className="p-6">
<div className="font-display text-xl mb-2 text-indigo">OpenRouter · </div>
<p className="text-sm text-ink-soft leading-[1.9]">
OpenRouter DeepSeek API 使 OPENROUTER_API_KEY
</p>
</div>
<div className="p-6">
<div className="font-display text-xl mb-2 text-indigo"> · </div>
<p className="text-sm text-ink-soft leading-[1.9]">
Hugging Face vLLM / sglang / OllamaUnsloth 线
</p>
</div>
</>
) : (
<>
<div className="p-6">
<div className="font-display text-xl mb-2 text-indigo">DeepSeek · first-class</div>
<p className="text-sm text-ink-soft leading-relaxed">
Native DeepSeek API direct. Reasoning streaming, cache hit metrics, model auto-routing (Fin). DeepSeek is not deprecated.
</p>
</div>
<div className="p-6">
<div className="font-display text-xl mb-2 text-indigo">OpenRouter · ready</div>
<p className="text-sm text-ink-soft leading-relaxed">
Access DeepSeek models and more through OpenRouter. Unified API layer, usage-based billing. Set OPENROUTER_API_KEY and go.
</p>
</div>
<div className="p-6">
<div className="font-display text-xl mb-2 text-indigo">More · planned</div>
<p className="text-sm text-ink-soft leading-relaxed">
Hugging Face inference, self-hosted (vLLM / sglang / Ollama), Unsloth fine-tune adapters on the platform roadmap, not fully implemented yet.
</p>
</div>
</>
)}
</div>
<div className="mt-8 hairline-t pt-6 flex items-center gap-4">
<Link href="/roadmap" className="font-mono text-sm uppercase tracking-wider text-indigo hover:underline">
{isZh ? "查看完整路线图 →" : "Full roadmap →"}
</Link>
<Link href="/docs" className="font-mono text-sm uppercase tracking-wider text-ink-mute hover:text-indigo transition-colors">
{isZh ? "提供商配置文档 →" : "Provider config docs →"}
</Link>
</div>
</div>
</section>
{/* JOIN IN */}
<section className="bg-ink text-paper">
<div className="mx-auto max-w-[1400px] px-6 py-16 grid lg:grid-cols-12 gap-10">
@@ -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."}
</p>
<div className="mt-6 flex items-center gap-3">
<Link
href="https://github.com/Hmbown/CodeWhale"
className="px-4 py-2 hairline-t hairline-b hairline-l hairline-r border-white/20 text-paper font-mono text-sm hover:bg-white/10 transition-colors"
>
Star on GitHub
</Link>
<Link
href="/contribute"
className="px-4 py-2 font-mono text-sm text-paper-deep/80 hover:text-paper transition-colors"
>
{isZh ? "参与贡献 →" : "Contribute →"}
</Link>
</div>
</div>
<div className="lg:col-span-7 grid sm:grid-cols-3 gap-px bg-paper/15">
{(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) => (
<Link
key={c.t}
href={c.href}
className="bg-ink p-6 hover:bg-indigo group transition-colors"
>
<div className="font-cjk text-sm text-indigo group-hover:text-paper transition-colors mb-2">
{c.cn}
</div>
<div className="font-display text-xl mb-2">{c.t}</div>
<div className="text-sm text-paper-deep/80 group-hover:text-paper">{c.d}</div>
<div className="mt-4 font-mono text-[0.7rem] uppercase tracking-widest text-paper-deep/60 group-hover:text-paper">
{isZh ? "前往 →" : "Go →"}
</div>
</Link>
).map((s) => (
<div key={s.d} className="bg-ink p-6 text-center">
<div className="font-display text-4xl mb-1 text-jade">{s.t}</div>
<div className="font-cjk text-sm text-paper-deep/70">{s.d}</div>
</div>
))}
</div>
</div>
+3 -3
View File
@@ -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<string, string> = {
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;