Git worktrees that are
ready to work.

A fresh git worktree is never actually ready — your .env files are missing and dependencies aren't installed. mycadre creates the worktree, copies your local config, runs your setup, and tracks it so cleanup is one command.

# npm package coming soon — install from source:
$ git clone https://github.com/flossypurse-studios/mycadre.git
$ cd mycadre && npm install && npm run build && npm link

Why it exists

Worktrees are great for working several branches at once — reviewing a PR while your feature branch builds, or running a fleet of AI coding agents in parallel, each in its own checkout. But every fresh checkout starts broken.

Env files are gone

Gitignored files like .env never make it into a new worktree. mycadre copies the ones you name.

Nothing is installed

No node_modules, no build. mycadre runs your setup command right after creating the checkout.

Orphans pile up

It's easy to forget which directories you made. mycadre tracks every worktree so listing and cleanup are trivial.

Zero config to start

One init writes a small mycadre.json you commit and share with your team. No global setup.

Quick start

Requires Node.js ≥ 18 and git on your PATH.

# in your project's git repo
$ mycadre init                 # writes mycadre.json (edit to taste)
$ mycadre create feature/login # new branch + worktree, env copied, setup run
$ mycadre list                 # see your tracked worktrees
$ mycadre remove feature/login # delete the worktree and its branch
$ mycadre clean                # prune worktrees git already dropped

Commands

Five commands, that's the whole surface.

CommandWhat it does
mycadre initCreate a mycadre.json config at the repo root.
mycadre create <branch> [--from <base>]Create a worktree for <branch> (new branch off <base> or the current branch, unless it already exists), copy configured files into it, and run the setup command.
mycadre listList tracked worktrees and flag any that have gone missing.
mycadre remove <branch> [--keep-branch] [--force]Remove the worktree and (unless --keep-branch) delete the branch.
mycadre cleanPrune git worktrees and drop stale tracking entries.

Configuration

mycadre init writes a mycadre.json at your repo root:

{
  "worktreeDir": "../mycadre-worktrees",
  "copy": [".env", ".env.local"],
  "setup": "npm install"
}

worktreeDir — where worktrees are created, relative to the repo root.

copy — files/directories copied from the repo root into each new worktree (typically gitignored local config). Missing entries are skipped silently.

setup — a shell command run inside the new worktree after creation, or null to skip.

Commit mycadre.json so your team shares the same setup. mycadre stores tracking data in .mycadre-state.json — add that to your .gitignore.