graft

Your copies

Loading.

What sync does, each time upstream ships a release
1. LookUpstream ships v1.4.1.
2. MoveYour changes go onto it, on a new branch: graft/v1.4.1.
3. CheckYour tests run on the result.
Tests passYou get a pull request. Merge it when you like.
Anything elseNothing changes. You get a short note saying why.

What sync does

Looks for a new upstream release, moves your changes onto it in a separate branch, and runs your tests.

What you get

A pull request if everything works. Otherwise nothing changes, and a short note here says why and what to do.

What it never does

Touch your main branch, push without passing tests, or change anything until you merge.

Your repositories

Loading.

Who fixes clashes

Most releases need no help: every change still fits, or upstream already has it. When a change clashes with the new release, someone has to rewrite it. New copies use your own Claude, which is free. Change it per copy under Change settings. Whatever you pick, your copy moves only when your tests pass.

FREE, THE DEFAULT

Your own Claude

Graft stops at the clash and hands it to your Claude Code, which rewrites it on your own subscription. Graft runs your tests on the answer and opens the pull request if they pass.

Or let Claude on GitHub do it: pick "Claude on GitHub" in a copy's settings, and Graft opens a draft pull request for you to hand to @claude. That needs the Claude GitHub app on your repository, on your own account.

FREE

Your own API key

Graft's agents rewrite the clash on the Claude API with your key; you pay Anthropic for what they use, usually cents. Graft encrypts the key as it arrives, to a key only its sync machines hold: the website can't read it back.

PREMIUM, COMING SOON

Graft's agents

Graft fixes clashes itself, with methods that cost more to run. No price yet, and nothing to buy.

ALWAYS AVAILABLE

Nobody

A release moves your copy only when every change fits as it is or upstream already has it. Costs nothing.