各种尝鲜体验
各种尝鲜体验
相对而言,我比较喜欢尝试新事物。这里记录一些我的尝试体验。
zcode
用 zcode 倒不是因为它好用,而是因为它给得太多了:
- 订阅消耗速度变为 0.66x
- 每天有三次闲时任务。虽然这个闲时任务是 oneshot 只能对话一轮,但是没有限制 context,我写个长任务至少薅它 500k token
- 周末还送用不完的 flash token(9 月更有夜间爽蹬活动,夜间全免费)
简直是实现了 token 自由。
不过既然写在这里它就不可能只是赞美两句这么简单。zcode 仍然处于发展早期,现在给这么多福利也是为了让我们给使用数据和反馈的。那么我也就得开喷了:
- 给模型用的终端工具一坨。开个会话问问模型就知道,zcode 给 AI 的终端是“default shell”,这在 Windows 上还是 cmd 而不是 powershell。虽然 powershell 坑比较多,但是总比啥都没有的 cmd 好吧。给模型的系统提示词里也没有终端使用教程,只有一点 cli 规范。
- 有一堆无法关闭的内置 MCP。
- zcode 不读
~/.agents/AGENTS.md,全局提示要放在~/.zcode/AGENTS.md。 - 恶性 bug:zcode 给 agent 提供的「内置任务」功能(实际上是 Bash +
run_in_background: true实现的)非常难用,很多时候终端进程都已经 panic 了,但是任务本身不会结束,就一直挂着浪费时间等 timeout。所以全局提示里需要写一句“禁止使用 run_in_background”。
- 对于 agent 命令操作,zcode 其实是有沙盒的。但是 AI 不知道,有时候要试错多次,。
- 周末赠送的是试用装的 glm 5.3 flash,token 非常多。但是这个试用装不是直接加入你的帐号而是作为单独的一个试用帐号提供,我找了半天都没找到在哪里切换回我自己的帐号。实在是居心险恶。
- 内存占用仍然非常感人,开了几个会话(都跑完了,正在跑的只有一个),内存占用已经达到了 4.5GB。
- 性能很差。点一个历史对话,要过几秒钟才能加载出全部内容。就连退出软件也要等一阵。
- 恶性 bug:多个工作区通过 ssh 连接到同一台机器上,且每个工作区上都有 session 在跑。随机一段时间后,发生 CPU 飙高、所有 ssh 工作区全部断连 exitCode = 1,而点击重连后又可以正常连入,此时所有会话全部被中断。server 在内网,网络一直都非常稳定,基本可以排除网络问题。
- 恶性 bug:在发现了上述恶性 bug 之后我立刻提交了一个反馈,然而反馈提交卡在了日志上传步骤:正在导出完整日志(0%)。我觉得这真的非常抽象,反馈渠道自己不稳定。
- 恶性 bug:在我的 n 卡 3050 的笔记本上使用,有概率出现全窗口变为高斯模糊、无法再显示任何东西。
- ssh 机器不支持定时任务、不支持闲时任务。然而我有些性能优化必须在 linux 上测试,Windows 上漂移太高了而且没有很多 perf 工具用。另外 WSL 也不支持闲时任务。
- GLM 在 202609 推出了夜间爽蹬活动,zcode 无限用 GLM 5.3 flash;但是前提是你的帐号没用完额度。。。用完以后就没法蹬了。
- 闲时任务没有草稿:创建闲时任务里写了一堆东西,切出去看看其他会话进度,再切回来发现已经写的内容都没了。
- 我可以看到一个 agent 启动的“运行中的终端”,但是无法看到它输出的内容。。
- subagent 被中断即丢失所有上下文,且无法恢复:subagent 输出中,停止会话,则之后再开启会话时 subagent 已经输出的内容都不会再进入主 agent 的上下文。等于是 token 白烧了。
- 不像 opencode 给 AI 发消息可以“插队”在工具调用里;zcode 在 AI 输出时发送消息,必须排队到 AI 完成全部任务后才能被 AI 看到。
- 点击「立即」按钮(打断会话,发出消息),快速切到其他 session,再回来以后会看到消息并没有发出去(仍然留在队列里),但是会话的打断是实打实发生的。抽象啊。
lazygit
由于我重新入坑了 neovim,为了使用与 vscode 类似的查看 diff 的功能,因此有一个 git 状态 TUI 查看器还是比较有必要的。生态里基本都是用的 lazygit:lazyvim 本身默认就绑定了 lazygit 的键位,因此我尝试使用 lazygit。但是用起来感觉真的非常不顺手。
- README 前面三个大广告,无语了。
- 配置居然是 yml,emmmm……没被 yml 毒打过。
- 在浏览 diff 时,没法使用
<Ctrl+d>/<Ctrl+u>半屏翻页。这两个键一次只能滚两行。已经违背了 vim user 的使用习惯了。 - 我在 neovim 里打开 lazygit 后,有时候想进入编辑状态,需要在当前 neovim 里打开变更的文件,并关闭 lazygit 窗口。直接按 e 会报错一堆乱码。然后我配置了
edit: 'nvim --server "$NVIM" --remote-send "<C-\><C-n>:close<CR>" && nvim --server "$NVIM" --remote "{{filename}}"'以后,再按 e,就报错了另一堆乱码,实在是没绷住。
但是 gitui 更是一坨原始大便,所以也是捏着鼻子也得用。
flyline
一个 bash 的提示 + 补全库。由于 bash 在这块确实很差(而且我用过 ble.sh,那个慢得一批),所以还是有一点尝试欲望的。
首先看到 Release 里没有 windows build,已经感觉不太对劲了。拉下来 install 一发,这个项目没有 bin target,问了下 AI 才知道这玩意是编译成 .so bash 插件。build 一发,报了一堆错,然后发现这个项目本身就没法在 windows 下 compile。
行吧,我尝试去 Release 里拉下 x86_64 linux 的 musl 构建呢?拉下来 enable -f,报错 bash: enable: dynamic loading not available。所以这 bash 插件的加载本来就没多少人用,这些 bash 的默认 build 都关闭了这个功能,结果这玩意还依赖这个?
直接抛弃。
hyperfine
命令行的 benchmark 比较工具。用来比较单个简单指令还好,当我想要测试一些耗时极长的操作时,这体验简直没法看。
- 首先被 shell 坑了,hyperfine 在 Windows 上一定用
cmd.exe /C启动子进程,导致我 nushell 语法的指令执行失败;而且由于把我;和之后的内容都当成 args 传到我的程序里,导致出现的报错非常恶心,排查半天。。 - 默认每个 case 至少跑 10 轮,实在有点慢。
- Ctrl + C 没法终止 benchmark?什么设计。
sem
尝试了 weave 后,我发现 Ataraxy-Labs universe 还有个 Ataraxy-Labs/sem,也就是基于 tree-sitter 的语义检测。
于是我也尝试了下 sem。
怎么说呢,sem 还是处在非常早期的阶段,问题比我想的要多。例如最简单的 sem diff,效果是这样的:
│ ⊕ method NeedsOrderServiceImpl::g… [added]
│ ∆ method NeedsOrderServiceImpl::b… [modified]
│ ∆ method NeedsOrderServiceImpl::r… [modified]显然这个长度根本不对劲,最关键的信息被省略了。(我的终端总宽度是这个片段的 3 倍多。)只能等 sem 再打磨优化了。
- 对于上面的这个问题我提了一个 issue。
- 此外,java 文件的 sem diff,class 变更居然用的 type 而不是实际字段名,有点把我无语到。
weave
一个基于 tree-sitter 代码理解的 git merge 辅助工具。
emmmm,虽然这个 claude 的大菊花排在 contributor 的靠前位置,比较渗人。但我还是想试试。
首先安装,scoop 没有,我用 bpm-rs 安装还给我测出两个 bug。
修好以后安装,我看 README 里写了可以 weave setup --local,但是执行并没有这个指令。然后发现这个 --local 是 15 hours ago 刚添加的。。。一般协作场景都不允许把 .gitattributes 上传到远端吧。不过还好有 core.attributesfile,我直接加到 global gitattributes 里就完事了。
第一次 merge 的时候报错 weave-driver 找不到,然后我才发现安装这东东需要在 release 里下载两个 binary,一个是 weave-cli,一个是 weave-driver。
不过合并的实测效果还是比我想的好一些的,最终 conflict 的文件数量确实更少了几个。不过 weave 解决的也都是些简单问题,难题都留给人类了说是。
carapace
这玩意大概一年多前就想试了,但是文档说的简直不是人话。
首先,Github 上 README 基本没有,就一句 Read, Try and Build. 然后如果你点进去 Read,就能看到这辈子见过的最抽象的文档(截取一部分目录展示😅):
1. In A Nutshell
2. Porcelain Shop
3. Hulk BASH!
4. Pandoras Box
5. Overly Attached Argument
6. Lights, Camera, Action!
7. Group Therapy
8. Spec-tacular Citizen
9. Running Man
10. Greenwashing
11. Wiretap
12. Sandcastle实际上对于 user 应该看的是 carapace-bin 的文档。但是即使是这份文档也是一坨大便,你安装并配置后也是不知道如何使用。比如我使用 nushell,我按照文档说的进行一个配置:
$env.CARAPACE_BRIDGES = 'zsh,fish,bash,inshellisense'
source $"($nu.cache-dir)/carapace.nu"然后重启 nushell,也没法进行补全。后来和 AI 摸索着发现还需要手动把 carapace 设为 external completer,并且一定要取消掉原先的 tab keybindings:
# 注释掉原先的 keybindings
# $env.config.keybindings ++= [
# {
# name: take_history_hint
# modifier: none
# keycode: tab
# mode: [emacs, vi_normal]
# event: {
# until: [
# { send: historyhintwordcomplete }
# ]
# }
# }
# ];
let carapace_completer = {|spans: list<string>|
carapace $spans.0 nushell ...$spans | from json
}
$env.config.completions.external = {
enable: true
max_results: 100
completer: $carapace_completer
}然后按 tab 才能出现补全候选结果。
但是我其实不喜欢这种下方展示候选,我的补全都希望是 inlay hints,并且希望是最符合的结果上屏,而不是出一堆结果让我自己选。
总之经过了一大堆事以后,我对 carapace 没有任何好感。
ast-outline
一个快速用来 parse 代码文件提取重要内容给 AI 用的工具。
首先提取本身没问题,但是只有一些签名和类型,没有注释。我比较怀疑是否真的可以给 AI 产生价值,很多时候一个函数签名的信息是远小于注释的。(当然注释也会有 example 等垃圾内容,这个价值判断标准不太好界定)
然后 ast-outline install --all --dry-run 只支持那些大公司出品的 AI agent,覆盖面还是太窄了。
最后,release binary 里没有其他系统的 releaes 也要扣一点分。
quien
一个 go 写的、TUI 的域名工具。
下载下来试用一下,随便查了一个内网解析的域名,结果:
quien xxx.xxx卡死在 TUI 首页,无法切换 tab。合着查询线程阻塞了 UI 线程是吧。quien dns xxx.xxx返回空记录,真的是全空的。。还不如我 nsloopup,至少能查到非权威应答。{ "A": null, "AAAA": null, "CNAME": null, ...
立刻卸载。
http client
详见 HTTP Client。
jujutsu
详见 jujutsu。
- 作为一个 git exp user,并且拥有一批 git scripts,jujutsu 对我的开发效率的提升比较有限。
- jujutsu 和我公司工作流的相性非常差。
- 比如我们提交前都要求用工具扫 commit 但是扫不到 jujutsu 的
@;比如我们不用本地创建分支而是在远端创建分支后拉下来开发;比如我们解决 conflicts 也用的另一套工作流。
- 比如我们提交前都要求用工具扫 commit 但是扫不到 jujutsu 的
- 我有一些私有 git hooks,jujutsu 没法执行。
- 要功能没功能,要生态没生态。
- jujutsu 虽然说兼容 git,但是跟 git 混用也会有一些问题。
- 最大的问题是 jj 会一直创建 empty commit,这些 empty commit 会随着你的 git merge 被一起合到 jj 的 worktree 里。虽然在 git 里这些都是不可见的,但是在 jj log 里就是纯纯的精神污染,让人不会再想回到 jj 里了。
opencode
现在 AI 时代 AI 相关的东西 100k star 真是随便拿啊。
朋友一直在推,用了一下。后来模型 agent 能力越来越强,用的频率也越来越高了。
首先请看 opencode 有多难用。高强度用了几个月后这是我对 opencode 的所有怒火。
下面就主要放一些心得吧。
- oepncode 的 permission 规则是最后优先,也就是具体规则放后面,感觉还是挺抽象的。例如:
{ "permission": { "bash": { "git *": "allow", "git push *": "deny" } } } - 可以使用
opencode models查看所有模型 code。这是为了编写下述的opencode.json。 - opencode 要让主 agent 使用特定模型的 subagent,这个需求应该非常常见(处于成本的考量),但是 opencode 的文档显然不够好。我是靠自己摸索才搞出能 work 的配置(我用 GLM 5.1 作为主 agent,用 deepseek v4 flash max thinking 作为子 agent):
{ "$schema": "https://opencode.ai/config.json", "model": "zai-coding-plan/glm-5.2", "agent": { "general": { "mode": "subagent", "model": "opencode/deepseek-v4-flash-free", "thinking": { "type": "enabled", "budgetTokens": 65536 } }, "explore": { "mode": "subagent", "model": "opencode/deepseek-v4-flash-free", "thinking": { "type": "enabled", "budgetTokens": 65536 } } } }
总的来说,opencode 作为一个 agent,只能算是达到 agent 的基本水平。在使用体验上,还有非常非常多要改进的地方。
然后用 agent 记得一定要找个有缓存的 API 提供方。
UniGetUI
- 为什么这玩意打开要让我下载 scoop-search 和 cargo-update,后者甚至是从源码编译。假设用户一定有 rust 工具链吗?看到源码编译我就要开始捂鼻了。
- 然后安装完 scoop-search 和 cargo-update 以后,重启软件居然没读到,还要我再安装一次?恶性 bug 直接卸载了。
Files
不懂只提供微软商店链接,没有离线安装包/压缩包的软件是什么毛病。被微软收购了?
InputTip
在 b 站看到宣传,感觉这个灵感挺不错的。试用了一下,感觉我不一定需要这个。
- 符号方案下有一些 bug,例如和光标位置有一点偏移、并且在我第二块缩放比例不同的屏幕上表现很差,坐标计算是错的。
- 光标方案倒是简单,但是实在是有点丑,我也懒得自己定义光标样式。
- 目标人群是那种不喜欢看右下角托盘,怕被打断注意力的。作为程序员而不是书记,我觉得偶尔看下右下角没什么负担。
UltraISO
根据此 POST,结果软件本身是 winxp 风格,mds/mdf 挂载挂不上,提取还直接崩溃了,还 tm 卖钱,什么脑残玩意。
用挂载而不是解压的唯一理由就是少一次写入,但是既然这玩意这么难用,还是 7-zip 解压一把梭吧。
