跳到主要内容

24 篇博文 含有标签「CodeWhale」

查看所有标签

CodeWhale v0.8.48 发布 —— 模型多到记不住名字?CodeWhale 帮你全接了

· 阅读需 4 分钟

CodeWhale v0.8.48 一次性把最近两个月涌现的新模型全加进了内置预设。同时新加了小米 MiMo provider、SiliconFlow 支持、Volcengine Ark 搜索、Baidu AI Search。除了模型,TUI 也有了 /purge/hunt、thinking 折叠/展开、新主题等一堆实用功能。

CodeWhale v0.8.48

模型多到记不住?CodeWhale 替你记住了

v0.8.48 的 Added 部分最长的就是那串模型列表。这个版本加入的内置模型预设包括:

  • Arcee Trinity Large Thinking
  • Qwen 3.7 Max(通义的旗舰)
  • Xiaomi MiMo v2.5(小米的大模型新版本)
  • Qwen 3.6 open-weight 系列
  • Kimi K2.6(月之暗面的最新推理增强版)
  • GLM 5.1(智谱的新旗舰)
  • Tencent Hy3
  • Gemma 4
  • Nemotron

每条都带了 routing metadata、aliases、文档。等于你直接用 CodeWhale 的 /model 切换就行,不用手动配参数。

同时 Provider 层面也同步扩张了:小米 MiMo 现在有自己的 provider 入口了(之前只能用 OpenRouter 间接访问),SiliconFlow 也补齐了静态模型列表,Volcengine Ark 和 Baidu AI Search 加进了搜索后端。

TUI 多了三个实用命令

v0.8.48 在 TUI 里加了三个新 slash 命令:

  • /purge:清理当前会话的上下文。当你发现上下文窗口快满了,或者模型开始答非所问,跑一次就能重置
  • /hunt:搜索功能。在会话历史里快速定位之前的对话内容
  • thinking 折叠/展开:模型的思考过程现在可以折叠起来,不用每次都要翻过长篇推理

这三个命令加上之前的 /model/settings,CodeWhale 的 TUI 越来越像一个小型 IDE 了,而不是简单的聊天框。

主题和通知:开发者体验的提升

TUI 新增了三个主题:terminal-transparent(终端透明背景,适合 tmux 用户)、Solarized Light、Claude 主题。底部加上了当前分支显示——在 TUI 里跑代码时,不用切出去看 git branch。

macOS 通知也来了。长时间跑的任务完成后(比如代码生成、批量重构),CodeWhale 会弹出 macOS 原生通知。如果你习惯把 CodeWhale 放在后台让它自己跑,这个功能很实用。

还有一个值得提的:审批弹窗前会显示意图摘要。就是说,CodeWhale 要执行写文件或跑命令前,先告诉你「我要做这三件事」,你再点确认——不用逐条看详细日志才知道它要干什么。

外部工具抽象和插件化

这个版本加入了 external-tool 抽象层级和可插拔的 TUI tool registry。打个比方:之前 CodeWhale 的 tool 是写死在代码里的,没有标准化的扩展点。现在第三方可以注册自己的 tool 到 TUI 了。

配套还加了自定义 slash-command 的 allowed-tools 限制——你可以指定某个自定义命令只能调用哪些 tool,不能越权。

国际化:越南语和 RISC-V

v0.8.48 加入了越南语本地化,以及 RISC-V 架构的预构建二进制。两个都是实用且敏锐的选择:越南的开发者社区增长很快,RISC-V 生态也在起步阶段。提前适配,等到需求爆发时 CodeWhale 已经在那了。

升级:

npm install -g codewhale

完整更新日志:https://github.com/Hmbown/CodeWhale/releases/tag/v0.8.48

📢 关注我,获取最新开源更新日志和开发者工具动态。如果觉得这篇文章有用,欢迎转发给身边的开发者朋友。

#CodeWhale #开发者工具 #AI编程 #模型聚合 #版本更新

CodeWhale v0.8.47 发布 —— 改名之后,第一次有人在意「编辑器里能不能选中文字」

· 阅读需 4 分钟

CodeWhale v0.8.47 封面

以前:改个名字,体验照旧

改名后的前几个版本其实一直在做"基础设施迁移"——环境变量改名、安装包整合、状态路径重定向。这些事用户感受不到,但对项目长期健康是必要的。但 v0.8.46 到 v0.8.47 之间,团队终于转向了另一个方向:用户的日常操作质量

现在:编辑器体验从"能用"到"好用"

