Skip to content
Conduit

skill

Muster

Windows 原生终端工作区 — 终端、文件、Diff、Git 一窗之内。A native Windows terminal workspace built with Tauri 2 + Rust + React + xterm.js.

JinMXu/Mustercommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/JinMXu/Muster itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 25, 2026

Muster

Windows 原生的终端工作区 — 终端、文件、Diff、Git,一窗之内。

基于 Tauri 2 + React + xterm.js,Rust 后端直接驱动 ConPTY 与 libgit2。

📥 下载最新版安装包(MSI / NSIS)

Platform Release Downloads License Built with Tauri


亮点

🖥️ 终端工作区

niri 风格分屏布局,拖拽重排、焦点跟随、单 pane 最大化。ConPTY 驱动的完整终端仿真,PowerShell 深度集成 — 每条命令自动上报 cwd。

📂 文件与 Git 内建

Monaco 编辑器 + Diff 视图,主题跟随全局。Git 面板支持暂存/提交/push/pull/stash/分支管理,检查点功能持续追踪 HEAD 之后的全部变更。

🤖 Agent 感知

自动识别 Claude Code / OpenCode / Codex / GitHub Copilot / Cursor / Gemini CLI / Qwen Code 等 26 种 coding agent,标签显示状态点(绿=运行、黄=等待输入、红=待批准、蓝=已完成),失焦时发系统通知;重启后可从终端右键菜单重新运行上次的 agent。CLI 桥让 AI 代理驱动终端。


功能一览

模块能力
多窗口多开窗口并行,布局定时快照,重启完整恢复。最后窗口关闭后驻留系统托盘(左键点击或右键菜单恢复主窗口/打开目录/设置/退出),终端会话不中断
分屏布局列×行网格,拖拽 pane 到任意边缘重排,跨标签页拖拽,焦点跟随,zoom 最大化
终端ConPTY 完整仿真(xterm.js),PowerShell 自动上报 cwd,响铃通知
Worktree 追踪cd 进 worktree 后面板即时重锚定(事件驱动),Info 面板显示标记
文件编辑器Monaco 语法高亮/查找替换/自动换行;内联 diff vs HEAD(实时更新)、git blame、文件历史;终端报错行点击直达
差异查看器Monaco Diff 内联/分栏对比,支持任意两提交对比
文件树懒加载目录树,内联重命名/新建,拖拽文件到终端粘贴路径
Git 面板libgit2 工作区/暂存区状态,暂存/提交(Ctrl+Enter)/push/pull/fetch/分支/stash/冲突检测/最近提交;检查点锚定快照,持续追踪后续变更
项目搜索Ctrl+Shift+F 全文搜索,gitignore 感知,结果按文件分组、命中高亮
终端搜索终端焦点下 Ctrl+F 滚动回滚搜索,增量高亮
命令面板Ctrl+P 模糊搜索项目文件、最近文件、命令、会话
标签切换器Ctrl+Tab 循环切换标签,带预览
主题内置 GitHub 风格 + 完整 Ghostty 主题目录(598 款),深色/浅色独立设置,跟随系统
国际化中文 / English,可跟随系统语言
会话持久化布局/项目/选中状态每 5 秒自动快照,重启完整恢复
Agent 总览左下角 mini-bar 跨窗口汇总所有 agent 状态,点击跳转(Ctrl+Shift+A)
Agent CLI 桥muster 命令驱动终端:split/send/capture/run/wait/watch 等
Agent 用量对比agent×model 效率矩阵:tokens/run、fresh input、cache hit、tokens/turn、时长;本地日志自动解析
MCP servermuster mcp 把窗口、会话与 Agent 状态暴露为 MCP 工具,Claude Code / Cursor 等可直接编排
CLI 工具muster <path> 从任意终端打开项目,支持 --cmd 执行命令
剪贴板安全粘贴疑似可执行命令时弹窗确认
信息面板Shell PID、cwd、Git 分支/远程、进程树、监听端口
资源管理器集成一键安装「在 Muster 中打开」右键菜单
自动更新设置 → 关于 Muster 中检查更新,minisign 签名校验,下载进度可视化,一键重启安装
无障碍跟随系统 prefers-reduced-motion

技术栈

