[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-76131":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":16,"starSnapshotCount":16,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},76131,"DeepSeek-Code-Whale","usewhale\u002FDeepSeek-Code-Whale","usewhale","Whale — blazingly fast, terminal-first AI coding agent for DeepSeek. ~98% prompt cache hit rate, 1M context, MCP tools, dynamic workflows.","",null,"Go",592,44,25,7,0,173,184,439,519,8.96,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36],"coding-agent","deepseek","deepseek-agent","deepseek-cli","deepseek-coding-agent","go","llm","mcp","skills","terminal","2026-06-12 02:03:40","# Whale\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Flogo.svg\" alt=\"Whale — 面向 DeepSeek 的终端 AI 编程 Agent\" width=\"640\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>简体中文\u003C\u002Fstrong> · \u003Ca href=\".\u002FREADME.en.md\">English\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fusewhale\u002FDeepSeek-Code-Whale\u002Freleases\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fusewhale\u002FDeepSeek-Code-Whale?label=release\" alt=\"release\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fusewhale\u002FDeepSeek-Code-Whale\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fusewhale\u002FDeepSeek-Code-Whale\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg\" alt=\"CI\">\u003C\u002Fa>\n  \u003Ca href=\".\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fusewhale\u002FDeepSeek-Code-Whale\" alt=\"license\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fusewhale\u002FDeepSeek-Code-Whale\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fusewhale\u002FDeepSeek-Code-Whale?style=flat&logo=github&label=stars\" alt=\"GitHub stars\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Whale 是一个非官方的 DeepSeek CLI \u002F DeepSeek 编程 Agent。\u003C\u002Fstrong>\u003Cbr>\n  运行在终端里，支持读代码、改代码、运行命令、MCP 和 Skills。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>90% live prefix-cache hit\u003C\u002Fstrong> · \u003Cstrong>~30x cheaper per task vs Claude Code\u003C\u002Fstrong> · terminal-first · open source\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Ca href=\".\u002FROADMAP.md\">📋 开发路线图 · 查看当前方向和可认领任务\u003C\u002Fa>\u003C\u002Fp>\n\n---\n\n## 快速开始\n\n使用脚本安装：\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fusewhale\u002FDeepSeek-Code-Whale\u002Fmain\u002Fscripts\u002Finstall.sh | sh\n```\n\n使用 Homebrew 安装：\n\n```bash\nbrew install usewhale\u002Ftap\u002Fwhale\n```\n\nWindows:\n\n```powershell\nirm https:\u002F\u002Fraw.githubusercontent.com\u002Fusewhale\u002FDeepSeek-Code-Whale\u002Fmain\u002Fscripts\u002Finstall.ps1 | iex\n```\n\n安装脚本会优先按系统架构选择 Windows x64 或 ARM64 包，并把 `whale.exe` 加入当前用户的 `PATH`。如果旧版本没有 ARM64 包，会回退到 x64 emulation。也可以从 [GitHub Releases](https:\u002F\u002Fgithub.com\u002Fusewhale\u002FDeepSeek-Code-Whale\u002Freleases) 手动下载对应的 Windows zip。\n\n首次运行：\n\n```bash\nwhale setup\nwhale doctor\nwhale\n```\n\n升级：\n\n```bash\nbrew upgrade usewhale\u002Ftap\u002Fwhale\n# 或重新运行安装脚本\n```\n\nWhale 当前使用 DeepSeek API。运行前请先在 [DeepSeek Platform](https:\u002F\u002Fplatform.deepseek.com\u002F) 创建 API key。API 细节见 [DeepSeek API docs](https:\u002F\u002Fapi-docs.deepseek.com\u002F)。\n\n> **平台支持：** Whale 当前支持 **macOS**、**Linux** 和 **Windows**。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshot-02.png\" alt=\"Whale TUI 截图\" width=\"860\">\n\u003C\u002Fp>\n\n也可以直接运行一次性任务：\n\n```bash\nwhale exec \"解释这个仓库是做什么的\"\nprintf '总结当前目录\\n' | whale exec\n```\n\n---\n\n## 和其他工具有什么区别\n\n|                          | Whale | Claude Code | Codex CLI | Cursor | Aider |\n|--------------------------|-------|-------------|-----------|--------|-------|\n| 主要形态                 | 终端 TUI\u002FCLI | 终端 Agent | 终端 Agent | IDE | CLI |\n| 默认后端                 | DeepSeek | Anthropic | OpenAI | 多模型 | 多模型 |\n| DeepSeek 优化            | 是 | 否 | 否 | 否 | 有限 |\n| Prefix-cache 友好        | 是 | n\u002Fa | n\u002Fa | 取决于模型 | 有限 |\n| 本地读写代码             | 是 | 是 | 是 | 是 | 是 |\n| 运行 shell \u002F test        | 是 | 是 | 是 | 部分 | 是 |\n| `\u002Fask` 只读模式          | 是 | 部分 | 部分 | n\u002Fa | 部分 |\n| `\u002Fplan` 规划模式         | 是 | 是 | 是 | n\u002Fa | 部分 |\n| MCP                      | 是 | 是 | 取决于版本 | 部分 | 部分 |\n| Skills \u002F 工作流复用      | 是 | 是 | 是 | 部分 | 有限 |\n| 开源                     | 是 | 否 | 是 | 否 | 是 |\n\nWhale 的重点不是“支持最多模型”，而是把 DeepSeek API 变成一个更稳定、便宜、适合长时间打开的本地编程 Agent。\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>为什么 DeepSeek-only？\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nDeepSeek 的低价只是第一层优势。真正适合做长会话编程 Agent 的关键，是 prefix cache。\n\nDeepSeek 的 prefix cache 对字节稳定很敏感。Whale 的工具循环围绕这个特点设计：尽量保持追加式 turn、稳定的上下文顺序和可恢复的会话记录，让长任务能持续吃到缓存收益。\n\n这也是 Whale 不急着做通用 provider 抽象的原因。Claude、OpenAI、DeepSeek 的缓存机制、tool-call 形态和 reasoning 行为并不一样。强行套一层通用接口，通常会牺牲 DeepSeek 最有价值的部分。\n\nWhale 针对 DeepSeek 做了这些适配：\n\n| 通用 Agent 常见假设 | DeepSeek 实际会发生 | Whale 的处理 |\n|---------------------|---------------------|--------------|\n| tool-call JSON 总是稳定 | payload 可能 malformed、被转义或混进 reasoning | schema-guided repair \u002F scavenge 路径 |\n| 深层 tool schema 能稳定保留 | 部分深层嵌套参数可能丢失 | 工具参数尽量扁平化 |\n| 失败工具需要统一 replan | 有些失败应该原样反馈给模型 | 更细的失败分类和 recovery 策略 |\n| 用户取消就是普通工具失败 | 取消后不应该继续恢复或补计划 | 中断路径单独处理 |\n| reasoning 深度只靠 prompt | DeepSeek 暴露 `reasoning_effort` | runtime 里保留 effort 控制 |\n\nWhale 会先按 schema 校验工具参数，再只在失败路径上修复常见可恢复形状错误，比如 optional 字段传 `null`、数组被字符串化、数组字段传裸字符串、路径被模型写成 Markdown 链接，以及 `read_file` 只给 offset\u002Flimit 的情况。修复和无效输入统计可以在 `\u002Fstats` 里查看。\n\nWhale 的目标是让 DeepSeek 的价格优势、缓存优势和编码能力真正落到终端工作流里。\n\n\u003C\u002Fdetails>\n\n---\n\n## Whale 能做什么\n\n- **理解代码库**：读取文件、搜索代码、总结项目结构和关键模块。\n- **修改代码**：生成 patch、编辑文件、补测试、修 bug、重构局部模块。\n- **运行命令**：执行 shell 命令、测试、构建、诊断脚本，并把结果带回对话。\n- **交互式工作流**：在本地 TUI 里连续对话，支持会话保存和 `whale resume` 恢复。\n- **只读提问**：用 `\u002Fask` 进入只读问答模式，适合先理解代码，不让 Agent 修改文件。\n- **先规划再执行**：用 `\u002Fplan` 先产出计划，再决定是否让 Agent 实施。\n- **扩展工具能力**：通过 MCP 接入外部工具，通过 Skills 复用固定工作流。\n- **无头执行**：用 `whale exec` 在脚本、CI 或一次性任务里运行单条 prompt。\n- **1M context window**：DeepSeek V4 模型自动启用 1M token 上下文，无需手动配置。\n\n## 常用命令\n\n| 命令 | 作用 |\n|------|------|\n| `whale` | 启动交互式 TUI |\n| `whale setup` | 保存 DeepSeek API key |\n| `whale doctor` | 运行健康检查 |\n| `whale exec \"prompt\"` | 非交互运行单条 prompt |\n| `whale --dangerously-skip-permissions` | 本次运行跳过工具审批提示，适合外部 sandbox 或完全可信仓库 |\n| `whale migrate-config` | 迁移 Whale v0.1.8 及以前的旧配置到 `config.toml` |\n| `whale resume` | 打开会话选择器 |\n| `whale resume --last` | 直接恢复最近会话 |\n| `whale resume \u003Cid>` | 恢复指定会话 |\n| `\u002Fmodel` | 切换模型、reasoning effort 和 thinking |\n| `\u002Fpermissions` | 调整工具审批模式 |\n| `\u002Ffocus` | 切换专注视图，隐藏 thinking 和工具细节 |\n| `\u002Fask [prompt]` | 只读提问模式 |\n| `\u002Fplan [prompt]` | 先规划，再决定是否执行 |\n| `\u002Fstatus` | 查看当前 session、模式、模型和配置状态 |\n| `\u002Fcompact` | 压缩当前会话上下文 |\n| `\u002Finit` | 为当前仓库生成 AGENTS.md |\n| `\u002Fskills` | 打开 Skills 菜单，列出、插入或启用\u002F禁用本地 skills |\n| `\u002Fplugins` | 打开内置插件管理器，启用或禁用官方插件 |\n| `\u002Fmemory` | 查看或管理官方 memory 插件保存的长期记忆 |\n| `\u002Fmcp` | 查看 MCP server 状态 |\n\n## MCP\n\nWhale 支持从 MCP server 加载外部工具。\n\n配置和支持范围见 [docs\u002Fmcp.md](docs\u002Fmcp.md)。\n\n## Skills\n\nWhale 支持本地 Agent Skills，用于复用固定工作流、团队规范或特定工具用法。\n\n在 TUI 里输入 `$` 可以搜索并插入 `$skill-name`。也可以运行 `\u002Fskills` 打开菜单：`List skills` 会进入同一个 `$` picker，选中后把 `$skill-name` 放进输入框；`Enable\u002FDisable Skills` 会打开可搜索的开关面板。\n\n更多说明见 [docs\u002Fskills.md](docs\u002Fskills.md)。\n\n## Plugins \u002F Memory\n\nWhale 当前内置官方 memory 插件，用于保存和回忆长期记忆。使用 `\u002Fmemory` 查看或管理记忆，使用 `\u002Fplugins` 打开插件管理器并按 Space 启用或禁用插件。\n\n更多说明见 [docs\u002Fplugins.md](docs\u002Fplugins.md)。\n\n## 配置\n\nWhale 使用 `~\u002F.whale\u002Fconfig.toml` 作为全局配置，使用 `.\u002F.whale\u002Fconfig.toml` 作为项目配置。\n\n只有在你使用过 Whale v0.1.8 及以前版本，并且本地存在 `preferences.json` 或 `settings.json` 时，才需要运行一次：\n\n```bash\nwhale migrate-config\n```\n\n如果你从 Whale v0.1.9 或更新版本开始使用，不需要运行这个命令。\n\n更多说明见 [docs\u002Fconfiguration.md](docs\u002Fconfiguration.md)。\n\n## 是否支持 Coding Plan？\n\n支持。Whale 可以通过自定义 API endpoint 连接兼容 `\u002Fchat\u002Fcompletions` 的 Coding Plan \u002F 第三方 DeepSeek 接口。\n\n以阿里云百炼为例，在 `~\u002F.whale\u002Fconfig.toml` 中配置：\n\n```toml\nmodel = \"deepseek-v4-flash\"\nreasoning_effort = \"high\"\nthinking_enabled = true\n\n[api]\nbase_url = \"https:\u002F\u002Fdashscope.aliyuncs.com\u002Fcompatible-mode\u002Fv1\"\n```\n\n然后配置对应的 API key：\n\n```bash\nDEEPSEEK_API_KEY=sk-... whale\n```\n\n也可以运行：\n\n```bash\nwhale setup\n```\n\n注意：\n\n- `base_url` 填接口根地址，不要包含 `\u002Fchat\u002Fcompletions`，Whale 会自动拼接。\n- `DEEPSEEK_BASE_URL` 环境变量会覆盖 `~\u002F.whale\u002Fconfig.toml` 里的 `[api].base_url`。\n- Whale 当前仍然优先适配 DeepSeek 风格的模型、流式输出、thinking、tool calls 和 prefix-cache 工作流。第三方 endpoint 是否完整可用，取决于服务端兼容程度。\n\n---\n\n## Non-goals\n\n- **不做通用多模型外壳。** Whale 当前就是 DeepSeek-only，优先把 DeepSeek 的缓存、工具调用和成本优势做好。\n- **不做 IDE。** Whale 是 terminal-first，和你的 shell、git、测试命令一起工作，不替代 Cursor 这类 IDE。\n\n## 项目状态\n\nWhale 仍在快速迭代中，建议先用于个人项目、实验仓库或可回滚的开发流程。功能和交互可能会继续变化。\n\n> **免责声明：** 本项目与 DeepSeek Inc. 无关，系独立开源社区项目。\n\n## 参与贡献\n\n关于克隆、开发、测试、issues 和 pull requests，请查看 [CONTRIBUTING.md](CONTRIBUTING.md)。\n\n当前开发方向和可认领任务见 [ROADMAP.md](ROADMAP.md)。\n\n## 安全\n\n如果是安全相关问题，请查看 [SECURITY.md](SECURITY.md)。\n","Whale 是一个专为 DeepSeek 模型优化的终端 AI 编码助手，支持 MCP、Skills 和缓存优化。它使用 Go 语言编写，具备高效的前缀缓存机制，能够显著降低任务成本，并且提供高达 90% 的缓存命中率。Whale 可以读取和修改代码、运行命令以及执行多步骤任务，非常适合需要在终端环境中进行高效编程和自动化工作的开发者。其开源特性允许用户根据自身需求进行定制和扩展，适用于 macOS、Linux 和 Windows 平台。",2,"2026-06-11 03:54:34","CREATED_QUERY"]