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 的布局约束

  1. 修改主界面中的 <Footer /> 或是状态栏组件。
  2. 为父容器包裹显式的 height={1} 属性,并且禁用所有的内部默认 flexWrap="wrap" 行为,强制改写为 wrap="truncate"wrap="truncate-end"

阶段 2:实施条件渲染逻辑 (Responsive Breakpoints)

  1. 在组件内挂载 useStdout() 钩子监听当前终端列宽。
  2. 设计渲染门控逻辑:
    • 宽度 < 60 时:仅显示极其凝练的动词(如 Thinking...Input>)。
    • 宽度 > 80 时:附加当前的耗时(如 · 15s)。
    • 宽度 > 120 时:附加右对齐的高亮模型标识(如 Qwen-Max)和 Context 占用进度条。

阶段 3:状态栏合并优化

如果有如 Token 报错提示、快捷键说明(Press Tab to complete),将它们与现存的状态栏在一行内做交替(Flip)显示。可以用 setInterval 实现简单的走马灯或者文本渐变覆盖,绝对不能在 Y 轴上堆叠行数。

三、改进收益评估

  • 实现成本:极低。不需要更改复杂的业务架构,主要就是梳理 React Ink 的 CSS-like 布局属性,打磨边界响应 Case,代码量 50 行。
  • 直接收益
    1. 打造极致沉浸的视窗:彻底根治 TUI 最被人诟病的“页面晃眼”、“闪烁顶行”等毛病,带给开发者如 VS Code 编辑器一般的稳重感。
    2. 拯救窄屏分屏用户:让重度依赖窗口管理的极客开发者能够轻松地把 Qwen Code 塞进任意尺寸的 Tmux Panel 里而不必担心界面崩塌。