Repository navigation
Releases: ypyik0669/claude-web
Release list
0.3.2
修复
中转与模型
- 中转日志里不再满是「非流」的 Claude 请求,也不再因此 403、断连。 每一轮结束时,Claude Web 都会问一次「上下文用了多少」;自带的内核按部分数 token,中转没有数 token 的接口时,就每部分发一个非流式、只要 1 个 token、不带 Claude Code 系统提示词的请求(一轮约 30 个,模型是主模型)——中转日志里就是一串「非流 1 t/s」,按 Claude Code 指纹查的中转直接拒成 403,还按主模型收了这些输入的钱。现在输入框的上下文小环和状态条按上一轮回答的用量算(和官方 CLI 的小指示一样,不发请求);信息栏的上下文明细只在展开时取一次、点「刷新」再取;自带的内核(2.8.4-cw.6)数 token 失败时本地估,和官方客户端一样,不再发这种请求。
- gpt-6 系列(比如 gpt-6-astra)的思考强度生效了。 以前只认到 gpt-5,gpt-6 被当成不会推理的模型:强度只写进提示词,请求里没有
reasoning_effort,中转日志的「推理强度」一栏是空的。现在 gpt-5 及以后的 gpt 都按 OpenAI 的推理模型发原生参数。 - 经 WorkBuddy 组件的 DeepSeek 能看到思考过程了。 网关把 OpenAI 格式上游的
reasoning_content(DeepSeek、Qwen、Kimi、WorkBuddy)/reasoning全丢了;现在转成思考块,显示在回答前面。 - 只用 Gemini 网页 / WorkBuddy 的对话,第一句不再提示「超过 170 KB」。 精简工具集时内核也没了工具搜索,所有 MCP 工具的说明全部内联,反而比全套还大;现在这类对话不带 MCP 服务器(62 KB 左右)。代价:这类对话没有联网、共享记忆这些工具。对话过大的提醒会写出是哪个对话、哪个成员。
DeepSeek Harness
- 对话库里的 dsh 对话改成「在 Claude 里接着聊」。 以前发出去只有自己那句,回复是
no API key for provider route。现在把整段历史写成一个新的 Claude 对话,用你选的(或默认的)供应商接着聊,以后再发都进同一个;dsh 里后来又聊的会自动补进来(打开时、发送前、dsh 一写入时)。dsh 的日志一个字节都不写。也修了读取的三处错:升级后的新版日志(v4)没读到最新几轮、两种工具结果格式、重复的工具调用。
内置浏览器
- 能登录 Google 了。 以前一律「Couldn't sign you in / This browser or app may not be secure」:我们改过的 UA 说自己是 Chrome,浏览器给出的特征却不是,Google 当成冒充。现在只在 Google 登录页上用 Electron 原样的 UA,别的网站照旧。
Site media
Recordings for the website’s theme showcase (scripts/record-themes.cjs). Not a release of the app.
engine 2.8.4-cw.6
claude-web-engine 2.8.4-cw.6: token counting without count_tokens estimates locally (no non-streaming max_tokens:1 requests); gpt-6 and later are OpenAI reasoning models (reasoning_effort).
0.3.1
修复
DeepSeek Harness
- 官网下载的桌面版能被认出来了,装在哪个目录都行。 官网那个下载按钮给的是 Electron 桌面版,
dsh命令在它的安装目录里,而且默认不写 PATH——所以以前一律显示「未安装」。现在从 Windows 的卸载项读安装目录(改过安装位置也照样找得到),再兜底常见目录和 macOS 的.app。点一下「重新检测」,或者等一分钟,就能看到。 - 而且能起来。 那个
dsh启动器是用桌面版自带的 Electron 跑app.asar里的脚本,普通node读不了 asar,所以这类启动器改为经cmd.exe执行,不再被拆成node跑。 - 它的对话按原样读出来了。 这个运行时会把自己的注入(当前目录 / 沙箱快照、技能清单)也记成用户消息——现在跳过这些,历史里不会再像是你问一句前粘了一大段;思考块也重新显示出来了。历史会话可以接着聊,新的回合写回同一个会话。
另外修了两个在 macOS / Linux 上必挂的测试(路径按本机平台拼、临时目录是符号链接)。
0.3.0
新增
网关:一个地址接住所有账号
- 网关对普通用户更简单了。 打开只有 概览 / 账号 / 任务。添加一个账号会自动进「默认」组,根路径
/v1直接能用,不用先建池子、组和密钥;概览上就是开关、地址和「复制密钥」。账号池、分组与路由、密钥、日志、局域网都收进「高级设置」。任务页顶部是三个一键预设(每天签到、每 6 小时保活、每天刷新额度),添加账号的对话框是三个大按钮 + 一个「添加」。 - 地址固定了:以前每次重启端口都会变,复制给别人用的地址第二天就失效。现在网关有自己的固定端口,改端口时先确认新端口能监听才切换,失败保留原来的。注意:装好的旧版本升上来之后端口会变一次,以概览页显示的为准。
- 网关组就是供应商:在网关里加一个账号、组出现了,输入框的模型菜单里就有这个组的模型,不用再去设置里手动加一条供应商。删掉那条供应商表示「我不想在菜单里看到这个组」,之后不会再自动建回来。
- Gemini 网页和 WorkBuddy 账号也能放进网关,和 Claude 账号一起用。 两个家族各自在本机跑一个固定版本的 MIT 组件:第一次用时下载并校验 SHA256(安装包里已经带了就不用下载),自动监督、健康检查和重启,日志在界面里能看。它们的模型会出现在
/v1/models,账号池也能作为网关成员,和 Claude 账号、供应商一起做故障转移。 - Gemini 网页账号用本机 Chrome 登录。 点「登录 Google 账号」,会打开你电脑上的 Chrome(没有 Chrome 就用 Edge)到 Google 登录页;登录进 Gemini 后关掉那个窗口,账号自动加进来。用的是单独的登录状态,不影响你平时用的 Chrome。也可以粘贴 cookie(每行一个,支持批量),粘贴时会实时提示还缺哪几项、只复制了 gemini.google.com 那一栏时也会指出来。
- 住宅 IP 出口和防封设置。 Gemini 卡片里可以管理出口池(http / https / socks5,带账号密码也行):每个账号会记住用过的出口并一直从同一个 IP 出去;登录窗口也走同一个出口(登录和调用同一个地址,风控最稳)。出口连不上会直接报错,不会悄悄改成本机直连。出口连续失败会自动熔断、冷却后放回,界面上能看到每个出口的失败次数和熔断状态。另有每个出口的并发 / 每分钟 / 每小时上限、出口全熔断时是否允许直连、cookie 失效时是否降级匿名,改完立即生效。
- 登录掉了会自己恢复。 用该账号自己的 Chrome 登录状态在后台打开一次 Gemini,让 Chrome 把快过期的那张票续上,读回来写回网关;救不回来时账号行会显示「重新登录」,点一下重新登录即可,登录成功后自动启用。你手动停用的账号永远不会被自动打开。
- 密钥和局域网:密钥
cwg-开头,落盘只存哈希(加盐 SHA256),界面上只显示前后几位。局域网监听要单独打开,可以配 IP 白名单、CORS 来源、请求体上限,所有请求记审计日志(不记提示词和密钥)。不做公网监听。 - 新增「任务」页管理账号日常:签到、保活、成长任务、猫咪旅行、抽奖、活动、刷新额度和账号检查。任务可以按 cron 时间或间隔执行,也能立即执行;错过的会在 7 天内补跑一次,更早的直接丢弃。运行历史会列出每个账号的结果。
对话
- 对话里的代码块可以直接运行。 Bash / Shell / PowerShell / Python / Node 的代码块多一个运行按钮:确认后代码以你的身份在这台电脑上、这个对话的目录里执行,最多 30 秒、输出最多 64 KB,结果显示在代码块下面。只有本机窗口能运行,手机和远程设备不行。
- 选中文字就出菜单(照官方桌面版的样子):复制、复制代码块、复制整条消息 / 复制为 Markdown、引用到输入框、钉住这条回复、从这里分叉。不用再右键。桌面版的右键菜单也补上了(以前选中文字右键什么都不出)。
- 思考用的语言:新增一个设置,可以让模型用某种语言写思考过程(代码、路径、标识符照旧),回答仍跟着你说话的语言。每个对话也能单独改。
模型
- 子代理可以用任何模型,和主对话无关。 「子代理」菜单里列出所有接上的供应商的模型,不管这个对话用的是 Claude 账号还是哪家供应商。换主模型、把对话换到别的供应商,子代理的选择都不变。选了子代理模型之后,系统提示里会明确要求主模型把活派给子代理,不用每次在提示里说。
对话库
- Cursor 的历史可以只读查看,另外本机扫描能发现 WorkBuddy、Zcode、Hermes、OpenClaw、Kiro、Windsurf 等工具的对话目录(只读,不改它们的数据)。
- DeepSeek Harness 的历史能看,也能接着聊(像 Codex 那样)。
桌面版
- Mac 版也能自己更新了,和 Windows 一样。 新版本在后台下载好,点「立即重启更新」就换上新版并重新打开,选「稍后」就在退出软件时装好。不需要 Apple 签名:应用直接替换「应用程序」里的自己。替换不了的时候(直接从 dmg 或「下载」里打开的、所在文件夹没有写入权限、macOS 的「App 管理」不允许)还是像以前一样给下载链接,并说明原因。0.2.9 及更早的版本还要最后手动更新一次。
- 安装包里带上了 Gemini / WorkBuddy 组件,第一次用不再需要下载。
改进
- Gemini 网页反代快了很多。 一句「你好」原来要等 26 秒才出第一个字、90 多秒才说完,因为它会把整套工具定义(约 100 KB)连同系统提示一起发给网页端,超过组件 128 KB 的上限就转成附件上传,模型读完附件才开始回答。现在这类对话只带 7 个核心工具(读、改、写、执行命令、搜内容、找文件、待办),首字降到 1–2 秒。实测一句「你好」:修复前 26.4 秒 / 95.7 秒,修复后 1.2 秒 / 6.4 秒。
- 对话太长会提醒你。 这类对话每轮都要重发全部内容,超过 128 KB 时会在对话里提示一次(带上当前大小),建议
/compact或开新对话;超过约 163 KB 网页端还会截断末尾。压缩过之后再涨上来会重新提醒。 - 模型列表会跟着登录状态更新:没登录时组件只报两个匿名模型,登录后才是你订阅的完整列表(含
gemini-4-argon)。现在会定时刷新,Gemini 卡片上也有「刷新模型」按钮。菜单里每个模型后面有一句说明(快 / 写代码推荐 / 思考 20–40 秒 / 旗舰最慢等)。 - 防封:出口熔断、失败计数、账号被组件自动停用时自动检查恢复,这些都在界面里看得到、改得动。
- 流式输出不卡了。 以前每收到一小段就整页重画,DeepSeek 一个字一个 token 时界面会落后几十秒(实测 5 秒的输出画了 49.6 秒)。现在每一帧只渲染一次,落后降到 0.05 秒。
- 计划卡、问题卡、思考框的几处修正:后台子代理回来后计划卡不会跟着这个任务跑掉;详细视图里计划不重复显示;等你回答时不转圈;问题卡里按 Enter 能提交;思考框流式输出时自动跟到底部。
- DeepSeek V4 的上下文窗口按 1M 算(以前按 128K,压缩太频繁,缓存命中只有 26–33%)。
- 改了供应商设置对正在跑的对话生效:这一轮跑完后重开,不用手动重开会话。
- 全应用的原生下拉框换成了统一的组件,键盘操作、手机上的选择器一致了。
- 连接器第一次添加就先预热:npx / uvx 的条目第一次启动要下载包,以前刚加上就显示「连不上」,现在会等它起来。
- 首屏更快了:英文翻译表不再打进首屏(中文界面用不到),首次打开要下载的文件从 2.36 MB 降到 4 KB,其余按需加载。手机端远程打开也受这个影响。
修复
- 从别家模型切到 Claude 时不再每轮 400。 历史里别的模型留下的空思考块会被清理掉(代价是那几轮的思考过程从历史里没了)。
- 用户自己在 settings.json 里配的中转也能分流子代理了:以前子代理的选择会被静默忽略,落回别的模型。
- 共享记忆的 MCP 名字改成
claude-web-memory,不再和官方的memory撞名。 - 添加账号弹窗的几处:去掉了「我了解」那个勾选(多此一举);WorkBuddy 的「扫码登录 / 粘贴 JSON」换成左右切换,不再被撑成两行;取消按钮回到弹窗标准的按钮位置。
- 侧栏里「把 X 等工具里的对话也列在这里?」被截断:名字多、名字长的时候会显示不全,现在允许换三行。
0.2.9
新增
- 子代理可以用任何模型,和主对话无关。 「子代理」菜单里列出所有接上的供应商的模型,不管这个对话用的是 Claude 账号还是哪家供应商(以前只有主对话在 Anthropic 格式的供应商上才能选别家)。换主模型、把对话换到别的供应商,子代理的选择都不变。菜单底下的勾改成「新对话都这样」,所有新对话一个默认;以前按供应商设的默认会自动沿用。对话在供应商上时,子代理也能用你 Claude 账号里的模型。
- 计划放在对话最底下,和官方桌面版一样:最新一轮的计划(打勾、正在做的那一步)一直在最后。
修复
- 在新对话页开的对话,输入框下面的统计(几轮 · 几步 · tok/s · 缓存命中率)一直不出来,现在会出来。
- 贴进输入框的长条截图显示成一个小缩略图,不再占满一整行(点开还是整张图)。
移除
- 输入框上面的 statusLine 拿掉了:里面的模型、分支、额度这些界面里本来就有。
0.2.8
修复
- 0.2.7 打不开:弹出「启动失败:Error: server exited early (code 1)」。安装包里漏了一个「从其它工具导入」要用的包。已经装了 0.2.7 的,请到 Releases 下载 0.2.8 直接覆盖安装,对话和设置都还在。0.2.7 在检查更新之前就退出了,所以没法自己更新。
- 从这个版本起,Windows 安装版如果启动失败,会先去找新版本,找到就问你要不要装上,不再直接退出。
0.2.7
新增
- 界面照官方桌面版重新排了一遍。 对话右边多了一栏信息卡:环境、上下文用量明细、连接器、改动(可以直接建 PR)、后台任务、钉住的回复,能折叠、拖动排序。对话标题栏右边有 审阅 / 浏览器 / 文件 三个按钮,⋮ 里多了 旁聊、后台任务、保持电脑唤醒。输入框里只剩一行(+ · 文字 · 麦克风 · 发送),权限、模型和思考强度、上下文小环挪到框下面一行。回答在跑时 Ctrl+Enter 插话(Enter 还是排队)。你在
~/.claude/settings.json里配的 statusLine 会带着颜色画在输入框上面。 - 新对话页也是一行输入框,下面一排:代码 / 聊天、在哪台电脑上开、文件夹、分支、权限,模型在右边。
- 新对话页有动态背景「字流」。 字母像水里的墨顺着水流漂;鼠标经过会把字拨开,点一下溅出一圈主题色的字,在输入框里打的字会从光标处飘出来汇进水流。设置里的「新对话页的动态背景」可以换成「字场」(字点阵 + 点击涟漪)或者关掉;开了「减少动态效果」只有一张静止的画面,手机上不显示。
- Claude 的思考能看到内容了。 以前思考那一行展开是空的:现在的 Claude 模型默认不把思考内容发回来,现在会要(官方客户端和自带的内核都会)。思考那一行用思考摘要的标题当名字,正在做的那一步有四个点轮流亮。
- 输入框下面有这个对话的统计:几轮 · 几步 · tok/s(每轮模型自己用的时间算出来的生成速度)· 缓存命中率。窗口窄时整项整项地省掉。
- 子代理可以用任何供应商的模型。 主对话在 Anthropic 格式的供应商上时,「子代理」菜单里能挑别家供应商的模型(比如 DeepSeek):子代理的请求自动送到那一家(格式会转换),主对话的请求照原样发给原来的供应商。
- 从其它工具导入(供应商列表和连接器页上的「从其它工具导入…」):读 Hermes、CC Switch、Codex、OpenCode、Continue、Cursor、Windsurf、Kiro、Claude Desktop、VS Code、Cline、Roo、Gemini / Qwen CLI、Zed、Goose 和正在运行的 Ollama 里配好的供应商和 MCP 服务器,勾选后导入;只读,不改它们的文件,已经有的会跳过。Mirasim 和 Cherry Studio 的设置加密存在浏览器数据库里,读不了,会提示你手动复制。
- 下一句提示:一轮结束后,空着的输入框里会有灰色的下一句建议,按 Tab 或 → 采用(设置里可以关)。
- 查看模式:普通 / 显示思考 / 详细,Ctrl+O 或对话头的菜单切换。
- 旁聊:
/btw或 Ctrl+; 问一句关于这个对话的事,对话本身听不到;「放进对话」把回答放进输入框。 - @ 文件:输入 @ 列出项目里的文件(照 .gitignore),选中后作为 @路径 放进消息。
- 快捷键(跟官方一样):Ctrl+/ 看全部快捷键;Alt+M 模型菜单;Ctrl+Shift+E 思考强度;空输入框里 Shift+Tab 切权限模式(只在安全的几种之间切);菜单里按 1–9 直接选;Ctrl+\ 关掉当前分屏;Ctrl / Cmd + 点侧栏里的对话,在旁边分屏打开;Alt+← / → 在看过的对话之间前进后退(macOS 上是 ⌘[ ⌘],鼠标侧键也行)。
- 审阅里能给 diff 的行写评论:点一行写评论,Ctrl+Enter 把所有评论作为一条消息交给 Claude。
- 代码审查卡:
/code-review的结果按文件列出,每条可以「修这一条」或「忽略」,也可以一次「修复还开着的」。 - PR 状态条:当前分支有 PR 时,对话上方显示 PR 和它的检查状态;CI 菜单里可以开「CI 失败自动修」(每次推送后让对话修一次)和 GitHub 自动合并,PR 合并或关闭后对话自动归档(可关)。
- 文件路径右键菜单:加进下一条消息、在 VS Code / Cursor / Zed(装了哪个列哪个)里打开、在资源管理器 / Finder 里显示、复制路径。
- 跨对话工具:Claude 可以列出、阅读、给本机其它对话发消息、改名,经你同意后归档;它建议的任务会变成一个按钮,点了就在单独的 worktree 里开新对话。
- 本机环境变量(设置):加密存在这台电脑上,传给这个应用开的每个对话和终端。
- worktree 放在哪、分支前缀可以设置;设置了之后,
.worktreeinclude里列出的、被 git 忽略的文件会复制进新的 worktree。 - 在另一台电脑上开新对话:新对话页选一台已连接的电脑,对话就在那台电脑上用它自己的模型和设置跑。
- 定时任务:七天内错过的会补跑一次(并告诉你),更早的丢掉;新的「手动」类型只在点「立即运行」时跑;每次运行可以在单独的 worktree 里。
- 只聊天:+ 菜单里开一个完全没有工具的对话(内置工具、我们的、你自己的 MCP 都没有)。
- 更新内容:更新之后弹一次这一版改了什么(界面语言的那份),以后从命令面板或设置 → 应用更新随时看。
- 总览多了 待审(等人审的 PR)、落地中(已批准或设了自动合并)、已解决(最近一周归档的)三栏。
- 右侧面板 → 文件多了「最近所有对话生成的文件」:最近 50 个对话里 Claude 写出来、还在磁盘上的网页、文档、图片和数据,每个都能跳回生成它的对话。
- 预览服务器:项目里有
.claude/launch.json(官方格式)时,Claude 能自己启动开发服务器、看日志、停掉,在应用的浏览器里打开;浏览器的空白页也会列出这些服务器,点 ▶ 就启动。 - 回答下面多了 钉住(钉住的回复列在右边一栏)、朗读、分叉,以及「2 分钟前」这样的时间。
- 标题栏的 ☰ 和 ← →:☰ 弹出应用菜单(桌面版多了「前往」菜单:后退 / 前进)。
claude-web://链接:new?folder=…&q=…打开新对话页并填好(不会自己发送),session/<id>打开一个对话。只有安装版会注册。- 官方桌面版的 anthropic-skills 插件在这里也能用(对话里的 anthropic-skills:xlsx 之类),设置里可以关。
改动
- 质感:菜单、提示、卡片、开关、右侧面板和手机抽屉的动画改成弹簧曲线;2 倍屏上用发丝细边,暗色主题有一圈微亮的内边,菜单和对话框下面有贴地的阴影;列表只在后面还有内容时边缘才渐隐;暗色主题里的英文字更细一点(中文不变)。
- 侧栏:搜索只匹配对话标题和文件夹名(#7);项目和文件夹默认折叠、当前的展开(#3);「按供应商」的列表能折叠(#4);内置 Claude 在 settings.json 指向中转时显示「Claude Code · 中转地址」(#5、#6)。
- 应用图标换成新的 logo。
- 桌面版不显示麦克风按钮了:Electron 里语音识别每次启动都失败。
修复
- 只发一张图片之后,这个对话之后每一轮都报 400(cache_control / 非空文本)。现在不会再发空的文字块;已经坏掉的对话,遇到这个 400 会自动修好记录、重开一次。
- Codex 对话起不来:Codex 读不了自己的配置时(比如 codexmate 写进 config.toml 的 model_catalog_json 比装的 Codex 旧),现在会说清楚是哪个文件的哪一项、谁写的、怎么恢复,不再只甩一段日志。不会改你的文件。
- 第一条消息很长(比如贴了截图)的对话从列表里消失了,在别的应用(如 Mirasim)里也看不到;这种对话的文件夹也会丢(#9)。现在都能正常列出、文件夹也对。还没进列表的新对话显示「新对话」而不是一串 id(#8)。
- 对话在跑时改的名字会被改回去。
- 超过 2000 像素的图片报「Could not load the sharp module」。
- 「后台 · 19 条命令」:一轮里结束的后台命令和子代理一直被算成还在跑。
- 图标栏的账号菜单和 ··· 菜单被整页(扩展、后台…)盖住、显示不全。
- 图标栏顶上的 ☰ 被窗口左边切掉一半;新对话页框下面那一行太挤时权限和模型按钮重叠;手机上标题压在右边的按钮上。
- 统计里的 tok/s 原来偏低很多(内核报的模型时间是累计值)。
- 子代理用别家模型时,子代理的消息上显示的是内部别名而不是真实模型名。
- @ 补全会把一个普通的词改成文件名;Shift+Tab 会切到隐藏的权限模式;PR 条会认错别人 fork 里同名分支的 PR。
- macOS 上快捷键里的 Ctrl 现在显示成 Cmd;英文句子里 Claude / GitHub 的首字母大写不再被吞。
- 深链接的文件夹只接受本机的完整路径(网络路径一律不查,免得 Windows 去登录那台主机);「worktree 放在哪」也只接受完整的本机路径。
- 只聊天的对话在重开、分叉、被别的对话发消息、IM、定时任务、换供应商之后都保持没有工具。
- 两个互相「保持联系」的对话不会再无止境地互相回复:发给同一个对话的消息每 10 分钟最多 10 条。
English
Added
- The interface is laid out like the official desktop app. A column of cards sits to the right of the conversation: environment, a breakdown of the context in use, connectors, changes (with Create PR), background tasks and pinned replies. You can fold the cards and drag them into another order. The conversation header has Review / Browser / Files buttons on the right, and ⋮ gains Side chat, Background tasks and Keep the computer awake. The input box is a single line (+ · text · mic · send); the permission, the model and thinking strength, and the context ring move to a line under it. Ctrl+Enter cuts in while a reply is running (Enter still queues). A statusLine set in
~/.claude/settings.jsonis drawn above the box, in its own colours. - The new-conversation page has the same one-line box. Under it are Code / Chat, which computer to start on, the folder, the branch and the permission, with the model on the right.
- An animated backdrop on the new-conversation page: Drift. Letters drift like ink on a slowly turning current. The pointer parts them, a click splashes a ring of accent-coloured letters, and what you type in the box floats out of it from the caret and joins the stream. The setting "Animated backdrop on the new-conversation page" switches it to Field (a dim field of letters with a ripple on every click) or off. With reduced motion on it is a still picture, and phones don't show it.
- Claude's thinking has content again. Thinking rows used to open up empty, because current Claude models leave the thinking text out unless it is asked for. Both the official client and the built-in one ask for it now. A thinking row is titled by its summary's heading, and the step being worked on shows four dots lighting in turn.
- Stats for the conversation under the input box: turns · steps · tok/s (generation speed, from each turn's own model time) · cache hit rate. When the window is narrow, whole items drop out.
- Subagents can use any provider's model. When the conversation is on an Anthropic-format provider, the Subagent menu lists other providers' models (DeepSeek, for example). Subagent requests go to that provider, translated as needed, and the main conversation's requests still go to its own provider unchanged.
- Import from other tools ("Import from other tools…" on the provider list and the connectors page). It reads the providers and MCP servers set up in Hermes, CC Switch, Codex, OpenCode, Continue, Cursor, Windsurf, Kiro, Claude Desktop, VS Code, Cline, Roo, Gemini / Qwen CLI, Zed, Goose and a running Ollama, and imports the ones you tick. It only reads, never changes their files, and skips what you already have. Mirasim and Cherry Studio keep their settings encrypted in a browser database, so they can't be read; the dialog tells you to copy the address and key across yourself.
- Next-prompt suggestions: after a turn, the empty input box shows a grey guess at what you'll say next. Tab or → takes it. You can turn this off in settings.
- View modes: Normal / Show thinking / Verbose. Switch with Ctrl+O or from the conversation header's menu.
- Side chat:
/btwor Ctrl+; asks something about the conversation without the conversation hearing it. "Add to conversation" puts the answer into the input box. - @ files: type @ to list the project's files (.gitignore respected); the one you pick goes into the message as @path.
- Keyboard shortcuts, matching the official app:
- Ctrl+/ shows them all.
- Alt+M opens the model menu, and Ctrl+Shift+E the thinking strength.
- Shift+Tab in an empty box steps through the permission modes (only the safe ones).
- 1–9 pick a row in a menu.
- Ctrl+\ closes the current split, and Ctrl / Cmd + click on a conversation in the sidebar opens it in a split beside.
- Alt+← / → go back and forward through the conversations you've looked at (⌘[ ⌘] on macOS; the mouse's side buttons work too).
- Comments on diff lines in Review: click a line to write a comment. Ctrl+Enter hands all the comments to Claude as one message.
- Code review card:
/code-reviewlists its findings by file. Each one has "Fix this" or "Ignore", and "Fix the open ones" handles the rest at once. - PR status bar: when the current branch has a PR, the bar above the conversation shows the PR and its checks. Its CI menu has "Fix CI failures automatically" (it asks the conversation to fix them once per push) and GitHub auto-merge. Once the PR is merged or closed, the conversation is archived (this can be turned off).
- Right-click a file path to add it to the next message, open it in VS Code / Cursor / Zed (whichever are installed), show it in Explorer / Finder, or copy the path.
- Cross-conversation tools: Claude can list, read, message and rename the other conversations on this computer, and archive them once you say yes. Tasks it suggests become a button that starts a new conversation in a worktree of its own.
- Local environment variables (in settings) are stored encrypted on this computer. Every conversation and terminal this app starts gets them.
- Where worktrees go, and their branch prefix, can be set. With either set, the files
.worktreeincludelists that git ignores are copied into a new worktree. - Start a new conversation on another computer: pick a connected computer on the new-conversation page, and the conversation runs there with that computer's own models and settings.
- Scheduled tasks:
- A run missed in the last seven days runs once, and you're told about it; older ones are dropped.
- A new "Manual" kind runs only when you click Run now.
- Each run can have a worktree of its own.
- Chat only: start a conversation from the + menu with no tools at all (none of the built-in ones, ours, or your own MCP servers).
- What's new: after an update, the app shows once what this v...
0.2.6
新增
- 界面有英文了。 整个界面(网页、桌面版的菜单和托盘、手机页面、配对页、导出的 HTML、错误说明)都有中文和 English 两种,默认跟着这台电脑的语言:电脑是英文就是英文,是中文就是中文。要换:设置 → 外观 → 语言(跟随系统 / 中文 / English),换了界面会重新加载一次;桌面版的菜单和托盘要重启应用才换。对话里 Claude 回复用什么语言不受影响。
- 子代理可以用别的模型了。 输入框里模型按钮旁边多了一个「子代理」按钮:主任务还是用主模型,子代理(Task、工作流派出去的)用这里选的,可以选个便宜的省额度。默认「跟主模型一样」。每个对话单独记;菜单底下勾上「这个供应商的新对话都这样」,以后在这个供应商上新开的对话(包括 IM 和定时任务)都用它。正在跑的对话改了以后会在后台无感重启一下,这一轮跑完再换。
- 可以同时用几个 Claude 账号。 设置 → 账号与登录 → 其它 Claude 账号 → 添加账号:会开一个终端运行
claude setup-token,浏览器里登录要添加的那个账号并授权,终端打出来的令牌会自动填进去,起个名字保存(保存时发一条很短的消息测试)。之后模型菜单里每个账号一组(「工作号 / Opus 5.5」),每个对话选用哪个账号;一个额度用完了,换另一个账号的模型接着聊,对话记录还在。可以设成新对话的默认,IM 和定时任务也能用。~/.claude 里原来的登录照常是「Claude 账号」。 - 自定义样式(custom.css)(GitHub issue #2)。在
~/.claude-web/custom.css里写自己的 CSS,它在内置样式之后加载,保存后所有窗口立即生效,桌面版自动更新也不会覆盖它。设置 → 外观 → 自定义样式 里能新建 / 编辑这个文件、一键关掉。新建的文件里列了以后保持不变的钩子:html[data-theme]、.chat[data-state]、计划上的data-done/data-total/--progress、计划每一项的data-status等。 - 右侧面板「任务」里的计划有进度条了,像目标卡片那样:标题行写着「3/7」,旁边一条进度条。
- 输入框里的图片点一下放大(滚轮缩放、左右键切换),鼠标移上去右上角出现 × 才是删除。以前点一下就删掉了。
- 模型菜单最底下多了「子代理用的模型」,点它直接打开子代理的菜单(按钮还在模型旁边,这里多一个入口)。
- 没在运行的对话(重启后的、历史里的)每一轮下面也有「用时 · 步数 · 费用 · token · 缓存」那一行了:本机跑过的按账本里记的,别处跑的按回答里的用量算(没有费用)。输入框角落的上下文小环也一直显示(60% 以下是淡淡的一圈,不带数字),没在运行的对话按上一轮估算。
- 加供应商时可以只挑要用的模型。 中转一次列出十几个模型,以前全都进模型菜单。现在新加一个供应商、「测试连接」拿到列表后会弹出「选择要用的模型」:能搜索、全选 / 全不选、逐个勾,勾上的才出现在模型菜单里。以后在编辑页的「用哪些模型」里随时改(和 设置 → 模型 里的开关是同一份)。
- Codex 的模型列表跟着 Codex 自己走。 以前是写死在应用里的(5.6 Sol / Terra / Luna / Pro),Codex 出了新模型就得等我们更新。现在直接问本机的 Codex 这个账号能用哪些(比如 GPT-6-Luna),模型菜单和 设置 → 模型 都用它报的列表;隔几个小时问一次,开 Codex 对话时也会顺便更新。
修复
-
打开 Codex 对话报「加载历史失败:paginated_threads is not supported yet」。 新版 Codex(桌面版会自己更新)换了对话的存法,电脑上旧一些的
codex命令行读不了。现在遇到这种对话会改用 Codex 桌面版自带的那个读;没装桌面版就提示把 Codex 命令行更新到最新。 -
输入框角落上下文小环的说明卡不会再盖在刚打开的菜单上:点别处就收起。
-
工作区标签栏的「+」点了没反应。 菜单其实打开了,但被标签栏裁掉看不见。现在菜单浮在标签栏下面,窗口矮的时候往上翻或者出滚动条。
-
组的名字会重复。 加几个组、再删掉中间的几个,新加的组从「组 2」重新数,就出现了两个「组 4」。现在新组用第一个没被占用的编号。
-
窗口右上角容易误点。 对话标题栏、右侧面板最右边的按钮(面板开关、···、关闭)离 Windows 的最小化 / 最大化 / 关闭只有 4 像素,经常点错。现在中间留了 20 像素。
-
首页「今天想做点什么?」整体往下挪了一些,不再挤在窗口上半部分。
-
选了「完全放开」,过几轮又变回「每步询问」。 对话的进程闲置被回收、应用重启、或者在手机上接着聊时,重新打开用的是「每步询问」。现在每个对话记住自己上次用的权限模式,重新打开还是它;从没记过的按 设置 → 通用 → 默认权限。
-
对话下面突然出现「这个对话正在别处更新(终端或其它应用)」,其实没有别的地方在写。Claude Code 退出时会往记录里写几行自己的记账,以前也被当成了别处的新消息。现在只有真的多出消息时才这样显示。
-
缓存命中 0%,一轮花一美元多。 一般是隔了 5 分钟以上才发下一条:提示缓存过期,整段上下文按全价重新读一遍。现在那一行会写「隔了 12 分钟,缓存已过期」,鼠标停上去说明原因,以及在 设置 → 供应商 → 编辑 里打开「1 小时提示缓存」(官方运行内核)。
-
手机走慢速转发时,长对话一直「加载历史…」。 现在先只传最近一段(按整轮切),更早的点「加载更早的记录」再取;电脑上特别长的对话也一样,打开更快。
English
Added
- The interface now comes in English. The whole interface (the web app, the desktop menus and tray, the phone page, the pairing page, exported HTML, error explanations) is available in both Chinese and English, and by default it follows this computer's language: an English computer gets English, a Chinese computer gets Chinese. To change it: Settings → Appearance → Language (Follow system / 中文 / English). The interface reloads once after you change it; the desktop menus and tray need an app restart. The language Claude replies in inside a conversation is not affected.
- Subagents can use a different model. Next to the model button in the input box there is now a "Subagent" button. The main task still uses the main model, while subagents (the ones launched by Task or by workflows) use whatever you pick here, so you can choose a cheaper model to save quota. The default is "Same as main model". Each conversation remembers its own choice; tick "New conversations on this provider all do this" at the bottom of the menu and every conversation you start on that provider from now on (including IM and scheduled-task ones) uses it. If you change it in a running conversation, the process restarts quietly in the background and the new setting takes over once the current turn finishes.
- Several Claude accounts side by side. Settings → Account and login → Other Claude accounts → Add account opens a terminal running
claude setup-token: sign in to the account you're adding in the browser and authorize, and the token the terminal prints fills in by itself. Give it a name and save (saving sends one very short message as a test). From then on each account is a section of the model menu ("Work / Opus 5.5"), and every conversation picks the account it runs on; when one runs out of quota, pick a model of another and carry on — the conversation is kept. An account can be the default for new conversations, and IM bots and scheduled tasks can use it too. The login in ~/.claude is still "Claude account", as before. - Custom styles (custom.css) (GitHub issue #2). Put your own CSS in
~/.claude-web/custom.css: it is loaded after the built-in styles, every window picks up a save at once, and the desktop app's auto-update leaves it alone. Settings → Appearance → Custom styles creates / edits the file and switches it off in one click. A new file lists the hooks that stay the same in later versions:html[data-theme],.chat[data-state], a plan'sdata-done/data-total/--progress, each plan item'sdata-status, and more. - The plan in the side panel's Task tab has a progress bar, like a goal's card: "3/7" in its title row with a bar next to it.
- Click an image in the input box to see it big (wheel to zoom, arrow keys to move between images); hover it and a × in the corner removes it. A click used to remove it.
- "Subagent model" at the bottom of the model menu opens the subagent menu directly (the button next to the model is still there; this is another way in).
- Conversations that aren't running here (after a restart, from history) now have the "time · steps · cost · tokens · cache" line under each turn too: turns that ran in this app from the ledger, turns that ran elsewhere from the answers' usage (no cost). The context ring in the corner of the input box is always there now (a faint ring without a number below 60%), estimated from the last turn for a conversation that isn't running.
- Pick the models you want when adding a provider. A relay lists a dozen models at once, and they all used to land in the model menu. Now, when you add a provider and "Test connection" brings back its list, "Choose the models to use" opens: search, select all / none, tick them one by one — only the ticked ones appear in the model menu. Change it any time under "Models to use" on the edit page (the same switches as Settings → Models).
- Codex's model list follows Codex itself. It used to be built into the app (5.6 Sol / Terra / Luna / Pro), so a new Codex model had to wait for an update from us. Now the app asks the Codex on this computer which models this account can use (GPT-6-Luna, for example), and the model menu and Settings → Models list what it reported; it asks again every few hours, and whenever a Codex conversation starts.
Fixed
-
Opening a Codex conversation failed with "paginated_threads is not supported yet". Newer Codex (the desktop app updates itself) stores conversations in a new way that an older
codexcommand line on the same computer can't read. Such conversations are now read with the codex that comes with the Codex desktop app; without the desktop app, the message says to update the Codex command line. -
The context ring's card in the composer no longer stays over a menu you just opened: a click elsewhere closes it.
-
The "+" on the workspace's tab row did nothing. Its menu did open, but the tab row cut it off. The menu now floats below the row, flipping up or scrolling when the window is short.
-
Group names repeated. After adding a few groups and closing some in the middle, new groups counted from "Group 2" again and you ended up with two "Group 4". A new group now takes the first number nobody has.
-
Easy mis-clicks in the top-right corner. The last button of the conversation header and of the side panel (panel toggle, ···, close) sat 4 pixels from Windows' minimize / maximize / close. There are 20 pixels between them now.
-
The home page's "What do you want to do today?" sits lower, no longer squeezed into the top half of the window.
-
"Allow everything" went back to "Ask first" after a few turns. When a conversation's process was reclaimed after sitting idle, the app restarted, or you carried on from the phone, it reopened in "Ask first". Each conversation now remembers the permission mode it last ran in and reopens in it; one with nothing recorded uses Settings → General → Default permissions.
-
"This conversation is being updated elsewhere (terminal or another app)" appeared for no reason. Claude Code writes a few bookkeeping lines into the record as it exits, and those were taken for new messages from elsewhere. The note now only shows when new messages really arrive.
-
0% cache hits and over a dollar a turn. Usually the next message came more than 5 minutes later: the prompt cache had expired and the whole context was read again at full price. The line now says "12 min later, the cache had expired", with the reason on hover and a pointer to "1-hour prompt cache" under Settings → Providers → Edit (official runtime).
-
A long conversation stuck on "Loading history…" on a phone on the slow relay. Only the latest part is sent first now (cut at a turn); "Load earlier history" fetches the rest. Very long conversations on the computer open faster too.
engine 2.8.4-cw.5
claude-web-engine 2.8.4-cw.5 (fork commit d0c44dec): CLAUDE_WEB_THINKING_DISPLAY sets the request's thinking.display for Claude models — current Claude models default to omitted, so their thinking came back as a bare signature. Not an app release.