面向 Profiles、Hosts 和命令启动流程的终端工作区管理工具
9 种运行模式 · iTerm2/Ghostty 窗口分组 · 可复用环境配置 · SSH 主机库存
- Burrows — 9 种运行模式启动终端会话(Shell / SSH / Command / Codex / Docker / K8s / Tmux / Remote Tmux / Script) → 配置指南
- Dens — 同组 Burrow 共享终端窗口(iTerm2 Tab / Ghostty Window) → 配置指南
- Profiles — 可复用环境配置 + Provider 预设模板(Claude / DeepSeek / GLM / Maxx) → 配置指南
- Hosts — SSH 主机库存、分组、堡垒机/JumpHost → 配置指南
其他:System Tray 快捷菜单、Burrow Export/Import、Profile 变更自动同步、中英双语、主题切换
| 平台 | Backend |
|---|---|
| macOS | tmux(本地) |
| Linux | tmux(本地) |
| Windows | WSL + tmux(默认)· PowerShell(原生,无需 WSL/tmux) |
Windows 上每个 Burrow 可以选择运行时 backend:
- WSL + tmux — 在 WSL 内通过 tmux 运行会话。需要
wsl.exe、一个 WSL 发行版,以及发行版内安装的tmux。 - PowerShell(原生) — 直接在 PowerShell 中运行会话,无需 WSL 或 tmux。会话在内存中运行,打开独立控制台窗口。
| 终端 | macOS | Linux | Windows |
|---|---|---|---|
| Terminal.app | Yes | ||
| iTerm2 | Yes | ||
| Ghostty | Yes | Yes | |
| Warp | Yes | Yes | |
| Alacritty | Yes | Yes | |
| Kitty | Yes | Yes | |
| Rio | Yes | Yes | |
| WezTerm | Yes | ||
| GNOME Terminal | Yes | ||
| Konsole | Yes | ||
| xterm | Yes | ||
| Tilix | Yes | ||
| Terminator | Yes | ||
| Foot | Yes | ||
| PowerShell 7 (pwsh) | Yes | ||
| PowerShell (Windows PowerShell) | Yes | ||
| CMD | Yes |
- iTerm2:基于 AppleScript 的窗口/Tab 管理 — 查找或创建名为
Mole: <den>的窗口,同 Den 会话添加到同一窗口的 Tab,支持聚焦和关闭 - Ghostty:不支持 Den 分组——Ghostty 没有 window-id/分组配置项,每个会话独立窗口
- 其他终端:每个会话独立窗口
对于无法通过程序接受命令的终端(Warp、部分通用终端),Mole 会将命令复制到剪贴板并打开空白终端。
- macOS 仍然是目前最成熟、验证最充分的路径。
- Linux 已经具备平台化的终端检测和启动逻辑,但还需要更多真实机器验证。
- Windows 支持两种运行时 backend:WSL + tmux(默认,需要 WSL + tmux 环境)和 PowerShell(原生,开箱即用无额外依赖)。两条路径均已实现,但验证深度不如 macOS。
Mole 会把应用数据以 JSON 文件形式保存在 ~/.config/mole/ 下:
| 文件 | 内容 |
|---|---|
profiles.json |
Profile 定义,包含环境变量和 secret 标记 |
sessions.json |
会话定义(运行模式、插件引用、Den、使用记录) |
hosts.json |
主机库存(主机、分组、默认值) |
settings.json |
设置(默认终端) |
codex_configs.json |
Codex 配置定义 |
docker_configs.json |
Docker 配置定义 |
plugin_configs.json |
插件预设定义(K8s Pod、Tmux Attach、Remote Tmux) |
script_configs.json |
脚本预设定义(内置 VS Code + Claude 脚本、用户脚本) |
ai/codex/<id>/ |
独立的 Codex home 目录(config.toml、auth.json) |
secret_keys 只决定 UI 是否做掩码显示,真实值仍然保存在 profiles.json 里。所以本地开发数据里最好不要直接放生产环境凭据。
- Backend:Go + Wails v2
- Frontend:React 19 + TypeScript + Vite
- UI:Tailwind CSS v4 + Radix primitives
- Runtime backend:macOS/Linux 使用本地
tmux,Windows 使用WSL + tmux或PowerShell - System tray:
fyne.io/systray(macOS,需要 CGO)
brew tap itcuihao/mole https://github.com/itcuihao/mole.git
brew install --cask itcuihao/mole/mole安装后更新:
brew update
brew upgrade --cask itcuihao/mole/moleMole 通过自定义 tap 分发,未加入 Homebrew 官方 cask 仓库,直接使用
brew upgrade --cask mole(不带 tap 前缀)将无法找到。
Mole 运行时依赖 tmux。如果系统里还没有:
brew install tmux./scripts/run.sh
./scripts/build.shcd frontend && npm install
wails dev
wails buildgo test ./...
cd frontend && npx tsc --noEmit- macOS:需要安装
tmux,并确保它在PATH中可用 - Linux:需要安装
tmux,并确保它在PATH中可用 - Windows(WSL + tmux backend):
- 需要系统可调用
wsl.exe - 需要至少初始化一个 WSL 发行版
- 默认 WSL 发行版中需要已安装
tmux
- 需要系统可调用
- Windows(PowerShell backend):
- 无额外依赖 — 使用系统内置 PowerShell 或 PowerShell 7 即可
# macOS
brew install tmux
# Ubuntu / Debian
sudo apt install tmux
# WSL(进入 Linux shell 后执行)
sudo apt install tmux如果还没有初始化发行版:
wsl --install -d Ubuntu- 在 Profiles 页面创建一个 Profile。
- 如果需要 SSH 目标,可以先在 Hosts 页面保存 Host 和 Group。
- 在 Burrows 页面创建 Burrow —— 选择一种运行模式,进行配置,可选分配一个 Den。
- 在线 Burrow 使用 Open,离线但已保存的 Burrow 使用 Restore。
Mole 会把 Burrow 元数据和真实运行时 backend 分开存储。所以即使 backend 进程暂时没了,保存过的 Burrow 依然会留在 UI 中,并且可以通过 Restore 按原配置重建。
内置脚本预设位于 Settings > Scripts(首次运行时自动创建)。也可以使用仓库中的独立脚本:
scripts/vscode-claude/start_vscode_claude_mac.sh— macOSscripts/vscode-claude/start_vscode_claude_win.ps1— Windows(PowerShell backend)scripts/vscode-claude/start_vscode_claude_wsl.sh— Windows(WSL + tmux backend)
脚本的配置由 Mole 自动传入:
- 工作目录:来自 Burrow 的
workspace字段(MOLE_WORKSPACE环境变量) - 环境变量:来自 Profile 的 env vars(如
ANTHROPIC_API_KEY)
在 Mole Profile 中添加以下环境变量:
ANTHROPIC_API_KEY(必填)ANTHROPIC_BASE_URL(可选)
脚本会自动:
- 使用
MOLE_WORKSPACE作为项目目录(未设置时回退到$HOME) - 确保项目下有
.claude/目录 - 打开 VS Code 并进入项目目录
新建 Burrow,选择本地运行,命令填写:
- macOS:
bash /绝对路径/mole/scripts/vscode-claude/start_vscode_claude_mac.sh - Windows:
powershell -ExecutionPolicy Bypass -File \"D:\\绝对路径\\mole\\scripts\\vscode-claude\\start_vscode_claude_win.ps1\"
之后用户只需要点击一次 Open/Restart。
KEY=value
export DATABASE_URL=postgresql://localhost/app
{"API_BASE_URL": "https://example.com", "TOKEN": "dev-token"}GitHub Actions 会在推送 v* tag 时自动构建并发布 Release。当前产物包括:
- macOS ZIP(arm64 + amd64)
- Windows ZIP(amd64)
- 对应 SHA256 校验文件
./scripts/release.sh --version v0.1.3- 早期规划资料保存在
docs/archive/mole-design-legacy.md frontend/wailsjs/下的 Wails bindings 是生成文件- 运行时 session 元数据里目前仍保留
tmux_session_name字段做兼容,但内部会话操作已经改为按session id路由
MIT
