Qwen Code 改进建议
April 5, 2026 · View on GitHub
核心洞察:CLI Agent 的重度用户大多是多屏协作的高手,他们经常会把一个 13寸笔记本屏幕劈成两半(甚至三分之二):左边放着 VS Code 或者是 Vim,右边只留一个宽度不到 80 列、高度 30 行的小小窗格来挂载 Agent 终端。在这个寸土寸金的交互空间里,如果底部的状态栏(Footer)因为输出了大模型名、版本号等冗余信息而频繁换行,会在上方导致严重的**“内容跳动 (Layout Shift)”**,极度干扰开发者看代码的心流。Claude Code 把这看作是一个 P0 级别的 UI 痛点,并用极尽严苛的约束实现了绝对固定行高的响应式状态栏;而 Qwen Code 的 Footer 高度往往是薛定谔的猫。
返回 改进建议总览
一、会跳动的终端与被抢占的视野
1. Qwen Code 的现状:动态撑开的面条式布局
当你唤起 Qwen Code 的终端交互界面时:
- 痛点一(视觉抖动):如果此时它发起了网络请求,状态栏可能从
[Idle]变成了[Running: fetch_auth_middleware_with_long_name_...]。因为后面这串字符串太长顶破了物理边界,原本占据 1 行高的 Footer 突然变成了 2 行高。这会将上面好不容易阅读到一半的代码历史记录硬生生往上顶开 1 行!这种频发的排版闪跳让阅读体验大打折扣。 - 痛点二(喧宾夺主的常驻废话):目前有些开源项目的 Status Bar 会永远打着一行如
Powered by qwen-max | Version 1.0.0 | Tokens: 4058的字样,占据着至少两三行极其珍贵的终端可视区域,导致大段的代码 Diff 被切断。
2. Claude Code 的强迫症:一切为内容让路
在 Claude Code 的 components/StatusLine.tsx 和输入组件的包裹层中,有一条铁律:Footer 绝对不能超过 1 行高,更不能上下弹跳。
机制一:强一致的 <Box height={1}>
不论内部内容如何千变万化,最外层的 Flex 容器永远锁定固定高度。如果是多余的内容,React Ink 引擎会结合 wrap="truncate" 属性(截断加省略号),极其干脆地把超出终端右侧边界的内容统统用 ... 切掉,宁可少看半个字也绝不换行。
机制二:非关键信息的响应式隐藏 (Conditional Display)
Claude Code 给信息排了优先级。如果用户用的是一个超窄的 iTerm 分屏:
它甚至连当前的“模型名称”和“消耗 Token 数”都不会展示!它只保最最最核心的提示(比如当前目录路径或报错小标)。只有当用户把窗口往旁边拉宽(process.stdout.columns 变大),这些附加的统计信息才会像响应式网页一样平滑地在右侧挤出来。
机制三:按需呼出的详情
如果开发者真想看,可以直接敲回车发送空命令,或者输入特殊的类似 /cost 等查询命令,在主干对话流(Scrollable Area)里去看,而不是永远霸占底座。
二、Qwen Code 的改进路径 (P2 优先级)
让 TUI 回归克制,把每一寸像素都还给开发者的代码。
阶段 1:改造 TUI 的布局约束
- 修改主界面中的
<Footer />或是状态栏组件。 - 为父容器包裹显式的
height={1}属性,并且禁用所有的内部默认flexWrap="wrap"行为,强制改写为wrap="truncate"或wrap="truncate-end"。
阶段 2:实施条件渲染逻辑 (Responsive Breakpoints)
- 在组件内挂载
useStdout()钩子监听当前终端列宽。 - 设计渲染门控逻辑:
- 宽度
< 60时:仅显示极其凝练的动词(如Thinking...或Input>)。 - 宽度
> 80时:附加当前的耗时(如· 15s)。 - 宽度
> 120时:附加右对齐的高亮模型标识(如Qwen-Max)和 Context 占用进度条。
- 宽度
阶段 3:状态栏合并优化
如果有如 Token 报错提示、快捷键说明(Press Tab to complete),将它们与现存的状态栏在一行内做交替(Flip)显示。可以用 setInterval 实现简单的走马灯或者文本渐变覆盖,绝对不能在 Y 轴上堆叠行数。
三、改进收益评估
- 实现成本:极低。不需要更改复杂的业务架构,主要就是梳理 React Ink 的 CSS-like 布局属性,打磨边界响应 Case,代码量 50 行。
- 直接收益:
- 打造极致沉浸的视窗:彻底根治 TUI 最被人诟病的“页面晃眼”、“闪烁顶行”等毛病,带给开发者如 VS Code 编辑器一般的稳重感。
- 拯救窄屏分屏用户:让重度依赖窗口管理的极客开发者能够轻松地把 Qwen Code 塞进任意尺寸的 Tmux Panel 里而不必担心界面崩塌。