Commits and pull requests
Let the Assistant plan your commits, open the pull request, get Claude to fix it and merge it, step by step from the Changes tab.
The Changes tab has a box above your changed files that says what the branch needs next, such as Commit 2 files, Push 1 commit or Open a pull request, and offers one button to do it. Press it and the step is done. Then the box shows the next one, all the way to a merged pull request. See Files and git for the rest of the tab.
Nothing is committed, pushed or sent to GitHub until you press a button. The Assistant does the steps that need writing, such as commit messages and the pull request. When a step is the Assistant's, its character stands beside the box. The words at the end of the box's first line say whose step it is: You or Claude.
See which worktree needs you
Each row in the sidebar's panel shows where its worktree stands, so you don't have to open each one to find out.
The line under the row's title names the branch, then how many commits it has that its base branch doesn't, and how many changed files are waiting to be committed, for example skv-42-search · 2 ahead · 3 uncommitted. Click the count of uncommitted files to open the Changes tab. Once the branch has an open pull request, the line shows its number, such as PR #12. Click it to see its checks in the Changes tab. After the merge, the line says pull request merged.
When something is up, the row also says one of four states, on a line of its own:
- Claude working: Claude is working there.
- Your turn: Claude has finished and nobody has looked yet, a terminal bell rang, or you flagged the worktree for attention.
- Decide: something needs your decision. Claude is asking you a question, a merge stopped on conflicts or is waiting for its commit, or the pull request's checks failed.
- Ready to merge: the checks passed when last checked.
Click the state to select that worktree and open its Changes tab, where the next step is done.
The title bar says the same for the checkout you're in, beside the project's name: which Claude tab is busy, how many files aren't committed, or the next step, such as Resolve conflicts or PR #12. Click it to open the Changes tab.
Commit, push or move from the main folder
The main folder is the first row in the panel. Its ⋯ menu, and its right-click menu, start with three items that work on the main folder's changes:
- Commit opens Commit Myself… in the Changes tab, so you can type a message and commit. See Commit it yourself.
- Push pushes the main folder's commits.
- Move to a New Worktree… moves the main folder's changes to files git already tracks into a new worktree of their own. New files stay in the main folder, and the dialog says so. Move those from the Changes tab.
Each one is greyed out when there's nothing for it to do, and says why when you point at it, such as Nothing to commit or Nothing to push. Push is offered only when there are commits to push, however many files aren't committed.
Commit your changes
When you have changes, the box says Commit 2 files and offers Plan the commit.
- Untick any file you want to leave out. Only ticked files go into the commits.
- Press Plan the commit. The Assistant splits your ticked files into commits and writes their messages. A message ends with the key of the card linked to the branch.
- Read the Commit plan. Each commit shows its message and files. The plan also says how many files it left out, such as Left out 3 files. Open that to see them, grouped under a sentence saying why. Include Them adds them back, except files that look like secrets and folders that are git checkouts of their own. Tick those yourself.
- Press Commit to make the commits in order. Or press Change… and say what to change, and the plan is drawn again. Dismiss drops the plan.
The first time, Mooring asks Let Claude read these changes?, because planning sends the ticked files and their changes to Claude, which uses tokens. Choose Allow, Don't ask again, or Not Now. Don't ask again also covers the card chat, and Settings ▸ Assistant turns the question back on.
Your git hooks run as usual. If a hook refuses a commit, the commits already made stay, and the box shows what the hook printed.
Commit it yourself
If the Assistant can't help, for example because you chose Not Now or Claude Code isn't signed in, the box offers Commit Myself…. Type a message, and every ticked file is committed with it.
Push and publish
Once you have commits, the box says Push 1 commit and offers Push. A branch that isn't on the remote yet says Publish this branch and offers Publish, which pushes it and tracks it there.
Open a pull request
Once the branch is pushed, the box offers Open PR.
- Press Open PR. The Assistant writes the title and description from the linked card and the branch's commits.
- Read the Pull request draft. Press Change… to say what to change, or Dismiss to drop it.
- Press Open PR to open it on GitHub, ready for review.
The pull request goes to the branch the worktree was made from. If the branch already has one open, the box says so instead of writing another.
Mooring opens pull requests with the GitHub CLI (gh). Settings ▸ Git
shows whether it's installed and signed in. Without it, the box offers
Open on GitHub, which opens GitHub's new pull request page in your
browser, along with Install GitHub CLI… or Sign In in a Terminal Tab.
Watch the pull request
Once there's a pull request, the Branch section shows its number, its title, and how it stands, such as checks running, 2 failed, changes requested or merged.
While the Changes tab shows the worktree, Mooring checks the pull request every minute until it's merged or closed. It also looks once when you select the worktree, at most every five minutes. Mooring never checks GitHub in the background, or for a worktree you aren't looking at.
Get Claude to fix it
When checks fail, the box offers Get Claude to fix it. When a reviewer asks for changes, it offers Get Claude to address it.
- Press the button. The Assistant reads the failing checks' logs, or the review, and writes Claude a short brief.
- The brief goes into the worktree's Claude tab, opening one if there's none. Nothing is sent. Read it, then press Return.
- When Claude finishes, Mooring commits what Claude changed and pushes it. Revert… undoes that commit with a new one, if you don't want it.
Mooring stops and shows you the plan instead, if it would leave a change out. Files you'd already changed before the brief are left out of that commit. If you don't send the brief within ten minutes, Mooring lets it go.
Review comments are passed to Claude only from the repository's own people and the pull request's author.
Merge it
When GitHub says the pull request can merge, the box says it's ready to merge and offers Merge #12. Press it, and Mooring squash-merges it on GitHub.
Right before merging, Mooring reads the pull request again. If it changed since you looked, nothing is merged and the box says what changed. Mooring never bypasses the repository's rules and never deletes the branch. While GitHub won't merge it yet, the box says why.
After the merge, the card linked to the branch moves to Done. Then choose Remove Worktree… or Keep It. A pull request merged on GitHub itself shows as merged too, and its card closes the same way. See Worktrees.
Bring in the base branch's new work
When the branch the worktree was made from has moved on, the box offers Update from main, named after your real base branch. Press it, and Mooring fetches the base and merges it in. Nothing is pushed.
If the merge would conflict, the button says Get Claude to update from main. A brief for the merge goes into Claude's tab for you to send. When Claude finishes, Mooring checks the merge and pushes it. Mooring never rebases.
If anything goes wrong once git starts, the branch is put back exactly as it was.
Resolve conflicts
When a merge stops on conflicts, the box says Resolve conflicts and offers Get Claude to resolve them, which puts a brief in Claude's tab for you to send. Or fix the files yourself.
When every conflict is fixed and staged, the box says Commit merge. Press it to commit the merge with git's own message. Nothing is pushed.
While Claude is working
Nothing in the box touches a worktree while its Claude is working or waiting for your answer. The box says Waiting for Claude until Claude is done. If Mooring can't tell, it asks you to look at Claude's tab first, and Go Ahead Anyway carries on.