Pacto CLI Getting Started
The default loop is simple: initialize a workspace, create a plan slice, verify the current state, execute the work, and move the slice forward explicitly.
1. Initialize the workspace
Pacto creates a plans workspace under .pacto/plans.
pacto init .pacto/
├── config.yaml
└── plans/
├── current/
├── to-implement/
├── done/
├── outdated/
├── README.md
└── PACTO.md Optional agent-friendly setup:
pacto init --no-interactive --tools codex,cursor --yes 2. Create a plan slice
pacto new to-implement improve-auth-flow The slice starts with a README, spec, design, and tasks document under the chosen state.
3. Verify state and evidence
pacto status
pacto status --format json --verify --fail-on partial This is the command that makes Pacto different: it checks plan claims against repository evidence instead of relying on narrative status updates.
4. Record execution progress
pacto exec current improve-auth-flow --note "Started implementation"
pacto exec current improve-auth-flow --step 1.1 --evidence src/auth/flow.go 5. Move the slice forward explicitly
pacto move to-implement improve-auth-flow current
pacto move current improve-auth-flow done --reason "All tasks complete and verified" 6. Explore ideas before they are formal work
pacto explore auth-refresh --title "Auth refresh ideas"
pacto explore auth-refresh --note "Compare token vs session model"
pacto explore --list Root discovery
Commands such as pacto status and pacto new auto-discover the plans
root from the current directory and its parents. Use explicit roots when you need to target a
specific repository.
pacto status --root . --repo-root .
pacto new to-implement my-plan --root .