UStackUStack
Multitui favicon

Multitui

Multitui 是一款适用于 macOS 的应用工厂,可以将任意终端或 TUI 程序打包成独立沙盒化的原生 macOS 应用,为你提供文件系统保护、独立窗口以及深度 Finder 集成。

Multitui

什么是 Multitui?

什么是 Multitui?

Multitui 是一款 macOS 上的“应用工厂”,可以把任何基于终端的程序或 TUI(文本用户界面)程序封装为独立的原生 macOS 应用。相比直接在主终端里运行强大的工具和不受信任的代码,你可以生成一个个独立的 .app 包——拥有自己的图标、窗口、最近打开文稿和系统集成功能——同时享受细粒度的文件系统沙盒保护。

Multitui 面向重度用户、开发者,以及一切依赖命令行工具的人而设计,帮助你在不打乱现有工作流和终端配置的前提下更安全地使用这些工具。它本质上像一个可以访问你现有 CLI 工具的通用 shell,但在每个应用外面加了一层保护,限制代码在你的机器上能读取、写入或删除什么内容。因此非常适合运行 AI 编码代理、各种小工具以及专注型 TUI 应用,同时不破坏你的开发环境或个人文件。

主要特性

  • 为任意终端工具创建独立 macOS 应用
    将 TUI 和命令行程序转换成独立的 macOS 应用,每个都有自己的 .app 包。像 lazygithtop 或 AI 编码代理这样的工具,都可以拥有自己的窗口和图标,而不是挤在又一个终端标签页里。

  • 基于 macOS sandbox-exec 的文件系统沙盒
    Multitui 使用内置的 sandbox-exec 框架限制应用的访问权限:

    • 默认拒绝所有位置的删除操作
    • 默认拒绝对用户目录(~)的读写访问
    • 可针对特定路径或项目目录设置精确的允许规则
    • 对可信项目目录可选开放完整读写
    • 记录所有被拒绝的操作,方便你查看被拦截的内容并按需放行
    • 提供 "--dangerously-skip-permissions" 模式,当你明确希望绕过限制时可以启用
  • 基于文件夹与基于文件的应用
    按照你的工作方式构建应用:

    • 基于文件夹的应用:打开并在项目目录内工作(非常适合 AI 代码代理、lazygitdua 等工具)
    • 基于文件的应用:在 Finder 里双击文档,即可用你的自定义应用打开(非常适合 nano、SQLite 工具、JSON 查看器、十六进制编辑器等)
  • 一等公民级别的 macOS 集成
    每个生成的应用都像原生 Mac 应用一样工作:

    • 拥有 Dock 图标,可被 Spotlight 搜索到
    • 支持原生窗口管理(与 Rectangle、Magnet 等工具配合良好)
    • 支持“最近使用文稿”菜单和基于文稿的工作流
    • 支持原生标签页和可配置工具栏,包括无缝的极简工具栏
  • Finder 集成与文件处理
    直接从 Finder 启动应用并打开内容:

    • 提供 Finder 工具栏按钮,便于快速访问
    • 支持右键(上下文菜单)
    • 将文件或文件夹拖到 Dock 图标上即可打开
    • 可将应用注册为特定文件类型或扩展名的默认打开方式
    • 支持 URL Scheme(例如 claudecode://open?arg=/path/to/open
  • 命令行与自动化友好
    每个生成的应用都可以通过编程方式启动:

    • MyApp.app /path/to/open 这样在命令行中运行
    • 与 AppleScript 及各类自动化工作流集成
    • 与 shell 脚本、启动器或第三方自动化工具组合使用
  • 隔离的 shell 历史与命令片段
    保持主 shell 历史干净,让工具更专注:

    • 每个应用维护自己的命令历史,与主 shell 相互独立
    • 可将常用命令保存为针对该应用的片段(snippets)
    • 减少历史噪音,避免把实验性命令和日常命令混在一起
  • 为 AI 编码代理和开发工具优化
    安全运行 AI 代理和代码助手:

    • 提供针对 Claude Code、Codex、Gemini 等编码代理的预设示例
    • 允许它们在项目目录内工作,同时阻止访问系统其他部分
    • 防止在沙盒外路径发生意外删除文件或不必要的修改
  • 现成的示例应用
    Multitui 内置了一系列示例应用,展示你可以构建什么:

    • AI 与代码:Claude Code、Codex、Gemini、OpenCode(开源编码代理)
    • 开发工具lazygit(Git TUI)、dua(磁盘占用分析器)
    • 文件工具nano(文本编辑器)、Harlequin(SQLite 界面)、jqp(基于 jq 的 JSON 查看器)、十六进制查看器、Markdown 编辑器
    • 系统工具tophtop、网络监控器、电池电量/功耗监控、Docker 管理(lazydocker)等
  • 基于 CLI 工具的菜单栏小组件
    构建轻量级菜单栏应用,定期运行 CLI 命令并展示输出:

    • 显示 ping 延迟(例如到 1.1.1.1)
    • 通过 icanhazip.com 等服务显示外网 IP
    • 使用 wttr.in 等工具跟踪天气或温度
  • 保留现有终端工作流
    Multitui 是“加号”而不是“替代品”。你仍然可以使用 iTerm2、Ghostty、Alacritty 或 Terminal.app 处理一般任务,同时把最重要的工具迁移到独立、沙盒化的窗口中。

如何使用 Multitui

  1. 下载与安装

    • 下载适用于 macOS 的 Multitui 应用(原生支持 macOS 15 及以上版本)。
    • 将其拖入“应用程序”文件夹,然后像普通 Mac 应用一样启动。
  2. 创建新的应用配置

    • 打开 Multitui 的“应用工厂”界面。
    • 点击创建一个新的应用配置,为你想封装的工具建立配置(例如某个 AI 代理、lazygit、JSON 查看器或系统工具)。
    • 指定该应用需要运行的命令或可执行文件。
  3. 选择应用类型与行为

    • 决定你的应用是 基于文件夹(面向项目目录)还是 基于文件(打开具体文件)。
    • 配置用户如何打开内容:在 Finder 中双击、拖放、工具栏按钮,或者通过 URL Scheme。
  4. 配置沙盒规则

    • 打开沙盒配置面板。
    • 从安全默认值开始(全局禁止写入/删除,禁止访问用户目录)。
    • 为特定路径添加精确允许规则,例如你的项目目录或专用工作区。
    • 利用“拒绝日志”查看应用尝试访问的内容,并据此迭代规则。
  5. 自定义 macOS 集成

    • 设置应用名称、图标和外观。
    • 配置文稿处理方式、“最近使用文稿”行为以及工具栏样式。
    • 决定是否启用原生标签页,或采用无缝的极简工具栏外观。
  6. 构建并测试应用

    • 点击生成 .app 包。
    • 通过 Finder、Dock 或 Spotlight 启动新应用。
    • 确认底层 TUI/CLI 工具能在应用窗口中正常运行。
    • 通过执行常见操作并查看拒绝日志,验证沙盒是否按预期工作。
  7. 集成到你的工作流中

    • 将新应用固定到 Dock,方便快速打开。
    • 将其添加到 Finder 工具栏或相关文件/文件夹的右键菜单中。
    • 使用命令行或 URL Scheme 以编程方式打开特定目标。
    • 在应用内创建并保存常用命令片段,并依靠隔离的 shell 历史实现更专注的工作流。

使用场景

  1. 安全运行 AI 编码代理与助手
    安全地运行 Claude Code、Codex、Gemini 等 AI 编码代理或其他代码 Copilot。使用 Multitui 你可以:

    • 只允许代理在某个特定项目目录中读写
    • 阻止访问你的主目录、SSH 密钥或无关仓库
    • 在不担心影响系统其他位置的前提下,放心尝试生成代码 对希望充分利用 AI 能力、又不想完全开放文件系统权限的开发者来说,这种方式非常理想。
  2. 专注开发的独立 TUI 应用
    将常用 TUI 工具转换为独立应用:

    • lazygit 封装为独立的 Git 管理应用
    • dua 打造成磁盘使用情况分析应用
    • 使用 lazydocker 构建 Docker 管理应用 每个工具都有自己的窗口和 Dock 图标,你可以减少终端标签页拥挤,同时充分利用 macOS 的窗口管理和快捷键。
  3. 强大的文件与数据查看/编辑器
    基于 CLI 工具构建以文件为中心的应用,用于查看和编辑数据:

    • 将文本编辑器(如 nano)做成“双击文本文件即打开”的应用
    • 使用 Harlequin 等工具构建 SQLite 数据库查看应用
    • 通过 jqpjq 实现 JSON 查看器
    • 构建十六进制查看器或补丁工具,用于底层文件检查 借助 Finder 集成,你可以通过双击或右键菜单,将文件自动交给自定义的 Multitui 应用打开。
  4. 系统监控与诊断
    将系统工具转化为随时可用、彼此隔离的监控应用:

    • 将资源监控工具(tophtop)放在专用窗口中
    • 网络连接与流量监控工具
    • 电池使用情况或功耗监控 借助全局快捷键或“置顶显示”等选项(在你的配置支持的情况下),让关键视图在工作时始终可见。
  5. 由 CLI 命令驱动的菜单栏状态组件
    利用 Multitui 将简单的 CLI 输出做成轻量菜单栏小组件:

    • 定时 ping 指定主机(如 1.1.1.1),并在菜单栏显示延迟
    • 通过轮询 icanhazip.com 显示当前公网 IP
    • 通过 wttr.in 获取并显示本地天气或温度 这些小而专注的应用可以实时展示状态信息,无需打开浏览器或完整终端窗口。

常见问题(FAQ)

1. Multitui 支持哪些平台?
Multitui 是专为 macOS 15 及以上系统设计的原生应用。它依赖 sandbox-exec、Dock 集成、Finder 扩展和原生文稿处理等 macOS 特有技术,因此不提供 Windows 或 Linux 版本。

2. 我需要更换现有终端或 shell 吗?
不需要。Multitui 旨在补充而不是替代你当前的工作流。你仍然可以继续使用 iTerm2、Ghostty、Alacritty、Terminal.app 或其他任何终端处理日常工作。Multitui 更适合把特定工具——如 AI 代理、TUI 应用和系统工具——放进各自独立、带沙盒的应用窗口中。

3. Multitui 如何保护我的文件系统?
Multitui 使用 macOS 的 sandbox-exec 将每个生成的应用限制在指定范围内。默认情况下,它会拒绝所有位置的删除操作,并阻止对用户目录(~)的读写。你可以针对可信路径(例如某个项目目录)添加特定的允许规则。所有被拒绝的操作都将被记录,方便你查看并决定是否有选择地放宽限制。同时也提供一个显式选项,用于在你有意希望完全开放权限时绕过这些保护。

4. 我可以直接用 Multitui 应用打开文件和文件夹吗?
可以。Multitui 与 Finder 及 macOS 的文稿处理系统深度集成,你可以:

  • 双击文件,用已注册的自定义应用打开
  • 使用 Finder 工具栏按钮或右键菜单项
  • 将文件或文件夹拖到 Dock 图标上
  • 使用 URL Scheme(如 claudecode://open?arg=/path/to/open)以及诸如 MyApp.app /path/to/open 的命令行方式以编程方式打开内容。

5. Multitui 适合非开发者使用吗?
Multitui 主要面向熟悉命令行工具的技术用户和重度用户。不过,一旦应用配置完成,非技术用户也可以直接使用生成的 .app 包——双击打开文件、运行工具、使用菜单栏小组件,完全无需接触终端。团队里可以由高级用户负责创建和配置应用,其余成员像使用普通 macOS 应用一样使用这些工具。

Multitui | UStack