Quickstart
The shortest path from nothing to your first sync. This walks through initializing graft in an existing repository, creating or inspecting agents, and syncing them to every provider.
1. Install
See Install for all methods. Build from source:
go install github.com/Shaik-Sirajuddin/graft/cmd/graft@latest
Verify:
graft --version
2. Initialize
Run inside an existing git repository:
graft init
This creates the .graft/ canonical store, registers a workspace row in graft's sqlite database, detects your git mode (tracked if a real repo is present, otherwise internal), and runs a first-time provider detection. Use --ci to skip the interactive prompts:
graft init --ci
3. Create an agent (or inspect detected ones)
Create a new agent from scratch:
graft agent init my-bot "Reviews pull requests for correctness and style."
Or list agents graft detected from your existing provider files:
graft agent list
4. Edit the canonical agent
Open the canonical definition and change something:
$EDITOR .graft/agents/my-bot/agent.yaml
$EDITOR .graft/agents/my-bot/instructions.md
See Canonical store format for the fields.
5. Sync
graft sync agents
graft validates the changed agents, runs the merge engine, writes the result to every enabled provider, and prints the outcome. To sync just one:
graft sync agent my-bot
Preview what would change without writing:
graft sync agents --dry-run
6. Confirm
graft agents status
All providers should report in sync.
7. (Optional) Manage skills
If you have skills in .agents/skills/, graft symlinks them automatically after every init and sync. To check the current link state:
graft skill status
To install a skill from a path:
graft skill install ./tools/my-skill
See the skill command reference.
What just happened
graft diffed the working tree against your base branch, isolated the changed agent files onto temporary branches, merged them into the canonical store, then reapplied the canonical result out to every provider — without committing to your base branch. See How sync works.