Toolbox Hub

把「命令复杂、参数众多、难以记忆」的 CLI 工具,以及我自己写的脚本,统一包装成一个可发现、可填表、可回看的 Rust TUI 工具箱。

它不是桌面应用启动器:TUI 只是 CLI 工具的交互层,同一个二进制也支持直接执行动作。

当前状态

当前注册表已经按领域组织工具:

  • 媒体 44
  • 图像 3
  • 系统 11
  • 网络 8
  • 开发 4
  • 工具 2
  • 打包 20
  • 包管理 7

工具来源分成三类:内置 FFmpeg/媒体动作、本地脚本,以及 TOML Manifest。Manifest 放入 ~/.config/toolbox-hub/tools.d/ 后即可通过 Ctrl-R 重载,不需要重新编译。

当前能力

工具与媒体工作流

  • FFmpeg 等 CLI 工具的统一参数表单
  • 参数预览与执行前确认
  • 文件字段选择、批量 foreach 输入与输出模板
  • 搜索、分类、收藏、历史与最近使用
  • 工作目录管理
  • 输出保存与复制
  • 后台任务、实时输出与 SIGTERM 取消

文件与终端交互

  • 独立文件视图与文件过滤
  • 图片终端预览,支持 kitty / sixel / iTerm2 等协议,并有字符降级
  • yazi 文件管理器接管
  • 鼠标左键选择、双击执行、滚轮滚动以及包管理界面鼠标操作
  • 表单中的文件选择器

软件包中心

包管理已经不是简单调用 pacman 的输出解析,而是单独的数据层:

  • libalpm 直接读取 Arch 包数据库
  • 官方仓库搜索、已安装、孤儿、可更新、依赖索引
  • AUR RPC 搜索
  • Arch News 未读/已读
  • 软件包维护检查
  • 安装、卸载、更新、清缓存、清孤儿
  • 安装队列持久化
  • PKGBUILD 检查、查看和 AUR 页面入口
  • CLI 与 TUI 共用同一套命令翻译和确认逻辑

真正修改系统的操作会先显示即将执行的命令,再二次确认;支持 dry-run。

sing-box 运维动作

Toolbox Hub 还把一套本地 sing-box 运维脚本接进了统一动作模型,包括:

  • sing-box 体检
  • 审计修复
  • TUN / eBPF 模式切换
  • 容器代理

配置修改遵循「检查 → 备份 → 原子替换 → 重启 → 健康检查 → 失败回滚」的安全管线。

CLI / TUI 双模式

除了 TUI,还可以直接执行:

toolbox-hub -s fzf
toolbox-hub -i fzf ripgrep
toolbox-hub -u
toolbox-hub -n --unread
toolbox-hub --orphans
toolbox-hub --clear-cache

另外提供可供脚本复用的 ui pick、ui confirm、ui pager 组件,界面走 /dev/tty,stdout 保留给脚本结果。

架构取舍

项目明确面向 Arch 系 Linux。包数据层直接使用 libalpm,而不是解析 pacman 文本输出;执行层仍然调用成熟的 CLI 工具,因此保持可组合、可预览,也避免把 FFmpeg 等大型工具重新实现一遍。

整体架构按 model → providers / registry → app / ui 与独立的 packages、runtime、media 模块分层,Provider、UI、执行和包管理职责彼此隔离。

技术栈

RustratatuilibalpmTUIFFmpegAUR RPC

Toolbox Hub 文档与入口

GitHub


评论
avatar
emoeem
技术博客 · 开源项目 · Linux · Rust · AI Coding · 音视频
GitHub
公告
代码、Linux、Rust、AI、音视频与开源项目。记录正在做的事情。
Now
正在做什么

一苇 · Yiwei、VoiceFox,以及 Linux / Rust 工具链。

查看 Now →