层技术
外壳 / 窗口Tauri 2(Rust),多窗口 + 系统托盘 + CLI PATH 注册
前端 UIReact 18 + TypeScript + Vite + Tailwind CSS
终端仿真xterm.js(fit 插件)
PTY手动 ConPTY 驱动(bundled OpenConsole.exe)
编辑器 / DiffMonaco Editor
Gitgit2(libgit2,含 SSH)
剪贴板安全前端粘贴拦截 + 危险内容检测
类型化 IPCSpecta + tauri-specta 从 Rust 生成命令、事件与 DTO 绑定(src/lib/bindings.ts)
其他notify、sysinfo、ignore、toml、winreg、本地 TCP JSON IPC

快速开始

环境要求

  • Windows 10/11(依赖 WebView2 与 ConPTY)
  • Node.js 22+
  • Rust 1.85+(MSVC 工具链)

开发

npm install
npm run tauri dev

构建

npm run tauri build    # 产出 MSI 和 NSIS 安装包

更换应用图标后必须清缓存再打包:tauri-build 只监听 tauri.conf.json 等少数文件,不监听 src-tauri/icons/icon.ico。只换图标直接打包时,cargo 会复用旧的 resource.lib,导致 exe 内嵌图标还是旧的(表现为:托盘图标是新的,但任务栏图标先正常随后变回旧图标)。

换图标后执行以下任一操作再打包:

rm -rf src-tauri/target/release/build/muster-*   # 删掉 build script 缓存(推荐)
# 或者 touch src-tauri/build.rs / 改动一下 tauri.conf.json

另外,如果安装后桌面快捷方式/资源管理器仍显示旧图标,那是 Windows 外壳图标缓存(iconcache.db)的问题,与打包产物无关,重启资源管理器或运行 ie4uinit.exe -show 刷新即可。

常用命令

npm run dev            # 生成文件图标子集后启动前端 Vite dev server
npm run build          # 图标子集 + 类型检查 + 前端产物构建
npm test               # 前端 Vitest(单次运行)
npm run test:watch     # 前端 Vitest(watch 模式)
npm run icons:subset   # 重新生成 src/assets/vscode-icons-subset.json
cargo check            # 后端编译检查(在 src-tauri/ 下执行)
cargo test             # 后端单元测试(在 src-tauri/ 下执行)
cargo run --bin export_bindings   # 改命令/事件后重新生成 src/lib/bindings.ts

部分后端测试会真实创建进程和监听端口,默认被标记为 #[ignore],需手动运行: cargo test --lib -- --ignored

src/lib/bindings.ts 由 Rust 生成,不要手改。修改 #[tauri::command] 或事件 payload 后运行 cargo run --bin export_bindings 并提交生成结果;CI 会校验该文件是否有漂移。

src-tauri/.cargo/config.toml 不入库(已 gitignore),因为它是单机有效的 workaround:只有当 Windows SDK / MSVC 装在非标准位置、rustc 自动探测失败(典型报错:LNK1181: cannot open input file 'kernel32.lib',或 cc-rs 找不到头文件)时才需要创建,内容形如:

[build]
rustflags = ["-L", "native=D:\\Windows Kits\\10\\Lib\\10.0.22621.0\\um\\x64"]

[env]
INCLUDE = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.44.35207\\include;..."
LIB = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.44.35207\\lib\\x64;..."

路径里的 MSVC/SDK 版本号需按本机实际安装调整;工具链在标准位置时不需要此文件。


配置

配置文件为 TOML 格式:

  • 正式版:%APPDATA%\muster\config.toml
  • 开发版(debug 构建):%APPDATA%\muster-dev\config.toml

会话快照保存在同目录下的 sessions*.json。


命令行

在设置中选择 "Add Muster to PATH" 后:

muster .                              # 在当前目录打开项目
muster C:\projects\myapp              # 在指定目录打开项目
muster --cmd "npm run dev" .          # 打开项目并运行命令
muster --cmd "python hello.py"        # 在当前目录运行命令

快捷键 -c 和 -d 可分别替代 --cmd 和 --cwd。

Agent 驱动的 CLI 桥

muster <verb> 通过本地 IPC 与正在运行的 Muster 通信(未运行时自动启动),供 AI 编码代理和其他脚本驱动终端:

