Attach a repo
Workers do their work in your own clone of the repo, each in a worktree of its own. For that, two things need to know about the repo: the runner (where the clone is on this machine) and the project (which repo its workers use).
1. Tell the runner where your clone is
Section titled “1. Tell the runner where your clone is”minga repo add ~/code/dictlyThe path must be a git repository with an origin remote (GitHub, SSH, HTTPS or file remotes work). The runner
registers it in runner.toml and checks it:
- the default branch;
- read access to
origin; - push access, and whether
ghis signed in (needed for pull requests).
If the runner service is running, it does the check in its own environment (its PATH, SSH agent and keychain), which
is what runs will use. Otherwise the command checks from your shell, and the service checks again when it starts.
If another registered clone already serves the same remote, the command warns you: the first entry for a remote wins,
so remove the older one first (minga repo remove <path>).
Clones the runner finds by itself
Section titled “Clones the runner finds by itself”You may not need minga repo add at all. The runner looks at the folders of your recent Claude Code and Codex sessions
(and at its own worktrees) every ten minutes, resolves each to its main clone and origin, and keeps the list in
memory.
- If it finds exactly one clone of a repo your workspace uses, it serves that clone like a registered one.
- If it finds two or more, it serves none, and the app says so: “2 clones found · run
minga repo add <path>there”. Registering one picks it. - A registered clone always wins over a found one.
Nothing is written to runner.toml for a found clone, and only the path of a clone it serves is sent to Minga.
2. Attach the repo to the project
Section titled “2. Attach the repo to the project”- Open Project settings › Repositories.
- Under Attach a repo, pick it From this workspace, or Add a remote and its default branch.
- Check the lines under the repo: one per runner of yours, saying whether it has a clone and whether it can push. “No
runner of yours has a clone yet” means: open the repo once in Claude Code or Codex on that machine, or run
minga repo add <path>there.
You can also pick the repo when you create a project. Workers branch from the project’s base branch (the repo’s default branch unless you change it) and open pull requests against it. Workers with the No repo preset get a scratch directory instead.
How workers use your clone
Section titled “How workers use your clone”For each item, the runner adds a git worktree on a local minga/… branch under ~/.local/share/minga/worktrees.
Workers never touch your working copy. In your clone itself the runner only runs git fetch, git worktree add,
remove and prune, and creates the local minga/… branches.
List and remove
Section titled “List and remove”minga repo listIt lists registered clones with their remote, whether the workspace uses them, the default branch, and read and push status, followed by the clones the runner found (“found, serving” for the one it serves).
minga repo remove ~/code/dictlyYou can pass the path or the remote. Worktrees under ~/.local/share/minga/worktrees are left as they are.