WTFUtil 介绍与选型指南
WTFUtil(wtfutil/wtf,v0.51.0,2026-10-23 溯源)Go 编写的终端个人信息仪表盘:定位、模块/Widget/Grid 架构、更名 Tessera 动态、量化选型对比(vs glances/bottom/gtop/GoTTY)与场景建议。
WTFUtil 介绍与选型指南
目标:讲清 WTFUtil(GitHub 仓库 wtfutil/wtf,命令名
wtfutil)——一个 Go 语言编写的终端个人信息仪表盘(TUI)——的定位、架构、模块体系与维护现状,并与 glances、bottom、gtop、GoTTY 做量化选型对比,帮助读者判断"什么场景该选 WTFUtil、什么场景不该选"。本篇为认知篇,全部事实性内容(版本、星数、许可证、更名动态、模块清单、安装方式)均来自官方仓库与官网联网溯源,来源与查询日期逐项标注;安装、配置、命令的实机操作见本专栏其余三篇。
一、环境信息
本篇为联网溯源的认知篇,不包含本机实测操作;溯源时使用的环境与信息源如下:
- 目标运行环境:Ubuntu 22.04 LTS(x86_64),GNOME Terminal / tmux 等支持 256 色的终端均可运行;
- 溯源日期:2026-10-23(下文所有"查询日期"均指此日);
- 信息源清单:
- GitHub Releases:
https://github.com/wtfutil/wtf/releases(最新稳定版 v0.51.0 发布说明,含更名公告); - GitHub 仓库主页与 README:
https://github.com/wtfutil/wtf(安装方式、构建要求); - 官方文档站:
https://wtfutil.com/(首页横幅、快速开始、Installation、Configuration、Glossary、Modules 导航); - 发布件清单与校验文件:
https://github.com/wtfutil/wtf/releases/expanded_assets/v0.51.0与tessera_0.51.0_checksums.txt; - 许可证:发布压缩包内
LICENSE.md(Mozilla Public License 2.0); - 星数取证:shields.io 徽章(
img.shields.io/github/stars/<owner>/<repo>),未直连 api.github.com。
- GitHub Releases:
⚠️ 命名提示:WTFUtil 与 shell 里的
wtf命令(BSD 体系中的"缩写查询"工具)以及任何名为 WTF 的其他项目没有关系。安装后实际使用的命令是wtfutil(或新发布件中的tessera),阅读本文时请勿把三者混为一谈。
二、软件概述
2.1 一句话定位
WTFUtil 官方自我描述是 "the personal information dashboard for your terminal"——面向终端的个人信息仪表盘:它把时间时钟、待办、日历、系统资源、命令输出、RSS、文本文档等信息单元(Module/Widget)拼装到一屏网格里,常驻在一个终端窗口/平铺窗口中,供开发者与运维人员在编码间隙"抬眼即得"。
项目由 Chris Cummer(GitHub ID:senorprogrammer)创建,托管于 wtfutil/wtf,使用 Go 语言开发、以单一静态二进制分发,许可证为 Mozilla Public License 2.0(来源:v0.51.0 发布件内 LICENSE.md,查询日期 2026-10-23)。
2.2 项目更名动态(Tessera,2026 年)
溯源时必须记录的最新动态:项目正在从 "WTF" 更名为 Tessera。这一信息同时出现在三处官方渠道:
- 官网每一页顶部横幅:"We're changing our name! Stay tuned to hear more about our new name Tessera!"(wtfutil.com,查询日期 2026-10-23);
- v0.51.0 发布说明:"Binaries are now produced under the new name
tessera"、"This might be the last minor release under the repository URLgithub.com/wtfutil/wtf. The project is moving togithub.com/linodians/tessera"(GitHub Releases,查询日期 2026-10-23); - 应用退出画面:"Heads up! WTF is being renamed to Tessera. Stay tuned!"(官方站点与发布说明相互印证)。
💡 说明:更名不影响既有配置文件(
~/.config/wtf/config.yml)与wtfutil命令的向后兼容;v0.51.0 的发布件同时提供旧名(wtf_0.51.0_*.tar.gz,内含wtfutil二进制)与新名(tessera--v0.51.0--*.tar.gz,内含tessera二进制)两套压缩包,二者为同一次构建的两个名字(文件大小一致,校验文件tessera_0.51.0_checksums.txt同时收录两套包的 SHA256)。选型与部署时以当前仓库wtfutil/wtf为准即可,GitHub 会自动重定向到新仓库。
2.3 版本与社区活跃度(量化)
| 维度 | 数据 | 来源与查询日期 |
|---|---|---|
| 最新稳定版 | v0.51.0(构建时间 2026-09-29T16:08:28Z) | GitHub Releases releases/latest |
| GitHub Star 数 | 17k(shields.io 徽章显示 "17k") | img.shields.io/github/stars/wtfutil/wtf,2026-10-23 |
| 许可证 | MPL-2.0 | v0.51.0 发布件内 LICENSE.md |
| 发布节奏 | 常态化维护,v0.51.0 单次发布包含约 50 个合并 PR(依赖升级、模块修复、测试补强、更名迁移) | v0.51.0 Changelog,2026-10-23 |
| 语言与构建要求 | Go,go.mod 声明 go 1.26.4 | 仓库 master 分支 go.mod,2026-10-23 |
| 平台支持 | darwin(amd64/arm64)、linux(amd64/arm64/armv6、新命名包另含 armv7)、Windows 编译支持于 0.51 起修复 | v0.51.0 发布件清单 + Changelog "enable Windows compilation" |
对比组数据(同日取证):glances(nicolargo/glances)34k Star;GoTTY(yudai/gotty)20k Star、仓库已 Archived;bottom(ClementTsang/bottom)14k Star;gtop(aksakalli/gtop)9.9k Star。关键解读:WTFUtil 的 Star 体量处于"成熟主力项目"区间,且发布与合并保持活跃,与已停更的 gtop/GoTTY 形成鲜明对照——这也是选型时最需要看重的差异。
三、核心架构
WTFUtil 的架构可以从"模块(Module)→ 小部件(Widget)→ 网格(Grid)"三层来理解,以下概念定义引自官方 Glossary(wtfutil.com/glossary/,查询日期 2026-10-23):
- Module(模块):一个离散的数据采集与展示单元,是代码层面的一个 Go 包,例如 New Relic、Git、Weather。模块负责"去哪里拿数据、怎么刷新"。
- Widget(小部件):模块在屏幕上的呈现者,是应用与数据采集之间的界面。每个模块必有
widget.go文件。同一个模块可以在屏幕上放置多个实例(例如两个时钟模块各显示不同时区组),实例在配置里用用户自定义的键名区分(如clocks_a、clocks_b)。 - Grid(网格):WTFUtil 基于 tview 库的 Grid 布局系统切分屏幕。
wtf.grid.columns与wtf.grid.rows两个数组分别按字符宽、字符高把终端切分成矩阵,每个小部件用position: {top, left, width, height}声明自己在矩阵中的占位(单位是"格子"而不是像素)。例如columns: [35, 35, 35]表示三列、每列 35 字符宽。
配置驱动是 WTFUtil 的另一核心设计:所有界面与行为都由一份 YAML 配置文件决定(默认 ~/.config/wtf/config.yml),命令行只提供少量参数(--config、--module、--version 等,详见本专栏《WTFUtil 0.51.0 常用命令与快捷键详解》)。数据刷新由每个模块独立的 refreshInterval 控制(支持整数秒或带单位字符串),无需任何守护进程——wtfutil 就是一个前台 TUI 进程,退出即结束。
💡 技术拓展:终端仪表盘类工具的界面实现路线主要有三种——TUI 绘制库自绘(WTFUtil 用 tview/tcell,bottom 用 tui-rs/ratatui,htop/btop 用自绘 curses 类库)、浏览器渲染(GoTTY 把已有终端程序通过 WebSocket 投到网页、glances 内置 Web 模式)、原生 GUI/面板(linux-dash 等网页面板)。自绘 TUI 的共同优点是零浏览器依赖、SSH 会话即可用、资源占用低;缺点是只能在终端内使用、无法远程分享画面。WTFUtil 实际采用 tview/tcell 自绘路线,这与它"开发者本机常驻"的定位一致。
四、功能特性
以下特性均对应官方文档站与仓库可见的功能面(来源:wtfutil.com 导航与 Configuration/Modules 文档,查询日期 2026-10-23):
- 80 余个官方模块:官网 Modules 导航枚举了从 A 到 Z 的模块(Airbrake、Asana、Clocks、CmdRunner、Docker、Feed Reader、Git、GitHub、GitLab、Google Calendar、HackerNews、Jenkins、Jira、Kubernetes、PagerDuty、Resource Usage、Security、Todo、Textfile、Weather 等),覆盖开发者工作流(代码托管、CI、工单)与个人信息(日历、待办、天气、新闻、行情)两大类。
- CmdRunner 万能扩展:
cmdrunner模块可以把任意命令行程序的输出作为小部件上屏(如uptime、df、自定义脚本),不需要写代码就能扩展仪表盘,是"个人信息仪表盘"落地最常用的模块。 - 网格布局与焦点导航:
grid.columns/rows自由切屏;键盘焦点模式(Ctrl+Space 进入、方向键移动、数字快捷键直达)+ 每模块专属按键(如 Todo 的增删改)。 - 颜色与外观定制:
wtf.colors全局配色(背景/边框/标题/高亮),模块级颜色覆盖;navigation.shortcuts控制标题序号显隐。 - Secret Store:
wtf.secretStore集中保存模块密钥,命令行提供save-secret <service>子命令写入,避免把 API Key 明文写进配置文件。 - 单二进制、无守护进程:下载解压即用,无外部服务依赖;SSH 到服务器上同样可用。
- 多实例配置:
--config参数或WTF_CONFIG环境变量加载不同配置文件,可在多终端/多窗口跑多套不同主题的仪表盘。
五、快速开始(最小可用示例)
以下步骤来自官方 Quick Start(wtfutil.com/quick_start/,查询日期 2026-10-23,此处仅作认知引导;完整安装实测与回显见本专栏安装篇):
-
安装(两种官方推荐路径任选其一):
# macOS / Linuxbrew brew install wtfutil # 或直接下载单文件二进制 # 从 https://github.com/wtfutil/wtf/releases 下载对应平台的 tar.gz, # 解压后把 wtfutil 复制到 /usr/local/bin 并赋予执行权限 -
启动:终端内执行
wtfutil。首次启动会在~/.config/wtf/自动生成默认配置文件config.yml并按其渲染默认仪表盘(时钟、文本文件、命令输出等基础小部件)。 -
配置:编辑
~/.config/wtf/config.yml增删模块与调整网格;改完按 q 退出重启即可看到新布局。官方仓库_sample_configs/目录提供多个示例配置可直接套用。
六、适用场景与限制
6.1 适用场景
- 开发者常驻屏:编码时一侧终端常驻时钟 + 待办 + 日历 + GitHub/GitLab 通知 + 本机资源,代替在浏览器里开一堆标签页(项目名 "WTF = What are all these browser tabs open for?" 的由来,官方 Glossary)。
- 运维值守屏:用 CmdRunner 聚合
uptime、磁盘、队列长度等自定义巡检命令,配合 SSH 在跳板机/堡垒机环境使用——无浏览器也能用是硬需求时,这是网页面板给不了的。 - 多环境多份仪表盘:用
--config在不同终端窗口跑不同配置(一套个人、一套值班)。
6.2 限制
- 不是系统监控器:默认没有逐进程表、CPU/内存历史曲线这类"监控器刚需"能力;Resource Usage 模块只提供概览级信息。要监控细节应选 glances/bottom/btop(见下节对比)。
- 多数在线模块需要 API Key:日历、天气、行情、 PagerDuty 等模块依赖第三方服务与密钥,离线内网环境下可用模块集中于 clocks、textfile、cmdrunner、resourceusage 等本地型模块。
- 纯终端形态:没有 Web UI,无法把画面分享给浏览器用户;需要浏览器访问时应选 GoTTY(投终端)或 glances Web 模式。
- 更名迁移期:2026 年正处于 WTF→Tessera 更名过渡,文档、包名、二进制名双轨并存,脚本/文档引用时注意版本与名称对应关系。
七、同类选型对比(含量化数据)
7.1 横向对比表
下表对比 WTFUtil 与三款终端 TUI 工具及一款终端分享工具(星数均为 shields.io 徽章取证,查询日期 2026-10-23):
| 维度 | WTFUtil(wtfutil/wtf) | glances(nicolargo/glances) | bottom(ClementTsang/bottom) | gtop(aksakalli/gtop) | GoTTY(yudai/gotty) |
|---|---|---|---|---|---|
| 定位 | 个人信息仪表盘(信息聚合) | 全能系统监控(本机+客户机-服务端) | 系统资源监控器(htop 增强替代) | 系统监控仪表盘 | 终端投屏到 Web |
| 语言/技术栈 | Go + tview/tcell | Python + psutil + curses | Rust + ratatui | Node.js + blessed | Go + WebSocket |
| Star 数 | 17k | 34k | 14k | 9.9k | 20k(已 Archived) |
| 维护状态 | 活跃(2026-09 仍发版,更名 Tessera 迁移中) | 活跃 | 活跃 | 长期未更新 | 仓库已归档(Archived) |
| 界面内容 | 模块化网格,内容自定义(时钟/待办/日历/命令输出等 80+ 模块) | 系统指标为主:CPU/内存/磁盘/网络/进程/传感器 + Web/REST | 进程表 + CPU/内存/磁盘/网络/温度图表 + 自定义图表 | 固定面板:CPU/内存/磁盘/网络/进程 | 不渲染仪表盘,仅转发已有终端 |
| 扩展方式 | YAML 配置 + cmdrunner 跑任意命令,无需编码 | 配置文件 + 导出器/插件体系 | TOML 配置(图表/过滤/温度) | 无实质扩展能力 | 无(转发性质) |
| API Key 依赖 | 在线模块多数需要,本地模块不需要 | 不需要(监控本机) | 不需要 | 不需要 | 不需要 |
| 许可证 | MPL-2.0 | LGPL-3.0 | MIT | MIT | MIT |
关键解读:glances/bottom/gtop 的屏幕内容是"系统说了算",WTFUtil 的屏幕内容是"你的配置说了算"。这是"个人信息仪表盘"与"系统监控 TUI"的本质分野:前三者回答"这台机器现在怎么样",WTFUtil 回答"我今天的工作状态与需要盯的信息是什么样"。
7.2 与站内同类专栏互链
- 全能系统监控与多形态输出(CLI/Client-Server/Web/REST):见站内专栏 《glances 介绍与选型指南》;
- 现代 Rust 系统监控器(进程、图表、GPU):见站内专栏 《bottom 介绍与选型指南》;
- Node.js 终端仪表盘(已停更,仅供对照):见站内专栏 《gtop 介绍与选型指南》;
- 容器指标专用 TUI(Docker 容器视角监控):见站内专栏 《ctop 介绍与选型指南》。
7.3 "如果……则……"选型建议
- 如果要监控单机系统资源细节(逐进程、逐核、温度、GPU)→ 选 glances 或 bottom,不要选 WTFUtil;
- 如果要在终端常驻一块"个人工作台"(时钟、待办、日历、仓库动态、自定义命令输出)→ 选 WTFUtil;
- 如果两者都要→ 常见组合是:tmux 一格跑 bottom/glances 管系统,另一格跑 wtfutil 管信息聚合,二者互补不冲突;
- 如果要把终端画面分享到浏览器(教学、协同)→ 选 GoTTY 类工具(注意 yudai/gotty 已归档,需评估替代品),WTFUtil 无此能力;
- 如果内网离线环境、不能申请第三方 API Key → WTFUtil 只剩 clocks/textfile/cmdrunner/resourceusage 等本地模块可用,此时它近似"可编排的命令输出面板",是否值得引入需权衡;监控场景直接选 glances/bottom 更省事。
八、参考链接
- 仓库与发布:
https://github.com/wtfutil/wtf;v0.51.0 发布说明https://github.com/wtfutil/wtf/releases/tag/v0.51.0(查询日期 2026-10-23) - 更名讨论 Issue:
https://github.com/wtfutil/wtf/issues/2186(查询日期 2026-10-23) - 官方文档站:
https://wtfutil.com/(Quick Start / Installation / Configuration / Glossary / Modules,查询日期 2026-10-23) - 官方安装文档:
https://wtfutil.com/installation/(查询日期 2026-10-23) - 星数取证:
https://img.shields.io/github/stars/wtfutil/wtf、https://img.shields.io/github/stars/nicolargo/glances、https://img.shields.io/github/stars/ClementTsang/bottom、https://img.shields.io/github/stars/aksakalli/gtop、https://img.shields.io/github/stars/yudai/gotty(均查询于 2026-10-23) - 站内互链:《glances 介绍与选型指南》、《bottom 介绍与选型指南》、《gtop 介绍与选型指南》、《ctop 介绍与选型指南》