GitHub
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
Description from the maker (original English)
Map parallel-agent git worktrees to owners and plan safe cleanup from supplied facts.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"treeman": {
"command": "npx",
"args": [
"-y",
"@reneturcios/treeman",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add treeman -- npx -y @reneturcios/treeman mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"treeman": {
"command": "npx",
"args": [
"-y",
"@reneturcios/treeman",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"treeman": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/treeman",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account CloudCorpRecords, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0) reached the registry 3 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js, Docker on your computer.
In the same category: GitHub, Desktop Commander, Cloudflare MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
When several agents work in the same repository at once, each one usually gets its own git worktree, and after a while nobody remembers which tree belongs to whom, which ones still hold uncommitted work, and which are safe to delete. treeman answers those questions from facts you already have. You supply, for each worktree, its path, the branch checked out in it, who owns it if anyone does, whether it has uncommitted changes, how many days have passed since it last changed, and whether it is locked — plus the inactivity threshold beyond which a tree counts as stale, and optionally the path of the primary tree. treeman hands back the plan: an ownership map, a status and cleanup action for every tree, and the tallies. It never runs git and never touches the filesystem; it plans from the supplied facts only.
Each tree is judged by a fixed set of checks, first match wins. A tree whose path is the supplied main_path is main and is always kept. A locked tree is locked and kept. A dirty tree is blocked and kept — uncommitted changes are never planned away. A tree that is both past the stale threshold and unowned is orphaned, and it is the only kind planned for removal. An owned tree past the threshold is stale and marked for review; a recent tree with no recorded owner is unowned and also reviewed; an owned, recently active tree is active and kept. The staleness comparison is strictly greater-than: a tree whose last activity is exactly stale_days ago is not stale.
Ownership has one pinned judgement call: an owner that is absent, empty, or only whitespace means the tree is unowned, and its owner is reported as null. The owners map in the result lists every other owner with the paths it owns in the order you supplied them, with the owner keys sorted ascending; unowned trees never appear in it. The counts report the total, one tally per status, and removable — how many trees the plan marks remove.
Malformed input — a missing or empty worktree list, a missing, empty, or non-string path or branch, a non-string owner, a missing or non-boolean dirty, a non-boolean locked, a negative or fractional day count, a bad stale_days, or an empty main_path — is a validation error naming the offending path, with no partial result. Two worktrees with the same path are an error naming the duplicated path. Unknown extra fields are ignored.
npx @reneturcios/treeman plan --input args.json
npx @reneturcios/treeman --version
args.json contains the full arguments object:
{
"worktrees": [ { "path": "/trees/main", "branch": "main", "owner": "alice", "dirty": false, "last_activity_days": 0 }, { "path": "/trees/old-experiment", "branch": "exp/spike", "dirty": false, "last_activity_days": 74 }, { "path": "/trees/agent-2", "branch": "feat/search", "owner": "agent-2", "dirty": true, "last_activity_days": 1 } ], "stale_days": 30, "main_path": "/trees/main" }
The plan is printed as JSON:
{
"worktrees": [ { "path": "/trees/main", "branch": "main", "owner": "alice", "status": "main", "cleanup": "keep", "reason": "primary worktree" }, { "path": "/trees/old-experiment", "branch": "exp/spike", "owner": null, "status": "orphaned", "cleanup": "remove", "reason": "no owner and inactive beyond the stale threshold" }, { "path": "/trees/agent-2", "branch": "feat/search", "owner": "agent-2", "status": "blocked", "cleanup": "keep", "reason": "uncommitted changes present" } ], "owners": { "agent-2": ["/trees/agent-2"], "alice": ["/trees/main"] }, "counts": { "total": 3, "main": 1, "locked": 0, "blocked": 1, "orphaned": 1, "stale": 0, "unowned": 0, "active": 0, "removable": 1 } }
Exit codes: 0 on success, 1 on a runtime error (including an unreadable or invalid input file, or invalid input), 2 on a usage error.
npx -y @reneturcios/treeman mcp
MCP client config:
{
"mcpServers": { "treeman": { "command": "npx", "args": ["-y", "@reneturcios/treeman", "mcp"] } } }
plan_worktrees — Plan parallel-agent git worktrees from caller-supplied worktree facts: the ownership map, each tree's status, and which trees are safe to remove.worktrees (array, required, at least 1 item) — the worktrees to plan, in the caller's order; each item:path (string, required, non-empty) — worktree pathbranch (string, required, non-empty) — branch checked out in the worktreeowner (string, optional) — agent or person who owns the worktree; absent, empty, or whitespace-only means unowneddirty (boolean, required) — whether the worktree has uncommitted changeslast_activity_days (integer, required, at least 0) — days since the worktree last changedlocked (boolean, optional) — whether the worktree is locked; absent means falsestale_days (integer, required, at least 0) — inactivity threshold in days; beyond it a worktree is stale (exactly at it is not)main_path (string, optional) — path of the primary worktree, which is never cleaned upReturns {worktrees, owners, counts}, where worktrees holds one {path, branch, owner, status, cleanup, reason} per input worktree in input order (owner is null when unowned), owners maps each distinct owner to its paths, and counts is {total, main, locked, blocked, orphaned, stale, unowned, active, removable}.
docker run -i ghcr.io/cloudcorprecords/treeman
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/treeman plan --input /w/args.json
npm install
npm run build # tsc -> dist/ npm test # tsx --test test/*.test.ts (pure local, no network) npm run dev # run the CLI from source
MIT — Copyright (c) 2026 Rene Turcios