muster doctor                         # 检查桥接状态
muster new C:\projects\myapp          # 打开项目,打印首个终端会话 id
muster split --v                      # 向下分屏,打印新会话 id
muster send <id> "npm run dev" --enter    # 向会话发送按键
muster send-keys <id> "ctrl+c"             # 向会话发送快捷键
muster capture <id> --lines 200           # 读取会话最近输出
muster procs <id>                     # 会话进程树 + 监听端口
muster agents                         # 各会话的 coding agent 状态
muster run -- cargo test              # 新标签 PTY 运行命令,等待完成
muster wait <id>                       # 等待 agent 达到目标状态(默认 done)
muster watch                           # 持续输出 agent 状态变化
muster ls                              # 列出窗口、项目、标签与 pane
muster usage --range 7d                # agent×model token 效率对比
muster usage --view runs --limit 20    # 最近的 agent run
muster usage --view coverage           # 26 种 agent 的数据源覆盖
  • run 默认 600s 超时(--timeout N);-- 之后的内容原样作为命令
  • 任何 verb 加 --json 输出结构化结果
  • 为 AI 代理准备的完整使用说明见 skills/muster/SKILL.md

MCP server

muster mcp 以 MCP(stdio)方式运行,可直接注册到 Claude Code、Cursor 等客户端:

{
  "mcpServers": {
    "muster": { "command": "muster", "args": ["mcp"] }
  }
}

提供 muster_ls、muster_agents、muster_doctor、muster_new、muster_split、muster_send、muster_send_keys、muster_capture、muster_procs、muster_run、muster_wait、muster_usage 共 12 个工具,底层复用同一套 IPC 桥;首次调用工具时会自动启动 Muster。使用前请先在「设置 → 集成」中把 muster 加入 PATH。


快捷键

快捷键功能
Ctrl+N新建项目
Ctrl+Shift+N新建窗口
Ctrl+1 ~ Ctrl+9切换到第 N 个项目
Ctrl+Alt+[ / Ctrl+Alt+]上一个 / 下一个项目
Ctrl+,打开设置
Ctrl+/快捷键帮助
快捷键功能
Ctrl+T新建终端标签
Ctrl+W关闭当前标签
Ctrl+Shift+T重开最近关闭的标签
Ctrl+Tab标签切换器
Ctrl+Shift+[ / Ctrl+Shift+]上一个 / 下一个标签
Ctrl+D向右分屏
Ctrl+Shift+D向下分屏
Ctrl+[ / Ctrl+]上一个 / 下一个 pane
Ctrl+Alt+方向键按方向切换 pane 焦点
Ctrl+Alt+Shift+方向键按方向调整 pane 尺寸
Ctrl+Shift+Enter当前 pane 最大化 / 还原
快捷键功能
Ctrl+P命令面板
Ctrl+B切换左侧项目栏
Ctrl+Shift+B切换右侧边栏
Ctrl+Shift+E文件树面板
Ctrl+Shift+F项目全文搜索
Ctrl+F终端滚动回滚搜索
Ctrl+Shift+AAgents 总览
Ctrl+Shift+GGit 面板
Ctrl+Shift+I信息面板
Ctrl+S保存文件(编辑器中)
Ctrl+K清空终端

目录结构

kero-windows/
├── src/                    # React 前端
│   ├── assets/             # 生成的文件图标子集
│   ├── components/         # 界面组件(终端、文件树、Git 面板、设置等)
│   ├── lib/                # invoke 封装、bindings.ts(Rust 生成)、设置/主题/缓存等
│   ├── hooks/              # Tauri 事件订阅等 React hooks
│   ├── test/               # Vitest setup
│   └── styles/             # 全局样式与设计变量
├── src-tauri/              # Rust 后端
│   ├── src/
│   │   ├── bin/            # export_bindings:生成前端命令/事件/类型绑定
│   │   ├── commands/       # 全部 Tauri 命令,按域拆分(前端 invoke 入口)
│   │   ├── events.rs       # 事件 payload 类型(Specta 生成来源)
│   │   ├── models/         # 应用状态:项目、标签、pane、终端会话
│   │   ├── services/       # PTY/shell、git、配置、持久化、进程、CLI 等
│   │   └── theme/          # 主题目录与解析(含 Ghostty 主题)
│   ├── capabilities/       # Tauri 权限声明
│   └── assets/fonts/       # 内嵌字体(JetBrains Mono + Nerd Font 符号)
├── scripts/                # 主题目录、文件图标子集生成脚本
├── vitest.config.ts        # 前端测试配置
└── docs/                   # 设计文档与截图

致谢

Muster 是 Kero 的 Windows 重实现 — Kero 是由 @egoist 开发的 macOS 原生终端工作区(Swift + libghostty)。本项目在产品形态与交互设计上深受其启发,在此致谢。

主题目录来源于 Ghostty 项目;终端字体为 JetBrains Mono 与 Nerd Fonts 符号字体。

↑↓ navigate openesc close