wtx
wtx
带内置 MCP 服务器的 Git 工作树管理器。 从终端创建、检查并清理隔离工作区——或者让你的 AI 编码智能体自己完成。
并行 AI 编码智能体让 git stash 这种手动切换方式变得过时,但 git worktree add ../foo -b foo && cd ../foo && cp ../.env . 这样一遍遍敲的命令,显然是没人想每天重复五次的事情。wtx 把工作树变成“一个词”的工作流,对人和智能体都好用:
$ wtx new fix-login
✔ created worktree fix-login
path: ~/code/myapp/.worktrees/fix-login
branch: wt/fix-login (new)
copied: .env, .env.local你的智能体可以通过 MCP 获得同样的能力:
{ "name": "create_worktree", "arguments": { "name": "fix-login", "setup": "npm install" } }为什么选择 wtx
一个工具,两种接口。 供你使用的快速 CLI,为 Claude Code、Cursor、Codex 或任何支持 MCP 的智能体提供 MCP 服务器(
wtx mcp)。零依赖。 只调用
git的单个 Node.js 可执行程序。没有可审计的东西,也没有容易出错的依赖。整洁管理。 每个工作树都显示磁盘占用和最近活动时间。用
wtx clean --dry-run可以清理大量过时的node_modules克隆,释放大量空间。默认安全。 拒绝删除 dirty 的工作树,绝不触碰主检出,只在完全合并后删除分支,并通过
.git/info/exclude隐藏.worktrees/(不会污染.gitignore)。开箱即用。 可将 env 文件复制到新工作树,并自动运行项目的 setup 钩子。
安装
npm install -g wtx # or: brew install wtx (planned)需要 Node.js ≥ 18 以及任意现代 git。
快速上手
$ cd myapp
$ wtx new feat-search # isolated workspace at .worktrees/feat-search on branch wt/feat-search
$ cd $(wtx path feat-search) # jump in
$ wtx ls # see every workspace, its state and size
NAME BRANCH STATUS AGE SIZE PATH
myapp* main ✓ clean 2d ago 412 MB ~/code/myapp
feat-api wt/feat-api ● dirty (1) 3h ago 38 MB ~/code/myapp/.worktrees/feat-api
$ wtx clean --dry-run # preview reclaimable space
· feat-api (branch merged, 38 MB)
would free: 38 MB · kept 0 worktree(s)命令
命令 | 描述 |
| 在 |
| 显示工作树表格:分支、领先/落后、dirty 状态、最后提交时间、磁盘占用 |
| 删除一个工作树;如果 dirty 则拒绝(除非指定 |
| 删除分支已经完全合并和/或长时间不活跃的工作树 |
| 在工作树内启动 |
| 打印工作树的绝对路径(适合在 shell 脚本中使用) |
| 作为 MCP 服务器运行,基于 stdio |
全局标志:--json(机器可读输出)、--base <ref>、--setup <cmd>、--no-copy、--no-setup。
在 AI 智能体中使用(MCP)
添加到 MCP 客户端配置:
// e.g. claude_desktop_config.json / opencode.json / .mcp.json
{
"mcpServers": {
"wtx": { "command": "npx", "args": ["-y", "wtx", "mcp"] }
}
}服务器暴露四个工具:list_worktrees、create_worktree、remove_worktree、clean_worktrees。它们都可以接受一个可选的 repo_path;否则使用服务器的当前工作目录。返回的是 JSON,所以智能体可以通过链式方式完成:create → work → remove,不需要在主 checkout 中切换分支。
示例智能体提示词:“基于 develop 分支创建一个名为 oauth-fix 的工作区,在其中运行 pnpm install,然后告诉我它的路径。”
配置
在仓库根目录中放一个 wtx.config.json(或 .wtxrc):
{
"dir": ".worktrees",
"copyFiles": [".env", ".env.local"],
"setup": "pnpm install",
"branchPrefix": "wt/"
}键 | 默认 | 含义 |
|
| 工作树存放位置,相对于仓库根目录(自动加入 |
|
| 从主检出复制到每个新工作树的文件 |
| (无) | 新工作树创建后要运行的 shell 命令 |
|
|
|
安全模型
主工作树永远不会被
rm或clean删除。clean始终保留 dirty 的工作树;rm则需要--force。分支只会在完全合并到默认分支(
origin/HEAD→main→master回退)后才被删除。工作树目录都位于
.worktrees/下,通过.git/info/exclude排除,所以不会碰你的.gitignore。名称会经过检测,像
../evil这类目录穿越会被拒绝。
它与其他方案的对比
原生 | TUI 管理器 | wtx | |
一条命令创建 + 复制 env + setup 钩子 | ✗ | 部分支持 | ✓ |
每个工作树显示磁盘占用和活跃程度 | ✗ | 很少 | ✓ |
所有命令都可输出机器可读 | ✗ | ✗ | ✓ |
为编码智能体提供 MCP 服务器 | ✗ | ✗ | ✓ |
零运行时依赖 | n/a | ✗(通常很重) | ✓ |
开发
git clone https://github.com/willkhinz/wtx && cd wtx
npm install
npm test # build + 32 integration/unit tests
node dist/src/cli.js help架构:src/core.ts(引擎)、src/cli.ts(人类界面)、src/mcp.ts(智能体界面)。MCP 实现是零依赖的行分隔 JSON-RPC 2.0。
路线图
wtx exec <name> -- <cmd>在所有工作树中执行命令每个工作树 spawn 一个 tmux/iTerm 会话
Homebrew formula
GitHub Action:在 PR 中评论各个工作树的预览
许可证
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Git-backed platform for skills, tools, and context for AI agents
A MCP server built for developers enabling Git based project management with project and personal…
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/willkhinz/wtx'
If you have feedback or need assistance with the MCP directory API, please join our Discord server