A repeatable path from ticket to done. Claim: You pick up TEST-492 from the queue, and Interlock claims it for you on the Git remote. Prepare: Interlock creates a Git worktree on task/TEST-492 from main. Implement: Your agent writes the change in the worktree, however you run it. Submit: The agent calls lane submit and Interlock opens the one pull request. A reviewer asks for a change, the agent pushes it to the same pull request, and the reviewer approves. Complete: You merge. lane complete verifies Done in the tracker, closes the lane, and removes the worktree and branch. A dirty tree or an unmerged branch is refused, and nothing is removed. Claim and prepare: interlock pickup TEST-492 --t3-catalog "$T3_CATALOG" Submit: interlock lane submit "$LANE" --artifact "$PR_URL" --head "$HEAD" --gate test --evidence-url "$EVIDENCE_URL" Complete after merge: interlock lane complete "$LANE" Claim Prepare Implement Submit Complete
TEST-491 Fix the export date TEST-492 Prepare a real pickup Y TEST-493 Add a CSV download main task/TEST-492 ✓ Branch created✓ Worktree created✓ Startup script ran#1 open changes approved merged TEST-492: Prepare a real pickup Y #1 merged
✓ Done✓ Worktree removed✓ Branch removed$ interlock pickup TEST-492 --t3-catalog "$T3_CATALOG"
$ interlock lane submit "$LANE" --artifact "$PR_URL" --head "$HEAD" --gate test --evidence-url "$EVIDENCE_URL"
$ interlock lane complete "$LANE"
Claim Prepare Implement Submit Complete
TEST-491 Fix the export date TEST-492 Prepare a real pickup Y TEST-493 Add a CSV download main task/TEST-492 ✓ Branch created✓ Worktree created✓ Startup script ran#1 open changes approved merged TEST-492: Prepare a real pickup Y #1 merged
✓ Done✓ Worktree removed✓ Branch removed$ interlock pickup TEST-492 --t3-catalog "$T3_CATALOG"
$ interlock lane submit "$LANE" --artifact "$PR_URL" --head "$HEAD" --gate test --evidence-url "$EVIDENCE_URL"
$ interlock lane complete "$LANE"
Claim Prepare Implement Submit Complete
TEST-491 Fix the export date TEST-492 Prepare a real pickup Y TEST-493 Add a CSV download main task/TEST-492 ✓ Branch created✓ Worktree created✓ Startup script ran#1 open changes approved merged TEST-492: Prepare a real pickup Y #1 merged
✓ Done✓ Worktree removed✓ Branch removed$ interlock pickup TEST-492 --t3-catalog "$T3_CATALOG"
$ interlock lane submit "$LANE" --artifact "$PR_URL" --head "$HEAD" --gate test --evidence-url "$EVIDENCE_URL"
$ interlock lane complete "$LANE"
Claim Prepare Implement Submit Complete
TEST-491 Fix the export date TEST-492 Prepare a real pickup Y TEST-493 Add a CSV download main task/TEST-492 ✓ Branch created✓ Worktree created✓ Startup script ran#1 open changes approved merged TEST-492: Prepare a real pickup Y #1 merged
✓ Done✓ Worktree removed✓ Branch removed$ interlock pickup TEST-492 --t3-catalog "$T3_CATALOG"
$ interlock lane submit "$LANE" --artifact "$PR_URL" --head "$HEAD" --gate test --evidence-url "$EVIDENCE_URL"
$ interlock lane complete "$LANE"
Claim Prepare Implement Submit Complete
TEST-491 Fix the export date TEST-492 Prepare a real pickup Y TEST-493 Add a CSV download main task/TEST-492 ✓ Branch created✓ Worktree created✓ Startup script ran#1 open changes approved merged TEST-492: Prepare a real pickup Y #1 merged
✓ Done✓ Worktree removed✓ Branch removed$ interlock pickup TEST-492 --t3-catalog "$T3_CATALOG"
$ interlock lane submit "$LANE" --artifact "$PR_URL" --head "$HEAD" --gate test --evidence-url "$EVIDENCE_URL"
$ interlock lane complete "$LANE"
Claim Prepare Implement Submit Complete
TEST-491 Fix the export date TEST-492 Prepare a real pickup Y TEST-493 Add a CSV download main task/TEST-492 ✓ Branch created✓ Worktree created✓ Startup script ran#1 open changes approved merged TEST-492: Prepare a real pickup Y #1 merged
✓ Done✓ Worktree removed✓ Branch removed$ interlock pickup TEST-492 --t3-catalog "$T3_CATALOG"
$ interlock lane submit "$LANE" --artifact "$PR_URL" --head "$HEAD" --gate test --evidence-url "$EVIDENCE_URL"
$ interlock lane complete "$LANE"
You or your agent. Both start the same lane. You review and merge.
Terminal $ interlock pickup TEST-492 --t3-catalog "$T3_CATALOG"
Agent, example request “Pick up TEST-492 and open the pull request when it's ready.” One workflow. Your tools. Interlock defines the flow from ticket to pull request, coordinating workspace setup and cleanup around the tools you already use.
Project configuration The tracker, repository and instructions for the work. Shared with the project.
Local preferences Your session host, coding agent and model. Saved on your machine.
Supported tools Tracker Jira Jira Linear Linear Soon GitHub GitHub Issues Soon Machine runs Interlock
Laptop
Workstation
VPS Soon
CI runner Soon Environment isolates the session
Native Docker Docker Sandbox Soon Harness writes the code Claude Claude Code
Codex Pi
Pi Soon OpenCode OpenCode Soon Cursor Cursor Soon
Antigravity Soon Host shows the session
T3 Code Co
Conductor Soon
ChatGPT/Codex desktop app Soon Claude Claude desktop app Soon tmux tmux Soon Hr
Herdr Soon
Model Configured in local preferences