Whetuu: 零配置跨Shell提示符

Show HN: Whetuu – a zero-config cross-shell prompt written in Zig

Whetuu: 零配置跨Shell提示符

Whetuu 是一款用 Zig 编写的跨 Shell 提示符,主打零配置体验。只需运行一条安装命令,它就能自动检测平台并适配你的 Shell 环境。它能实时显示 Git 分支状态、工具链版本和命令耗时,支持按向上箭头调用智能历史选择器。得益于 Zig 的并发优势,渲染速度极快,即使在大型仓库中也不会阻塞 Shell。此外,Whetuu 严格遵循隐私原则,无网络请求、无遥测,所有数据本地存储,确保你的开发环境既高效又安全。

一个缓慢的仓库绝不会拖慢你的 Shell,因为所有子进程都有严格的超时限制,最坏情况下提示符也能在毫秒级内返回。
  1. linsomniac

    这不算新闻,真正的新闻是:AI 工具能让你(专门为你)构建一个定制化的提示符工具,所花精力与设置现有提示符工具相当甚至更少。

    举个例子,我喜欢这个想法,但对 shell 历史记录集成没兴趣;我用的是 atuin。

    所以我让 codex 帮我写了一个,包括等待 git 的 250ms 超时,如果 git 耗时超过这个时间就放到后台运行,并在 git 返回更新状态前使用上一次的 git status。https://github.com/linsomniac/jafoprompt

  2. drdexebtjl

    我不希望我的提示符还要处理 shell 历史记录,尤其是以这种“带有强烈主观倾向”的方式。

    那我原本 shell 提供的历史记录怎么办?

    它管得太宽了。

    编辑:

    > 两个文件都遵循 XDG 基础目录规范,所以都不在安装目录里。用 rm -rf ~/.whetuu 卸载 whetuu 不会带走你的历史记录。whetuu paths 会打印出这两个位置。

    别再往我的 $HOME 里创建目录了。

  3. hiccuphippo

    我在某个时候就停止使用花哨的提示符了。我现在的提示符就是一个 $ 符号。如果想知道当前目录,我就运行 cwd,没必要在每个提示符上都显示。如果需要 git 分支,直接用 git status 就行(虽然我给它起了个别名 gs [不,我不是用 ghostscript])。

  4. minraws

    我和它不太合拍,感觉它过于……带有主观倾向,却没有任何实质性的性能提升或其他改进,比起其他简单的提示符并没有优势。

  5. linsomniac

    我不太清楚:这个工具也处理 shell 历史记录吗?我在使用 atuin,没兴趣换掉它。我几周前刚切换到 oh-my-posh,它不错,但我愿意尝试其他东西来对比,特别是有些目录是 monorepo,oh-my-posh 在那里会卡上好几秒钟。另外,oh-my-posh 有时也会发疯,从我的自定义提示符切回默认提示符。

    对于我当前的“两行提示符,按回车后折叠成一行”的设计,我还在犹豫。我喜欢它提供了很多空间,但有些信息我希望能保留在 shell 历史记录里(比如 git 分支、长运行命令的上次执行时间)。

同日更多故事

2026-07-23