docs: v0.8.45 harness framing — READMEs, website, metadata, contributors
- README: new tagline, What Is It/Key Features → harness framing - README.zh-CN/ja-JP: matching Chinese/Japanese translations - web/app/page.tsx: updated hero, description, three-column grid, flywheel - web/app/layout.tsx: metadata title + description for harness framing - website/index.html + zh/: hero, feature grid, install command - README: updated contributor credits for v0.8.45 (idling11, gaord, h3c-hexin, cyq1017, reidliu41, wdw8276, zlh124)
This commit is contained in:
@@ -121,7 +121,7 @@ export default async function DocsPage({ params }: { params: Promise<{ locale: s
|
||||
{ group: "Git / 诊断 / 测试", tools: "git_status · git_diff · diagnostics · run_tests" },
|
||||
{ group: "子 Agent", tools: "agent_open · agent_eval · agent_close —— 持久会话,并行执行,通过 var_handle 读取大结果" },
|
||||
{ group: "递归 LM (RLM)", tools: "rlm_open · rlm_eval · rlm_configure · rlm_close —— 沙箱 Python REPL,内置 peek/search/chunk/sub_query_batch 等辅助函数" },
|
||||
{ group: "MCP", tools: "mcp_<server>_<tool>——从 ~/.deepseek/mcp.json 自动注册" },
|
||||
{ group: "MCP", tools: "mcp_<server>_<tool>——从 ~/.codewhale/mcp.json 自动注册" },
|
||||
].map((row) => (
|
||||
<div key={row.group} className="grid md:grid-cols-12 gap-0 hairline-t py-3 px-4 hover:bg-paper-deep transition-colors min-w-0">
|
||||
<div className="md:col-span-3 font-display text-sm font-semibold">{row.group}</div>
|
||||
@@ -152,8 +152,8 @@ export default async function DocsPage({ params }: { params: Promise<{ locale: s
|
||||
))}
|
||||
</div>
|
||||
<p className="mt-5 text-ink-soft leading-[1.9] tracking-wide">
|
||||
沙箱:{facts.sandboxBackends.join("、")}。Windows 当前不宣称 OS 级文件系统沙箱,但保留同样的审批、工作区边界和终端运行时保护。
|
||||
<code className="inline">/trust</code> 可解除工作区边界限制。
|
||||
沙箱:{facts.sandboxBackends.join("、")}。工作区边界默认为 <code className="inline">--workspace</code>。
|
||||
<code className="inline">/trust</code> 可解除边界限制。
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -163,7 +163,7 @@ export default async function DocsPage({ params }: { params: Promise<{ locale: s
|
||||
配置 <span className="font-cjk text-indigo text-2xl ml-2">Configuration</span>
|
||||
</h2>
|
||||
<pre className="code-block mt-5">
|
||||
{`# ~/.deepseek/config.toml
|
||||
{`# ~/.codewhale/config.toml
|
||||
api_key = "sk-..."
|
||||
base_url = "https://api.deepseek.com"
|
||||
default_text_model = "${facts.defaultModel ?? "deepseek-v4-pro"}" # 默认模型;deepseek-v4-flash 用于快速 / 子智能体
|
||||
@@ -179,7 +179,7 @@ default_timeout_secs = 30
|
||||
|
||||
[[hooks.hooks]]
|
||||
event = "session_start" # 也支持: tool_call_before / tool_call_after
|
||||
command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change / on_error / shell_env`}
|
||||
command = "~/.codewhale/hooks/pre.sh" # / message_submit / mode_change / on_error / shell_env`}
|
||||
</pre>
|
||||
<p className="mt-4 text-sm text-ink-soft">
|
||||
完整参考:<Link className="body-link" href="https://github.com/Hmbown/CodeWhale/blob/main/config.example.toml">config.example.toml</Link>。
|
||||
@@ -193,7 +193,7 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
</h2>
|
||||
<p className="text-ink-soft mt-3 leading-[1.9] tracking-wide">
|
||||
<code className="inline">codewhale</code> 双向支持模型上下文协议(Model Context Protocol):作为客户端从
|
||||
<code className="inline">~/.deepseek/mcp.json</code> 加载服务器,同时也可作为服务器暴露工具
|
||||
<code className="inline">~/.codewhale/mcp.json</code> 加载服务器,同时也可作为服务器暴露工具
|
||||
(<code className="inline">codewhale mcp</code>)。工具以 <code className="inline">mcp_<server>_<tool></code> 形式呈现。
|
||||
</p>
|
||||
<pre className="code-block mt-5">
|
||||
@@ -218,7 +218,7 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
技能 <span className="font-cjk text-indigo text-2xl ml-2">Skills</span>
|
||||
</h2>
|
||||
<p className="text-ink-soft mt-3 leading-[1.9] tracking-wide">
|
||||
技能是 <code className="inline">~/.deepseek/skills/<name>/</code> 下的一个文件夹,
|
||||
技能是 <code className="inline">~/.codewhale/skills/<name>/</code> 下的一个文件夹,
|
||||
根目录包含 <code className="inline">SKILL.md</code>。Agent 启动时加载技能名称和描述,
|
||||
在需要时通过 Skill 工具拉取完整内容。
|
||||
</p>
|
||||
@@ -253,7 +253,7 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
<p className="text-ink-soft mt-3 leading-[1.9] tracking-wide">
|
||||
使用 <code className="inline">codewhale auth set --provider <id></code> 切换。下表为
|
||||
<code className="inline">crates/tui/src/config.rs</code> 中 <code className="inline">ApiProvider</code> 枚举的实时投影
|
||||
,v0.8.45 当前共 {facts.providers.length} 个。
|
||||
,目前共 {facts.providers.length} 个。
|
||||
</p>
|
||||
<div className="hairline-t hairline-b mt-5">
|
||||
{facts.providers.map((p) => (
|
||||
@@ -265,13 +265,9 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
))}
|
||||
</div>
|
||||
<p className="mt-5 text-ink-soft leading-[1.9] tracking-wide">
|
||||
开放模型平台方向:CodeWhale 保持 DeepSeek 优先,同时内置 Moonshot/Kimi、OpenRouter、NVIDIA NIM、
|
||||
AtlasCloud、Wanjie Ark、Novita、Fireworks 和自托管 SGLang/vLLM/Ollama 路径。
|
||||
Kimi Code 会员 API Key 使用 <code className="inline">providers.moonshot.base_url</code>
|
||||
指向 <code className="inline">https://api.kimi.com/coding/v1</code>,模型为
|
||||
<code className="inline">kimi-for-coding</code>;Kimi/Moonshot 平台 API Key 继续使用
|
||||
<code className="inline">https://api.moonshot.ai/v1</code> 和
|
||||
<code className="inline">kimi-k2.6</code>。
|
||||
开放模型平台方向:CodeWhale 正在扩展对
|
||||
<strong> OpenRouter</strong>、<strong> Hugging Face</strong> 和<strong> 自托管</strong> 模型的支持,
|
||||
为您提供完全自主的模型选择——从云端 API 到本地部署均可覆盖。
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -377,7 +373,7 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
{ group: "Git / diag / test", tools: "git_status · git_diff · diagnostics · run_tests" },
|
||||
{ group: "Sub-agents", tools: "agent_open · agent_eval · agent_close — persistent sessions, parallel execution, bounded result retrieval via var_handle" },
|
||||
{ group: "Recursive LM (RLM)", tools: "rlm_open · rlm_eval · rlm_configure · rlm_close — sandboxed Python REPL with peek/search/chunk/sub_query_batch helpers" },
|
||||
{ group: "MCP", tools: "mcp_<server>_<tool> — auto-registered from ~/.deepseek/mcp.json" },
|
||||
{ group: "MCP", tools: "mcp_<server>_<tool> — auto-registered from ~/.codewhale/mcp.json" },
|
||||
].map((row) => (
|
||||
<div key={row.group} className="grid md:grid-cols-12 gap-0 hairline-t py-3 px-4 hover:bg-paper-deep transition-colors min-w-0">
|
||||
<div className="md:col-span-3 font-display text-sm font-semibold">{row.group}</div>
|
||||
@@ -407,9 +403,8 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
))}
|
||||
</div>
|
||||
<p className="mt-5 text-ink-soft leading-relaxed">
|
||||
Sandbox: {facts.sandboxBackends.join(", ")}. On Windows, CodeWhale does not advertise
|
||||
OS-level filesystem isolation yet, but keeps the same approvals, workspace boundary,
|
||||
and terminal runtime protections. <code className="inline">/trust</code> lifts the workspace boundary.
|
||||
Sandbox: {facts.sandboxBackends.join(", ")}. Workspace boundary defaults to{" "}
|
||||
<code className="inline">--workspace</code>. <code className="inline">/trust</code> lifts the boundary.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -418,7 +413,7 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
Configuration <span className="font-cjk text-indigo text-2xl ml-2">配置</span>
|
||||
</h2>
|
||||
<pre className="code-block mt-5">
|
||||
{`# ~/.deepseek/config.toml
|
||||
{`# ~/.codewhale/config.toml
|
||||
api_key = "sk-..."
|
||||
base_url = "https://api.deepseek.com"
|
||||
default_text_model = "${facts.defaultModel ?? "deepseek-v4-pro"}" # default; deepseek-v4-flash is the fast / sub-agent option
|
||||
@@ -434,7 +429,7 @@ default_timeout_secs = 30
|
||||
|
||||
[[hooks.hooks]]
|
||||
event = "session_start" # or: tool_call_before / tool_call_after
|
||||
command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change / on_error / shell_env`}
|
||||
command = "~/.codewhale/hooks/pre.sh" # / message_submit / mode_change / on_error / shell_env`}
|
||||
</pre>
|
||||
<p className="mt-4 text-sm text-ink-soft">
|
||||
Full reference: <Link className="body-link" href="https://github.com/Hmbown/CodeWhale/blob/main/config.example.toml">config.example.toml</Link>.
|
||||
@@ -447,7 +442,7 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
</h2>
|
||||
<p className="text-ink-soft mt-3 leading-relaxed">
|
||||
<code className="inline">codewhale</code> speaks the Model Context Protocol both ways: as a client (loads
|
||||
servers from <code className="inline">~/.deepseek/mcp.json</code>) and as a server
|
||||
servers from <code className="inline">~/.codewhale/mcp.json</code>) and as a server
|
||||
(<code className="inline">codewhale mcp</code>). Tools surface as <code className="inline">mcp_<server>_<tool></code>.
|
||||
</p>
|
||||
<pre className="code-block mt-5">
|
||||
@@ -471,7 +466,7 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
Skills <span className="font-cjk text-indigo text-2xl ml-2">技能</span>
|
||||
</h2>
|
||||
<p className="text-ink-soft mt-3 leading-relaxed">
|
||||
A skill is a folder under <code className="inline">~/.deepseek/skills/<name>/</code>
|
||||
A skill is a folder under <code className="inline">~/.codewhale/skills/<name>/</code>
|
||||
with a <code className="inline">SKILL.md</code> at the root. The agent loads skill names + descriptions on
|
||||
startup and can pull in the full body via the Skill tool when relevant.
|
||||
</p>
|
||||
@@ -505,7 +500,7 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
<p className="text-ink-soft mt-3 leading-relaxed">
|
||||
Switch with <code className="inline">codewhale auth set --provider <id></code>. The
|
||||
table below is a live projection of the <code className="inline">ApiProvider</code> enum
|
||||
in <code className="inline">crates/tui/src/config.rs</code> — v0.8.45 currently has {facts.providers.length} providers.
|
||||
in <code className="inline">crates/tui/src/config.rs</code> — currently {facts.providers.length} providers.
|
||||
</p>
|
||||
<div className="hairline-t hairline-b mt-5">
|
||||
{facts.providers.map((p) => (
|
||||
@@ -517,14 +512,9 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
))}
|
||||
</div>
|
||||
<p className="mt-5 text-ink-soft leading-relaxed">
|
||||
Open-model platform direction: CodeWhale stays DeepSeek-first while shipping Moonshot/Kimi,
|
||||
OpenRouter, NVIDIA NIM, AtlasCloud, Wanjie Ark, Novita, Fireworks, and self-hosted
|
||||
SGLang/vLLM/Ollama paths.
|
||||
Kimi Code membership API keys use <code className="inline">providers.moonshot.base_url</code>
|
||||
set to <code className="inline">https://api.kimi.com/coding/v1</code> with
|
||||
<code className="inline">kimi-for-coding</code>; Kimi/Moonshot Platform API keys use
|
||||
<code className="inline">https://api.moonshot.ai/v1</code> with
|
||||
<code className="inline">kimi-k2.6</code>.
|
||||
Open-model platform direction: CodeWhale is expanding support for
|
||||
<strong> OpenRouter</strong>, <strong> Hugging Face</strong>, and <strong> self-hosted</strong> models,
|
||||
giving you full sovereignty over model choice — from cloud APIs to local deployments.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -557,4 +547,4 @@ command = "~/.deepseek/hooks/pre.sh" # / message_submit / mode_change /
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ const faqEn: FaqItem[] = [
|
||||
q: "What is CodeWhale?",
|
||||
a: (
|
||||
<>
|
||||
CodeWhale is a terminal-native coding agent for open-source and open-weight models. It runs from the <code className="inline">codewhale</code> command, streams reasoning blocks, edits local workspaces with approval gates, and can auto-route each turn to the right model and thinking level. DeepSeek V4 is the first-class model path; v0.8.45 also ships Moonshot/Kimi, OpenRouter, NVIDIA NIM, OpenAI-compatible, AtlasCloud, Wanjie Ark, Novita, Fireworks, SGLang, vLLM, and Ollama paths.
|
||||
CodeWhale is a terminal-native coding agent for open-source and open-weight models. It runs from the <code className="inline">codewhale</code> command, streams reasoning blocks, edits local workspaces with approval gates, and can auto-route each turn to the right model and thinking level. DeepSeek V4 is the first-class model path; OpenRouter is ready. Hugging Face, self-hosted, and other open-model surfaces are on the roadmap.
|
||||
</>
|
||||
),
|
||||
sources: ["README.md", "docs/ARCHITECTURE.md"],
|
||||
@@ -112,13 +112,12 @@ codewhale doctor # full connectivity check`}
|
||||
<p className="mb-2">CodeWhale ships with these built-in providers:</p>
|
||||
<ul className="list-disc pl-5 space-y-1 text-sm text-ink-soft mb-3">
|
||||
<li><strong>DeepSeek</strong> — first-class, native API. Reasoning streaming, cache metrics, thinking effort control.</li>
|
||||
<li><strong>Moonshot/Kimi</strong> — Kimi Code and Kimi/Moonshot Platform API-key modes.</li>
|
||||
<li><strong>OpenRouter</strong> — unified API for DeepSeek models and more.</li>
|
||||
<li><strong>OpenAI-compatible</strong>, <strong>NVIDIA NIM</strong>, <strong>AtlasCloud</strong>, <strong>Wanjie Ark</strong>, <strong>Novita</strong>, <strong>Fireworks</strong>, <strong>SGLang</strong>, <strong>vLLM</strong>, <strong>Ollama</strong></li>
|
||||
<li><strong>OpenAI</strong>, <strong>NVIDIA NIM</strong>, <strong>Novita</strong>, <strong>Fireworks</strong>, <strong>sglang</strong>, <strong>vLLM</strong>, <strong>Ollama</strong></li>
|
||||
</ul>
|
||||
<p>
|
||||
Set the corresponding env var (e.g. <code className="inline">OPENROUTER_API_KEY</code>) and your provider in <code className="inline">~/.deepseek/config.toml</code>.
|
||||
SGLang, vLLM, and Ollama can also run against self-hosted OpenAI-compatible endpoints.
|
||||
Hugging Face, ZenMux, and self-hosted OpenAI-compatible endpoints are on the roadmap.
|
||||
</p>
|
||||
</>
|
||||
),
|
||||
@@ -157,7 +156,7 @@ default_text_model = "openrouter/deepseek/deepseek-v4-pro"`}
|
||||
Yes. Use the <code className="inline">vllm</code>, <code className="inline">sglang</code>, or <code className="inline">ollama</code> providers with your local endpoint.
|
||||
For OpenAI-compatible endpoints (llama.cpp server, text-generation-webui, Aphrodite, etc.), you can use the <code className="inline">openai</code> provider with a custom <code className="inline">base_url</code>.
|
||||
CodeWhale also respects <code className="inline">DEEPSEEK_ALLOW_INSECURE_HTTP=true</code> for local HTTP endpoints.
|
||||
Direct Hugging Face TGI discovery remains roadmap work.
|
||||
Full Hugging Face TGI/vLLM integration is on the roadmap.
|
||||
</>
|
||||
),
|
||||
sources: ["#574", "#1303", "docs/CONFIGURATION.md"],
|
||||
@@ -212,7 +211,7 @@ default_text_model = "openrouter/deepseek/deepseek-v4-pro"`}
|
||||
a: (
|
||||
<>
|
||||
CodeWhale runs entirely on your machine. No telemetry, no cloud processing of your code.
|
||||
Sandbox backends: <strong>seatbelt</strong> (macOS), <strong>landlock</strong> (Linux). Windows keeps the same approval and terminal runtime protections, but does not advertise OS-level filesystem isolation yet.
|
||||
Sandbox backends: <strong>seatbelt</strong> (macOS), <strong>landlock</strong> (Linux), restricted tokens (Windows).
|
||||
Workspace boundaries default to <code className="inline">--workspace</code>. <code className="inline">/trust</code> lifts them.
|
||||
Approval mode is configurable per session. All credential/approval/elevation events are written to <code className="inline">~/.deepseek/audit.log</code>.
|
||||
</>
|
||||
@@ -337,7 +336,7 @@ const faqZh: FaqItem[] = [
|
||||
q: "CodeWhale 是什么?",
|
||||
a: (
|
||||
<>
|
||||
CodeWhale 是一个面向开源模型的终端原生编程智能体。通过 <code className="inline">codewhale</code> 命令启动,流式输出推理块,在有审批门槛的情况下编辑本地工作区,并可为每个回合自动选择最合适的模型和推理深度。DeepSeek V4 是一级模型路径;v0.8.45 也内置 Moonshot/Kimi、OpenRouter、NVIDIA NIM、OpenAI 兼容、AtlasCloud、Wanjie Ark、Novita、Fireworks、SGLang、vLLM 和 Ollama 路径。
|
||||
CodeWhale 是一个面向开源模型的终端原生编程智能体。通过 <code className="inline">codewhale</code> 命令启动,流式输出推理块,在有审批门槛的情况下编辑本地工作区,并可为每个回合自动选择最合适的模型和推理深度。DeepSeek V4 是一级模型路径;OpenRouter 已就绪。Hugging Face、自托管等开放模型接口已在路线图中。
|
||||
</>
|
||||
),
|
||||
sources: ["README.md", "docs/ARCHITECTURE.md"],
|
||||
@@ -425,13 +424,12 @@ codewhale doctor # 完整连接检查`}
|
||||
<p className="mb-2">CodeWhale 内建以下提供商:</p>
|
||||
<ul className="list-disc pl-5 space-y-1 text-sm text-ink-soft mb-3">
|
||||
<li><strong>DeepSeek</strong> — 一级支持,原生 API。推理流、缓存指标、思考力度控制。</li>
|
||||
<li><strong>Moonshot/Kimi</strong> — Kimi Code 与 Kimi/Moonshot 平台 API key 模式。</li>
|
||||
<li><strong>OpenRouter</strong> — 统一 API,可访问 DeepSeek 等模型。</li>
|
||||
<li><strong>OpenAI 兼容</strong>、<strong>NVIDIA NIM</strong>、<strong>AtlasCloud</strong>、<strong>Wanjie Ark</strong>、<strong>Novita</strong>、<strong>Fireworks</strong>、<strong>SGLang</strong>、<strong>vLLM</strong>、<strong>Ollama</strong></li>
|
||||
<li><strong>OpenAI</strong>、<strong>NVIDIA NIM</strong>、<strong>Novita</strong>、<strong>Fireworks</strong>、<strong>sglang</strong>、<strong>vLLM</strong>、<strong>Ollama</strong></li>
|
||||
</ul>
|
||||
<p>
|
||||
设置对应的环境变量(如 <code className="inline">OPENROUTER_API_KEY</code>)并在 <code className="inline">~/.deepseek/config.toml</code> 中配置你的提供商。
|
||||
SGLang、vLLM 和 Ollama 也可以连接自托管 OpenAI 兼容端点。
|
||||
Hugging Face、ZenMux 和自托管 OpenAI 兼容端点正在路线图中。
|
||||
</p>
|
||||
</>
|
||||
),
|
||||
@@ -470,7 +468,7 @@ default_text_model = "openrouter/deepseek/deepseek-v4-pro"`}
|
||||
可以。使用 <code className="inline">vllm</code>、<code className="inline">sglang</code> 或 <code className="inline">ollama</code> 提供商连接本地端点。
|
||||
对于 OpenAI 兼容端点(llama.cpp server、text-generation-webui 等),可以使用 <code className="inline">openai</code> 提供商并设置自定义 <code className="inline">base_url</code>。
|
||||
CodeWhale 也支持 <code className="inline">DEEPSEEK_ALLOW_INSECURE_HTTP=true</code> 用于本地 HTTP 端点。
|
||||
Hugging Face TGI 的直接发现仍在路线图中。
|
||||
完整的 Hugging Face TGI/vLLM 集成正在路线图中。
|
||||
</>
|
||||
),
|
||||
sources: ["#574", "#1303", "docs/CONFIGURATION.md"],
|
||||
@@ -525,7 +523,7 @@ default_text_model = "openrouter/deepseek/deepseek-v4-pro"`}
|
||||
a: (
|
||||
<>
|
||||
CodeWhale 完全在你的机器上运行。无遥测,不会将你的代码上传到云端处理。
|
||||
沙箱后端:<strong>seatbelt</strong>(macOS)、<strong>landlock</strong>(Linux)。Windows 保留同样的审批与终端运行时保护,但当前不宣称 OS 级文件系统沙箱。
|
||||
沙箱后端:<strong>seatbelt</strong>(macOS)、<strong>landlock</strong>(Linux)、受限令牌(Windows)。
|
||||
工作区边界默认为 <code className="inline">--workspace</code>。<code className="inline">/trust</code> 可解除边界。
|
||||
审批模式可按会话配置。所有凭证/审批/提权事件写入 <code className="inline">~/.deepseek/audit.log</code>。
|
||||
</>
|
||||
|
||||
+31
-26
@@ -15,7 +15,7 @@ const FALLBACK_STATS: RepoStats = {
|
||||
forks: 0,
|
||||
openIssues: 0,
|
||||
openPulls: 0,
|
||||
contributors: 99,
|
||||
contributors: 98,
|
||||
fetchedAt: new Date().toISOString(),
|
||||
};
|
||||
|
||||
@@ -87,15 +87,15 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
|
||||
|
||||
<h1 className="font-display tracking-crisp">
|
||||
{isZh
|
||||
? "面向开源模型的终端编程智能体。"
|
||||
: "The terminal coding agent for open models."}
|
||||
? "DeepSeek V4 的最强智能体运行框架。"
|
||||
: "The most agentic harness for DeepSeek V4."}
|
||||
</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 及其他开放权重模型的终端原生编程智能体。它读改文件、跑测试、调用 MCP 服务器,并通过审批、工作区边界和平台沙箱控制风险。"
|
||||
: " is a terminal-native coding agent for DeepSeek V4 and other open-weight models. It reads and edits files, runs tests, calls MCP servers, and controls risk through approvals, workspace boundaries, and platform sandboxes."}
|
||||
? " 是围绕 DeepSeek V4 Pro 和 Flash 构建的运行框架。规则、工具、证据和反馈循环——帮助模型持续工作,并且不断进步。DeepSeek V4 参与了部分编写。更好的框架让 V4 更有效,更有效的 V4 又让框架变得更好——这是个正向循环。"
|
||||
: " is a harness built around DeepSeek V4 Pro and Flash. Rules, tools, evidence, and feedback loops that help the model keep working — and keep improving. DeepSeek V4 helped write parts of it. A better harness makes V4 more effective, and a more effective V4 makes the harness better — it loops."}
|
||||
</p>
|
||||
|
||||
<div className="mt-8 flex flex-wrap items-stretch sm:items-center gap-3">
|
||||
@@ -155,7 +155,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
|
||||
)}
|
||||
</pre>
|
||||
<div className="mt-3 flex items-center justify-between text-[0.7rem] font-mono text-ink-mute">
|
||||
<span>{isZh ? "Linux / macOS / Windows x64" : "Linux / macOS / Windows x64"}</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>
|
||||
@@ -178,48 +178,48 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
|
||||
{isZh ? (
|
||||
<>
|
||||
<div className="p-6">
|
||||
<div className="eyebrow mb-3">01 · 终端智能体</div>
|
||||
<h3 className="font-display text-xl mb-3">编程智能体,不是聊天框</h3>
|
||||
<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 Code、Codex CLI 相同的循环:读、改、跑测试、回报。键盘驱动,住在终端里。
|
||||
实时证据高于假设。验证高于自信。清晰的权威链让模型无需猜测该服从哪条指令。
|
||||
</p>
|
||||
</div>
|
||||
<div className="p-6">
|
||||
<div className="eyebrow mb-3">02 · 开源模型优先</div>
|
||||
<h3 className="font-display text-xl mb-3">DeepSeek V4 深度集成</h3>
|
||||
<div className="eyebrow mb-3">02 · 反馈驱动</div>
|
||||
<h3 className="font-display text-xl mb-3">失败是信号,不是终点</h3>
|
||||
<p className="text-sm text-ink-soft leading-[1.9]">
|
||||
原生 DeepSeek API:推理流、缓存指标、思考力度控制。Moonshot/Kimi、OpenRouter、NVIDIA NIM、vLLM、SGLang 等同时可选。
|
||||
失败的命令、失败的测试、LSP 错误。框架让失败可读。每一次节拍都是模型可以调谐的信息,逐轮迭代。
|
||||
</p>
|
||||
</div>
|
||||
<div className="p-6">
|
||||
<div className="eyebrow mb-3">03 · 沙箱边界</div>
|
||||
<h3 className="font-display text-xl mb-3">Plan、Agent、YOLO</h3>
|
||||
<div className="eyebrow mb-3">03 · 自我修正</div>
|
||||
<h3 className="font-display text-xl mb-3">恢复内建于环境</h3>
|
||||
<p className="text-sm text-ink-soft leading-[1.9]">
|
||||
Plan 只读;Agent 风险操作前确认;YOLO 全自动。macOS 使用 seatbelt,Linux 使用 landlock;Windows 保留同样的审批与终端保护。
|
||||
子智能体、回滚、会话分叉、交接。模型不需要一次就全对。恢复机制从底层支持试错。
|
||||
</p>
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<div className="p-6">
|
||||
<div className="eyebrow mb-3">01 · terminal agent</div>
|
||||
<h3 className="font-display text-xl mb-3">A coding agent, not a chat box</h3>
|
||||
<div className="eyebrow mb-3">01 · constitutional</div>
|
||||
<h3 className="font-display text-xl mb-3">User intent above everything</h3>
|
||||
<p className="text-sm text-ink-soft leading-relaxed">
|
||||
Same loop as Claude Code or Codex CLI: reads, edits, runs tests, reports back. Keyboard-driven, lives in your terminal.
|
||||
Live evidence above assumptions. Verification above confidence. A clear chain of authority so the model never guesses which instruction to follow.
|
||||
</p>
|
||||
</div>
|
||||
<div className="p-6">
|
||||
<div className="eyebrow mb-3">02 · open models first</div>
|
||||
<h3 className="font-display text-xl mb-3">DeepSeek V4, deeply integrated</h3>
|
||||
<div className="eyebrow mb-3">02 · feedback-driven</div>
|
||||
<h3 className="font-display text-xl mb-3">Failure is signal, not a dead end</h3>
|
||||
<p className="text-sm text-ink-soft leading-relaxed">
|
||||
Native DeepSeek API: reasoning streaming, cache metrics, thinking-effort control. Moonshot/Kimi, OpenRouter, NVIDIA NIM, vLLM, and SGLang are also supported.
|
||||
Failed commands, failing tests, LSP errors. The harness makes failure legible. Each beat is information the model can tune against, turn after turn.
|
||||
</p>
|
||||
</div>
|
||||
<div className="p-6">
|
||||
<div className="eyebrow mb-3">03 · controlled</div>
|
||||
<h3 className="font-display text-xl mb-3">Plan, Agent, YOLO</h3>
|
||||
<div className="eyebrow mb-3">03 · self-correcting</div>
|
||||
<h3 className="font-display text-xl mb-3">Recovery built into the environment</h3>
|
||||
<p className="text-sm text-ink-soft leading-relaxed">
|
||||
Plan reads only. Agent asks before risky ops. YOLO auto-approves. macOS uses seatbelt, Linux uses landlock; Windows keeps the same approval and terminal protections.
|
||||
Sub-agents, rollback, session forks, handoffs. The model doesn't have to get everything right the first time. Recovery is built into the environment.
|
||||
</p>
|
||||
</div>
|
||||
</>
|
||||
@@ -260,6 +260,11 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
|
||||
? "100:1 不是性能基准,而是贡献形状:一个提示词、许多智能体小时、一个小补丁、一次维护者审查。"
|
||||
: "100-to-1 is not a throughput benchmark. It is a contribution shape: one prompt, many agent-hours, one small patch, one maintainer review."}
|
||||
</p>
|
||||
<p className={`mt-4 text-sm text-ink-soft ${isZh ? "leading-[1.9] tracking-wide" : "leading-relaxed"}`}>
|
||||
{isZh
|
||||
? "框架承担了繁重工作:宪政提示、结构化信任、反馈循环和跨会话存活的交接。模型可以专注于任务本身。因为 DeepSeek V4 参与构建了这套框架,每一次改进都让 V4 在其中变得更有效——这让下一次改进变得更容易。"
|
||||
: "The harness does the heavy lifting: constitutional prompts, structured trust, feedback loops, and handoffs that survive the session. The model is free to focus on the task. And because DeepSeek V4 helped build this harness, each improvement makes V4 more effective within it — which makes the next improvement easier."}
|
||||
</p>
|
||||
<div className="mt-6 flex flex-wrap gap-3">
|
||||
<Link href={isZh ? "/zh/contribute#recursive-harness" : "/contribute#recursive-harness"} className="px-4 py-2 bg-ink text-paper font-mono text-sm uppercase tracking-wider hover:bg-indigo transition-colors">
|
||||
{isZh ? "运行提示词 →" : "Run the prompt →"}
|
||||
@@ -325,7 +330,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
|
||||
B -->|tool call| T["read_file · edit_file · grep<br/>apply_patch · exec_shell<br/>mcp_<server>_<tool>"]
|
||||
T -->|approval Y/N| P["审批对话框<br/>approval dialog"]
|
||||
P --> B
|
||||
T -->|exec| S["平台控制<br/>seatbelt · landlock · approvals"]
|
||||
T -->|exec| S["沙箱<br/>seatbelt · landlock · win32"]
|
||||
classDef accent fill:#e9eefe,stroke:#0e0e10,stroke-width:1px;
|
||||
classDef api fill:#0e0e10,stroke:#0e0e10,color:#ffffff;
|
||||
class C api;
|
||||
@@ -337,7 +342,7 @@ export default async function HomePage({ params }: { params: Promise<{ locale: s
|
||||
B -->|tool call| T["read_file · edit_file · grep<br/>apply_patch · exec_shell<br/>mcp_<server>_<tool>"]
|
||||
T -->|approval Y/N| P["Approval<br/>dialog"]
|
||||
P --> B
|
||||
T -->|exec| S["Platform controls<br/>seatbelt · landlock · approvals"]
|
||||
T -->|exec| S["Sandbox<br/>seatbelt · landlock · win32"]
|
||||
classDef accent fill:#e9eefe,stroke:#0e0e10,stroke-width:1px;
|
||||
classDef api fill:#0e0e10,stroke:#0e0e10,color:#ffffff;
|
||||
class C api;
|
||||
|
||||
@@ -26,12 +26,12 @@ const tracksEn = [
|
||||
{ title: "Sub-agent parallel execution", note: "agent_open / agent_eval / agent_close; up to 10 concurrent sessions with bounded result handles" },
|
||||
{ title: "RLM batched processing", note: "Persistent sandboxed Python REPL with 1–16 cheap parallel children for long-input analysis" },
|
||||
{ title: "Three operating modes", note: "Plan (read-only), Agent (default), YOLO (auto-approved); orthogonal suggest / auto / never approval" },
|
||||
{ title: "Per-platform controls", note: "seatbelt (macOS), landlock (Linux); Windows keeps approvals and terminal/runtime protections while OS sandbox work remains tracked" },
|
||||
{ title: "Per-platform sandbox", note: "seatbelt (macOS), landlock (Linux); Windows containment via restricted tokens (limited)" },
|
||||
{ title: "Durable sessions + tasks", note: "Save, resume, rollback; background task queue with replayable timelines under ~/.deepseek/tasks/" },
|
||||
{ title: "Bidirectional MCP", note: "Consume tools from external servers; expose as server via `codewhale mcp`; ~/.deepseek/mcp.json" },
|
||||
{ title: "Bidirectional MCP", note: "Consume tools from external servers; expose as server via `deepseek mcp`; ~/.deepseek/mcp.json" },
|
||||
{ title: "Skills + unified slash palette", note: "~/.deepseek/skills/ auto-loading; /help, /mode, /status, /config, /trust, /feedback" },
|
||||
{ title: "v0.8.45 provider surface", note: "DeepSeek, NVIDIA NIM, OpenAI-compatible, AtlasCloud, Wanjie Ark, OpenRouter, Novita, Fireworks, Moonshot/Kimi, SGLang, vLLM, and Ollama" },
|
||||
{ title: "Moonshot/Kimi API-key setup", note: "Kimi Code plan and Kimi/Moonshot Platform API-key paths for Moonshot/Kimi sessions" },
|
||||
{ title: "OpenRouter provider", note: "First-class OpenRouter integration with 300+ models across dozens of providers" },
|
||||
{ title: "Multi-provider support", note: "Hot-swap between providers (DeepSeek, OpenAI, Anthropic, OpenRouter) per session" },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -43,8 +43,8 @@ const tracksEn = [
|
||||
{ title: "Memory typed store", note: "SQLite + FTS5 backend with graph-structured agent memory and multi-signal recall (#534–#536)" },
|
||||
{ title: "Feishu / Lark bot", note: "Chat-platform frontend over the existing runtime API (#757)" },
|
||||
{ title: "Chinese-market & i18n", note: "Locale-aware UI, platform refinements, region-specific search backends (#755)" },
|
||||
{ title: "Model Lab", note: "Curated model discovery and benchmarking for open-weight and self-hosted workflows" },
|
||||
{ title: "Provider billing and catalogs", note: "/balance capability layer plus richer live model catalogs for providers that expose listing endpoints" },
|
||||
{ title: "Hugging Face model discovery + Model Lab", note: "Browse, download, and manage models from Hugging Face Hub directly in the TUI" },
|
||||
{ title: "ZenMux / OpenAI-compatible providers", note: "Bring any OpenAI-compatible endpoint (vLLM, LiteLLM, Ollama, local) as a first-class provider" },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -92,12 +92,12 @@ const tracksZh = [
|
||||
{ title: "子 Agent 并行执行", note: "agent_open / agent_eval / agent_close;最多 10 个并发会话,通过 var_handle 有界读取结果" },
|
||||
{ title: "RLM 批量处理", note: "持久沙箱 Python REPL,支持 1–16 路廉价并行子调用,处理长文本分析" },
|
||||
{ title: "三种运行模式", note: "Plan(只读)、Agent(默认)、YOLO(自动批准);审批模式正交(建议/自动/拒绝)" },
|
||||
{ title: "跨平台控制", note: "seatbelt(macOS)、landlock(Linux);Windows 保留审批与终端运行时保护,OS 沙箱仍在跟踪中" },
|
||||
{ title: "跨平台沙箱", note: "seatbelt(macOS)、landlock(Linux);Windows 通过受限令牌实现基础隔离(功能有限)" },
|
||||
{ title: "持久化会话 + 后台任务", note: "保存、恢复、回滚;后台任务队列,可回放时间线,位于 ~/.deepseek/tasks/" },
|
||||
{ title: "双向 MCP 协议", note: "消费外部服务器工具;通过 `codewhale mcp` 暴露为服务器;~/.deepseek/mcp.json" },
|
||||
{ title: "双向 MCP 协议", note: "消费外部服务器工具;通过 `deepseek mcp` 暴露为服务器;~/.deepseek/mcp.json" },
|
||||
{ title: "技能 + 统一命令面板", note: "~/.deepseek/skills/ 自动加载;/help、/mode、/status、/config、/trust、/feedback" },
|
||||
{ title: "v0.8.45 提供商表面", note: "DeepSeek、NVIDIA NIM、OpenAI 兼容、AtlasCloud、Wanjie Ark、OpenRouter、Novita、Fireworks、Moonshot/Kimi、SGLang、vLLM、Ollama" },
|
||||
{ title: "Moonshot/Kimi API-key 设置", note: "Kimi Code 会员与 Kimi/Moonshot 平台 API key 路径" },
|
||||
{ title: "OpenRouter 提供商", note: "原生集成 OpenRouter,支持 300+ 模型,覆盖数十个提供商" },
|
||||
{ title: "多提供商支持", note: "按会话动态切换提供商(DeepSeek、OpenAI、Anthropic、OpenRouter)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -109,8 +109,8 @@ const tracksZh = [
|
||||
{ title: "记忆类型化存储", note: "SQLite + FTS5 后端,图结构 Agent 记忆,多信号召回(#534–#536)" },
|
||||
{ title: "飞书 / Lark 机器人", note: "基于现有 runtime API 的聊天平台前端(#757)" },
|
||||
{ title: "中国市场与国际化改进", note: "本地化 UI、平台优化、区域搜索引擎(#755)" },
|
||||
{ title: "模型实验室", note: "面向开放权重和自托管工作流的模型发现与基准测试" },
|
||||
{ title: "提供商账单与目录", note: "/balance 能力层,以及对支持列表接口的提供商提供更完整的实时模型目录" },
|
||||
{ title: "Hugging Face 模型发现 + 模型实验室", note: "在 TUI 中直接浏览、下载和管理 Hugging Face Hub 上的模型" },
|
||||
{ title: "ZenMux / OpenAI 兼容提供商", note: "将任意 OpenAI 兼容端点(vLLM、LiteLLM、Ollama、本地模型)作为一级提供商接入" },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -339,4 +339,4 @@ export default async function RoadmapPage({ params }: { params: Promise<{ locale
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -33,13 +33,13 @@ const cjk = Noto_Serif_SC({
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "CodeWhale · 深度求索 终端",
|
||||
title: "CodeWhale · DeepSeek V4 智能体运行框架",
|
||||
description:
|
||||
"Terminal-native coding agent for open-source and open-weight models across providers. DeepSeek V4 is first-class. Community site for installation, docs, roadmap, and live activity.",
|
||||
"The most agentic harness for DeepSeek V4. Constitutional hierarchy, structured trust, verification, and recovery — rules, tools, and feedback loops that help the model keep working.",
|
||||
metadataBase: new URL("https://codewhale.net"),
|
||||
openGraph: {
|
||||
title: "CodeWhale",
|
||||
description: "Terminal-native coding agent for open-source and open-weight models across providers.",
|
||||
description: "The most agentic harness for DeepSeek V4. Constitutional hierarchy, structured trust, verification, and recovery.",
|
||||
url: "https://codewhale.net",
|
||||
siteName: "CodeWhale",
|
||||
type: "website",
|
||||
|
||||
Reference in New Issue
Block a user