资讯详情

【开源评测】disktree:Shopify CEO 用 Rust + GPUI 手搓磁盘可视化工具——从 treemap 到 Agent 时代的系统级基础设施

📅 2026/10/8 2:11:17 | 华诺云谱 👁 阅读
【开源评测】disktree:Shopify CEO 用 Rust + GPUI 手搓磁盘可视化工具——从 treemap 到 Agent 时代的系统级基础设施
【开源评测】disktreeShopify CEO 用 Rust GPUI 手搓磁盘可视化工具——从 treemap 到 Agent 时代的系统级基础设施摘要2026 年 9 月 24 日Shopify 创始人 Tobi Lütke 在 GitHub 上发布了一款名为 disktree 的磁盘占用可视化工具。6 天内斩获 2,240 Star、140 Fork主语言 RustMIT 许可。它的技术底座是 Zed 编辑器的 GPU 加速 UI 框架 GPUI运行在 DHH 打造的 Arch 系桌面发行版 Omarchy 之上——三者共同指向一个被低估的命题Agent 时代操作系统需要怎样的工具链。本文基于 commit 7c0661c 的静态取证从技术栈、可视化机制、安全设计、横向对比四个维度展开分析。文章目录【开源评测】disktreeShopify CEO 用 Rust GPUI 手搓磁盘可视化工具——从 treemap 到 Agent 时代的系统级基础设施一、Shopify CEO 为什么在写磁盘清理工具二、GPUI 技术栈从 Zed 编辑器走向独立的桌面框架2.1 GPUI 是什么2.2 对 disktree 的实际意义2.3 gpui-omarchy桌面风格的组件桥三、treemap 可视化机制如何用一张图讲清磁盘占用3.1 度量口径st_blocks × 512而非标称大小3.2 双通道视觉编码颜色 斜纹3.3 分类引擎内置数百个目录名规则3.4 “Worth a look” 清单排序而非拍板四、安全删除流程为什么“不删”比“删得快”更重要4.1 标记-审查-提交三步流程4.2 八类拒绝删除规则4.3 默认走回收站五、性能实测3.4 秒扫描 400 万文件5.1 扫描速度5.2 体积与资源占用5.3 与同类工具的横向对比六、Omarchy 生态一个“Agent 原生操作系统”的组件拼图6.1 Omarchy 是什么6.2 disktree 在生态中的角色七、上手实战安装与使用7.1 环境要求7.2 安装方式7.3 基本操作7.4 macOS 用户注意事项八、合规红线与落地建议8.1 安全边界8.2 务实的使用建议九、总结一、Shopify CEO 为什么在写磁盘清理工具磁盘占用可视化并不是一个新赛道。Windows 上有 WizTree 和 WinDirStatmacOS 上有 DaisyDisk 和 GrandPerspectiveLinux 上也有 ncdu 和 dua-cli。这些工具大多已经存在五年以上功能日趋成熟。disktree 的价值不在于“又一个磁盘分析器”而在于它回答了一个 2026 年才变得紧迫的问题当 AI Agent 开始大规模在本地磁盘上工作时谁来管理它们产出的文件项目作者 Tobi LütkeTobias Lütke是 Shopify 的创始人兼 CEO同时也是 Ruby on Rails 最早的一批核心贡献者。根据项目 README 的描述disktree 的目标是“找出是什么在填满你的磁盘标记应该删除的内容然后移除它们——始终可以看到卷的空闲空间”。触发这个项目的是 Agentic 编程带来的实际痛点。技术媒体的分析指出“工作树、沙盒、构建文件堆得很快。disktree 给了一张地图不用自己埋头用du和rm”——它能识别哪些东西在占空间比如 Codex 的工作树、缓存目录删除之前可以先行检查。这是一个值得注意的信号。当 Claude Code、Codex、Cursor 等 Agent 工具在本地生成越来越多的工作树、快照、构建产物时传统的磁盘管理工具——无论是基于文件的还是基于 GUI 的——都没有针对这种新型文件模式做过优化。disktree 切入的正是这个缝隙。二、GPUI 技术栈从 Zed 编辑器走向独立的桌面框架2.1 GPUI 是什么disktree 最核心的技术决策是选择了 GPUI 而非传统的 GUI 框架如 GTK、Qt 或 Electron。GPUI 是 Zed 编辑器团队从零构建的 Rust UI 框架其设计理念是把整个应用“当作视频游戏来构建”——围绕向 GPU 着色器馈送数据来组织应用结构而非像网页那样渲染。crates.io 的描述将其定义为“混合即时模式immediate mode和保留模式retained mode的、GPU 加速的 Rust UI 框架”。GPUI 目前仍处于 pre-1.0 阶段活跃开发的主要驱动力是 Zed 编辑器本身。它解决了传统桌面框架中一个棘手的问题叠加层管理——菜单、子菜单、弹出层、悬浮卡片、工具提示和模态框全部在一个 GPU surface 内解决而不需要顶层窗口或独立渲染上下文。2.2 对 disktree 的实际意义对于磁盘可视化这种场景GPUI 的优势非常直接大量方块的高效渲染treemap 的本质是成千上万个矩形色块GPU 加速的渲染管线远比 CPU 渲染的 GTK/Qt 更适合这种工作负载平滑的缩放与平移滚轮缩放、键盘导航等交互操作需要帧级响应GPU 渲染能够保证 60fps 以上的流畅体验与现代桌面环境的视觉一致性disktree 通过gpui-omarchy组件库构建自动跟随 Omarchy 主题与桌面其余部分行为一致需要强调的是 GPUI 的跨平台能力。根据 GPUI 的平台支持文档它支持“预编译的 Linux、Apple silicon macOS 和 x86-64 Windows 主机”。macOS 上渲染通过 Metal 实现Linux/FreeBSD 上需要启用 Wayland 或 X11 窗口后端。不过 GPUI 仍在积极开发中社区也有多个 fork 版本如 gpui-ce、gpui-fast、gpuix表明生态尚未收敛。2.3 gpui-omarchy桌面风格的组件桥disktree 并非直接使用裸 GPUI而是通过gpui-omarchy组件库接入。gpui-omarchy是为 Omarchy 系统风格专门设计的 GPUI 组件库遵循 Omarchy 的 UI/UX 约定。这种分层设计的价值在于应用开发者不需要从零实现主题适配。disktree 的 UI 自动融入 Omarchy 桌面包括配色方案、控件风格和交互模式而 Lütke 只需要关注 treemap 渲染和文件系统扫描的核心逻辑。值得一提的是gpui-omarchy由 huacnleeJason Lee开发并发布到 crates.io。这表明 GPUI 生态正在从 Zed 单体仓库向独立社区项目扩散——这是一个框架走向成熟的积极信号。三、treemap 可视化机制如何用一张图讲清磁盘占用3.1 度量口径st_blocks × 512而非标称大小disktree 在度量口径上做了一个关键决策默认使用磁盘实际占用st_blocks × 512而非文件的标称长度。这个选择在工程上意义重大。一个 1MB 的稀疏文件可能在磁盘上只占用 4KB而一个包含大量小文件的目录实际磁盘占用可能远超标称大小之和。技术社区的实测说明指出“方块面积不按文件的标称长度算而是按它在磁盘上真正占了几个块算所以图上看到的比例就是删掉之后真正会空出来的比例”。disktree 也提供了切换选项用户可以在Apparent size标称大小和磁盘占用默认之间切换。3.2 双通道视觉编码颜色 斜纹disktree 的 treemap 视觉设计采用了两个互不干扰的编码通道这是它区别于传统磁盘分析工具的核心设计通道编码内容具体实现颜色色相数据类别源码仓库、Agent 临时区、工具链、同步盘、git 对象库、媒体、文档、缓存各占一个色相斜纹纹理可回收性斜纹叠加在颜色之上与类别无关表示该块数据可以被安全回收所有颜色被压在同一档饱和度和明度上因此没有任何一块会因为颜色突出而干扰判断。这个设计决策说明 Lütke 对信息可视化的理解相当深入——颜色应该编码分类而非吸引注意力。3.3 分类引擎内置数百个目录名规则disktree 如何判断一个目录属于哪个类别答案是一个基于目录名的规则引擎。代码中内置了数百个常见目录名——src、work、.cargo、.cache、node_modules等——扫到一个名字就给它定一个种类认不出的目录继承父目录的种类顶层中认不出的则看它最大的可识别子目录。对于可回收性判断disktree 采用了更保守的策略。以target目录为例这个目录名在 Rust 项目中通常是编译产物可回收但在其他上下文中可能有不同含义。disktree 的规则是只有当target旁边存在Cargo.toml时才将其标记为编译产物。这种上下文感知的判断避免了大量误判。3.4 “Worth a look” 清单排序而非拍板右侧面板下方有一份名为 “Worth a look” 的清单把当前视图中最可能可以删除的大件按大小排出来每条标注可回收原因——regenerable可重新生成、build output构建产物等。但这份清单的定位非常明确只负责排序不替你拍板。这个设计哲学值得赞赏。在磁盘清理工具中最危险的设计就是“一键清理”——用户可能在不完全理解后果的情况下删除重要文件。disktree 选择把决策权完全交给用户工具只提供信息和排序。四、安全删除流程为什么“不删”比“删得快”更重要4.1 标记-审查-提交三步流程disktree 的删除流程设计体现了对误删风险的严肃对待。整个流程分为三步标记Mark→ 审查Review→ 提交Commit。你可以标记任意数量的文件但“在你审查列表并提交之前什么都不会发生永久删除的路径总是会先询问”。4.2 八类拒绝删除规则disktree 内置了八类“拒绝删除”规则覆盖了常见的危险目录模式。结合项目源码和社区分析这些规则涵盖系统关键目录、正在运行进程持有的文件、符号链接指向的目录、以及具有特定语义的目录如.git本身而非其中的objects子目录。4.3 默认走回收站在支持的情况下disktree 默认将标记的文件移入回收站而非直接永久删除。AUR 包详情显示将标记文件移入回收站需要安装glib2作为可选依赖通过gio trash实现。这与rm -rf式的直接删除形成鲜明对比为用户提供了“后悔药”。五、性能实测3.4 秒扫描 400 万文件5.1 扫描速度根据技术社区的实测数据disktree 扫描 400 万个文件仅用了3.4 秒比 WizTree 快了约 3 倍。这一性能表现得益于 Rust 的零成本抽象和 GPUI 的 GPU 加速渲染。需要指出的是WizTree 在 Windows 上的速度优势主要来自直接读取 NTFS 主文件表MFT绕过了文件系统遍历。disktree 在 Linux 上采用的是标准目录遍历 并行扫描策略其 3.4 秒的成绩更多反映的是 Rust 并行 I/O 的效率而非文件系统层面的特殊优化。5.2 体积与资源占用disktree 的发布二进制体积控制在十几兆级别同时将“极速扫描和马赛克面积透视做得这么齐整界面还是现代化的暗黑质感”。这得益于 Rust 的无运行时特性和 GPUI 的轻量级架构——没有 Electron 的 Chromium 开销也没有 GTK/Qt 的庞杂依赖。5.3 与同类工具的横向对比维度disktreeWizTreeWinDirStatDaisyDiskdua-cli语言RustCCSwiftRustUI 框架GPUI (GPU 加速)Win32QtCocoaTUI平台Linux / macOSWindowsWindowsmacOS全平台度量口径磁盘占用 (st_blocks)标称 MFT标称磁盘占用磁盘占用可视化Treemap 分类色 可回收斜纹TreemapTreemapSunburstTUI 列表删除安全标记-审查-提交 回收站直接删除直接删除直接删除直接删除Agent 文件识别✅ 内置规则❌❌❌❌开源许可MIT免费但闭源GPL商业MITdisktree 的差异化定位非常清晰它是唯一一款原生支持 Linux、针对 Agent 产出文件做过优化、且把删除安全放在首位的 treemap 工具。WizTree 速度更快Windows 平台DaisyDisk 界面更精美macOS 平台但它们都不是为 Agent 时代准备的。六、Omarchy 生态一个“Agent 原生操作系统”的组件拼图6.1 Omarchy 是什么理解 disktree 的定位不能脱离 Omarchy 这个更大的生态。Omarchy 是 DHHDavid Heinemeier HanssonRuby on Rails 创始人打造的 Arch Linux 发行版基于 Hyprland 平铺窗口管理器。2026 年 8 月发布的 4.0 版本代号 Quattro是该项目最大的一次重构不再以 Git checkout 方式管理而是通过标准 Arch 包安装和更新。Omarchy 的定位是一套“有明确取向的”Linux 桌面——它不试图成为一个包罗万象的发行版而是以“美观、现代且有明确取舍”的方式面向开发者。极客公园的一篇分析将其描述为“第一个 Agent 原生操作系统”而 DHH 本人也将其定位为“Agent 时代的操作系统”。2026 年 8 月 21 日DHH 宣布成立 Omacom 基金会首期获得 800 万美元捐赠来自包括 Jack Dorsey 在内的八位科技行业人士。6.2 disktree 在生态中的角色disktree 并非 Omarchy 的官方组件但已经被纳入默认安装——一条 Pull Request 将其添加到了 Omarchy 的 base packages 和 preinstalls 中。同时它也已经进入 Arch Linux AUR包名为disktree从源码构建和disktree-bin安装预编译二进制。这个生态位置说明了一个趋势操作系统正在从“通用工具集合”转向“面向特定工作流的集成环境”。Omarchy 为 Agent 开发者提供了一套开箱即用的桌面环境而 disktree 是这个环境中解决“Agent 文件堆积”问题的标准工具。七、上手实战安装与使用7.1 环境要求依赖要求Rust1.97 或更新版本rust-toolchain.toml已固定显示服务器Wayland 或 X11GPU支持 VulkanGPUI 驱动要求系统Linux x86_64 / aarch64或 macOS 117.2 安装方式方式一预编译二进制推荐从 GitHub Releases 下载对应平台的压缩包解压后运行./install.sh或直接将disktree复制到 PATH 中。方式二从源码构建gitclone https://github.com/tobi/disktreecddisktreemakeinstallmake install会构建 release 二进制并将三个文件安装到~/.local~/.local/bin/disktree、一个桌面入口文件使 disktree 出现在启动器和文件管理器的“打开方式”中、以及一个图标。不需要 root 权限。方式三Arch / OmarchyAURyay-Sdisktree-bin# 安装预编译二进制# 或yay-Sdisktree# 从源码构建7.3 基本操作默认扫描目录$HOME缩放滚轮朝指针方向放大导航回车进入目录退格退回上层方向键在相邻块之间跳转视图切换Size按大小/ Files按文件数/ Age按修改时间删除流程标记 → 审查列表 → 确认提交7.4 macOS 用户注意事项macOS 版本需要手动处理 Gatekeeper 的隔离标记。如果遇到“已损坏无法打开”的提示执行xattr-drcom.apple.quarantine /Applications/disktree.app此外macOS 需要在“系统设置 › 隐私与安全性”中授予Full Disk Access否则 Mail、Messages、Safari 等应用的数据和废纸篓将被隐藏并计为不可读。八、合规红线与落地建议8.1 安全边界只读扫描 显式确认删除是底线。disktree 的设计已经默认了这一点——标记-审查-提交流程和回收站默认行为构成了双重保护。用户不应绕过这些保护直接使用rm -rf处理标记的文件。审查规则引擎的局限性。基于目录名的分类引擎虽然覆盖了数百个常见模式但无法理解所有项目的特殊结构。例如一个非标准布局的项目的构建产物目录可能不会被识别为“可回收”。在删除标记文件之前建议逐一确认其内容。macOS 权限的权衡。授予 Full Disk Access 意味着 disktree 可以读取系统上的所有文件。这是一个强大的权限应当仅在信任该应用的前提下授予。8.2 务实的使用建议第一步先在非关键目录测试。在~/Downloads或~/tmp等非关键目录中体验完整的标记-审查-删除流程熟悉工具行为后再用于 home 目录根级别。第二步结合.gitignore进行判断。对于代码项目treemap 中标记为“可回收”的target/、node_modules/、.cache/等目录通常可以通过重新构建恢复。但删除前应确认没有正在进行的构建任务依赖这些文件。第三步定期清理 Agent 工作产物。这是 disktree 最初设计要解决的问题。Claude Code、Codex 等工具生成的临时工作树、快照和沙盒目录通常会占用大量空间建议定期扫描并清理。九、总结disktree 的技术价值可以从三个层次来理解。工具层它提供了一个高性能、跨平台Linux macOS、安全优先的磁盘占用可视化工具。Rust GPUI 的技术栈使其在扫描速度和渲染流畅度上都达到了同类工具中的领先水平。3.4 秒扫描 400 万文件的性能表现以及标记-审查-提交的安全删除流程使其在实用性上不输于任何商业竞品。生态层它是 Omarchy “Agent 原生操作系统”拼图中的一块。当 DHH 把 Omarchy 定位为“Agent 时代的操作系统”时disktree 回答了其中一个具体问题Agent 在本地磁盘上产出的文件谁来管理。这个问题的答案不是“用户手动清理”而是一个专门为这种工作模式设计的工具。范式层它展示了 GPUI 作为独立桌面 UI 框架的潜力。GPUI 最初是 Zed 编辑器团队为了解决自身渲染需求而构建的但 disktree 证明了它同样适合构建磁盘可视化这类非编辑器应用。当社区开始为 GPUI 贡献组件库如gpui-omarchy和 fork 版本如gpui-ce、gpuix时这个框架正在从“Zed 的私有技术”走向“Rust 桌面生态的公共基础设施”。对于 Omarchy 用户disktree 已经是默认安装的一部分无需额外配置即可使用。对于更广泛的 Linux 和 macOS 开发者它是一个值得尝试的 Rust GPUI 实战案例——尤其是当你需要处理 Agent 工具留下的“数字垃圾”时。合规声明本文结论基于 repos/disktree 7c0661c 的浅克隆关键文件证据git clone --depth 1 --filterblob:none --no-checkout --no-tags经 Valhalla-SafeNet-Accelerator 合规审计。文件树 56 项检出关键文件 30 个根契约 / CI / 测试 / 代表性源码。许可MIT商用前请阅读 LICENSE 全文。批次账本链头df786ff13f801cb406becd20f0d58b27bb64e0d08c48a09f8e4c39b1a509e93a。未经运行时实测建议读者在隔离环境中自行验证。标签#Rust#GPUI#Omarchy#磁盘管理#开源评测#Tobi LütkeValhalla SafeNet Accelerator × Matrix Alchemy Lab · 本周最热 Top10 独立评测系列 #10
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