最大的一个改动是 Composer 文本选择(#2228)。 在 CodeWhale 的编辑器里拖拽选中文字这个操作,之前一直不存在。本质原因是 TUI 渲染模式下的选区处理和原生终端编辑器(比如 VS Code)有根本不同——TUI 的每一帧都是独立渲染的,选定和高亮的跨行逻辑得自己实现。现在鼠标拖选 + Shift+方向键终于能用了,Ctrl+C 复制、Ctrl+X 剪切也一起到位。Home、End、Ctrl+A、Ctrl+E 现在会先清除当前选区再跳转。说实话,这些在 GUI 编辑器里天经地义的操作,在 TUI 里需要花不小的工程量来铺设。

另一个不起眼但实际高频的操作:复制对话。 之前复制 transcript 到剪贴板,会带上终端换行的视觉折行——粘贴到编辑器里每一行都被断开了。现在 Ctrl+C 复制时会自动去掉视觉折行的换行符(#1906),粘贴出来的就是干干净净的段落。如果你经常拿对话记录去写文档或做 prompt,这个体验提升是立竿见影的。

三个面向中国用户的小福利

  • CNB 镜像支持(#2222)。 专门为国内网络环境加的两个环境变量:CODEWHALE_RELEASE_BASE_URLCODEWHALE_USE_CNB_MIRROR,npm 安装脚本和 Rust 自更新器都支持。如果你在境内下 release 包经常被 GitHub 卡住,设前者为国内镜像地址就行
  • /config 面板现在显示生效的 DeepSeek base URL(#1967)。 小改动,但用过复杂代理设置的应该懂——配置改了一堆环境变量,想知道最终请求发到哪了之前得翻日志。现在 /config 直接显示
  • [✓] 替代 [x] 作为完成标记(#1935)。 Checkbox、plan、tool completion 的状态图标从 [x] 换成了 [✓]。纯视觉改进,但看了 [x] 几个月的用户,这个改动的感知度比想象中大

改名过渡期的"隐身"修复

v0.8.47 有几个修复是改名后才暴露出来的:

  • 并发子 agent 的 RwLock 死锁(#1856)。 改名后部署架构调整触发了 RwLock 的写竞争(读锁没释放就尝试获取写锁),多 agent 并发时直接卡死。修复方式是将 RwLock 替换为 Semaphore(1),本质上是不允许并行写了(感谢 @Fire-dtx)
  • DEEPSEEK_YOLO 环境变量在启动时没生效(#1870)。 --yolo 命令行标志和环境变量 DEEPSEEK_YOLO 之前只取其一,不会合并。意味着你设了环境变量但同时又传了其他 flag,yolo 模式可能没开
  • steer/queue 消息的 transcript 顺序修复(#2225)。 steer_user_message 插入消息时没有冲刷当前 cell,导致排队的消息渲染顺序错乱
  • Loop guard 触发时状态正确报告 Failed 而非 Completed(#1859)。 之前安全守卫被触发后,系统报告"任务已完成"——本质上是自相矛盾的

最安静但最实在的改动

状态根目录迁移(state-root migration)。 这次又迁移了 15+ 条存储路径到优先使用 ~/.codewhale、回退到 ~/.deepseek。这个工作中最真实的一点是:改一个配置路径名是最简单的一步,但翻出代码里每一个硬编码的 ~/.deepseek 并替换为 ~/.codewhale(同时兼容旧路径),才是真正做完了。README 也全部更新为 canonical CodeWhale 路径——新用户配置时不会看到 ~/.deepseek 字样。

升级:

npm install -g codewhale@latest
codewhale update

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。如果觉得这篇文章有用,欢迎转发给身边的开发者朋友。

#CodeWhale #DeepSeek #AI编程 #TUI #开发者工具

CodeWhale v0.8.46 发布 —— 环境变量换名、安装包集成、改名后的第一波问题清单

· 阅读需 4 分钟

v0.8.46 就是这个版本的「后遗症清理」。改名以来所有被忽略的角落,这次基本都走到了。

CodeWhale v0.8.46 封面

最大的痛点:环境变量到底叫什么

改名才没几天,CodeWhale 终于有了自己的环境变量体系。CODEWHALE_PROVIDERCODEWHALE_MODELCODEWHALE_BASE_URL 三个新变量正式上线,优先级高于旧的 DEEPSEEK_* 变体。

说实话,这个改动看起来只是改了个前缀,但它解决了一个真实的问题:新用户进项目后,如果 README 里写的还是 DEEPSEEK_*,第一反应一定是「这个项目是不是没人维护了」。CODEWHALE_* 变量上线意味着一个至今没被注意到的小尴尬被清掉了——你可以用纯 CodeWhale 的名词体系完成所有配置,不需要知道它前身叫什么。

旧变量当然没删——DEEPSEEK_* 继续兼容。这种「双轨制」在新老交替的窗口期是最顺滑的过渡方式:老用户不动配置,新用户不用学习历史知识。

安装体验:不再需要猜哪个文件

改名后另一个隐蔽的后遗症是安装。之前 release page 上每个平台散落着 codewhale-linux-x64codewhale-tui-linux-x64 两个独立文件,新用户只下载了 dispatcher 没下 TUI,一启动就报 companion binary 缺失。

v0.8.46 做了平台归档包(#2193):Linux/macOS 一个 tar.gz 打包两个二进制加安装脚本,Windows 一个 .zip 全部带走,外加一个便携版适合 U 盘分发。下载页面也换了——现在自动检测你的架构、显示 SHA256 校验和、提供中国镜像链接(#2192)。

有意思的是,npm 包安装脚本也一起修了(#2191)。之前 npm 包在下载阶段有时只把 dispatcher 拉下来但漏了 TUI,新用户一个 npm install -g codewhale 以为装好了,打开一看 MISSING_COMPANION_BINARY。现在两个二进制一起拉齐,不用再二次排查。

两个 TUI 日常痛点的回应

子智能体自动折叠(#2195)。长会话里 delegate 出去的 agent 在 sidebar 占一长条,session 越久越乱。现在做完的自动折叠成一个头部,不会堆满侧边栏。对比以前「一条一条手动收起」的体验,现在是「不操心」。

Shell 运行状态芯片(#2194)。后台跑 shell 任务时底部多了一个 ⏳ shell running 的标记。之前你开个 docker compose up 放在后台,切去写别的 prompt,过一会儿回来完全忘了后台还有东西在跑。看到芯片你就知道:哦对,还挂着。小改动,但每天用 TUI 拼代码的人大概率用过「忘了」这个状态。

修复里的高光

Model 名称大小写保留(#2109)。normalize_model_name_for_provider 之前一律小写所有 model 名,DeepSeek-V4-Flash 被转成 deepseek-v4-flash,某些大小写敏感的 API 后端直接 404。大部分人不设置自定义 model 名不会碰到,但如果你手动指定了特定型号,之前是必踩的坑。

grep_files 跳过大型目录.gitnode_modulestarget 三个目录被加入跳过列表。如果你的项目装了几十个依赖,grep 十几秒卡在 node_modules 里动不了的情况应该不陌生。现在扫文件之前先跳过已知的深度目录,代价不大,但受益的人不少。

版本检测用 semver 了0.8.10 > 0.8.9——这个比较之前走的是字符串字典序,所以 0.8.10 < 0.8.9,永远检测不到跨版本更新。现在用语义化版本比较,修了。

CVE-2026-8723。飞书桥接的 qs 依赖升到了 >=6.15.2(#2198)。安全更新,一行修一个 CVE。

改名之后的方向:DeepSeek 优先

CHANGELOG 里有一条很短的 Change:v0.8.46 重新聚焦 DeepSeek,先在 DeepSeek 上交付最好的体验,其他第一方 provider 规划在 v0.9.0。这跟上个版本「去掉 Moonshot branding 但完善后端」的操作一脉相承——CodeWhale 在对外宣传时把自己定位为 DeepSeek V4 的专属 harness,但内部保留了 provider 灵活性。只是优先级变了。

升级

npm install -g codewhale
# 或已安装用户
codewhale update

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #AI开发 #终端工具 #DevTools #DeepSeek

CodeWhale v0.8.45 发布 —— 我从 README 里读到了产品方向的信号

· 阅读需 6 分钟

「The most agentic harness for DeepSeek V4。」

Harness? 不是 agent,不是 assistant,不是 CLI tool——harness。我盯着这个词看了几秒,觉得它不是在玩文字游戏。

CodeWhale v0.8.45 封面

那天下午,我看了三次 README

你知道那种感觉吗——工具你每天都在用,但某天突然发现自己对它的理解错了。我本来是想看看有没有新命令,结果被 README 引到了一个叫「What Is It」的新章节里。重写的核心,是把 CodeWhale 拆成了四层:治理层级(constitutional hierarchy)、结构化的信任机制、反馈循环(feedback beats)、还有恢复机制(recovery)。每一层都在解释同一个问题:「当你把模型放在一个开放终端里,怎么确保它不乱来?」

这不是一个 agent 会自问的问题,因为 agent 的前提是「它能做任何事,我们信任开发者让它做」。这是 harness 的问题——一个 harness 知道自己是模型的外部约束框架,不是模型本身。

有意思的地方在于:这三段内容看下来,我突然意识到 CodeWhale 这 0.8.x 系列一直在悄悄搭建的到底是什么。0.8.42 的 Brother Whale 身份提示、0.8.43 的 Post-turn Receipts(每轮收据)、0.8.44 的 Agent Team UX——它们全都是 harness 的零件,不是 agent 的零件。只是之前没人给它们起一个统一的名字。

v0.8.45 给了这个名字。

RLM 会话,第一次成为一等公民

跟 README 改版关系不大但同样值得单说的一件:RLM(Read-Load-Modify)REPL 现在可以加载 session:// 引用了(#2047)。

之前 RLM 只能加载文件路径或剪贴板内容——你想要分析当前会话里的上下文?得手动把内容贴进 REPL。现在 rlm_open 支持 session:// 协议,当前会话的提示词、历史对话、session 数据作为符号对象直接暴露在 RLM 环境里。代码多行分析、跨轮次数据比对,不需要在窗口之间反复跳了。

还有一个很微妙的细节:命令面板现在支持语音输入。调出命令面板后配了一个语音转文字入口,底部会显示转录状态(#2047)。这个功能平常可能不太会用,但当你一只手端着咖啡、另一只手拿着触控板的时候,你突然就需要它了。

和 Moonshot 有关系吗?有关系

v0.8.45 悄悄把 Moonshot/Kimi 做成了第一方 provider——API 密钥认证、模型补全、CLI 授权、密钥存储集成、甚至可选的 Kimi CLI 凭据复用,全套配齐了。

等一下,body 里不是说「Kimi/Moonshot branding is removed from public surfaces」吗?是的, branding 被拿掉了——README 里不再提 Moonshot 作为并列选项,hero 文案也不列第三方提供商。但后端 provider 代码不仅没删,反而做完整了。codewhale --provider moonshot --model kimi-k2.6 现在可以直接到达 TUI,不会在配置解析后卡住。

这个「去掉 branding 但完善后端」的操作传递了一个清晰的信号:CodeWhale 正在把自己定位为 DeepSeek V4 的专属 harness,但它不想失去提供商的灵活性。你不喜欢 DeepSeek?可以用 Moonshot。你想自己搭一个兼容 API?Sub-agent 兼容性修复支持了严格 OpenAI 兼容后端。只不过在公共宣传中,DeepSeek 是唯一的头牌。

送上一张鲸鱼名字清单

子智能体终于有名字了——准确的说是鲸鱼物种名(#2035, #2016)。以前 delegate 出去的子智能体显示为 agent_xxxx,你只能靠猜它是什么角色。现在叫 Beluga、Orca、Humpback……每个名字稳定可读,原始 agent ID 保留在弹窗里可查。对比之前「全部叫 agent_xxxx」的时期,现在是翻看 transcript 时一眼就能分辨哪个 agent 做了什么事。

那些修起来比看起来重要的

v0.8.45 的修复部分有几个值得展开的:

Sub-agent 完成回传适配(#2057, #2120):回传现在用 chat-template 安全的角色字段,在终端更新前发出。这修复了严格 OpenAI 兼容/自托管后端的兼容问题。「严格兼容」的 API 通常对角色字段类型敏感,之前子智能体完成任务后通知回主会话时,那些自建后端的 API 不认,导致任务挂了但母会话不知道。现在改了角色标识的格式,所有兼容 API 都能收到完成信号了。

Self-hosted 预算窗口不再干烧(#2060):窗口小于 500K token 时,output 保留后压扁预检压缩缓冲,结果输入预算直接归零——你刚搭好一个本地模型,还没来得及用,它就说「上下文不够了」。修复后输出保留后仍然留出可用输入预算,小窗口模型也能正常跑长会话。

Goal prompt 一打开就能干活(#2097):开启 goal 模式后,agent 直接开始执行,不再需要你额外敲一下「开始吧」。

审批流一键确认(#2143):Enter 直接提交所选审批选项,Destructive 警告仍然可见,Abort 取消当前轮次而不是只拒绝当前工具调用。

YAML block scalar 解析(#1908, #1907):SKILL.md frontmatter 里多行描述用 >| 标识符时,折叠块标量、字面量标量、三种 chomp 模式全部正确解析了。如果你的技能文件 frontmatter 里写过长描述,大概率遇到过解析错位的问题——现在修了。

list_dir 和 file_search 可取消(#2035):长目录遍历和文件搜索现在响应取消/停止请求,30 秒 fallback 超时。之前碰到深度嵌套的 node_modules,终端就僵住了。

升级

npm install -g codewhale
# 或已安装用户
codewhale update

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #DeepSeekV4 #终端工具 #AI开发 #开源项目