A CLI that claims a tracker ticket and prepares it for an agent in its own T3 Code lane. Built with TypeScript and Bun.
In development: pickup KEY claims a Jira ticket, prepares its Git worktree,
and returns the arguments a T3 Code thread uses to launch the lane.
claim release gives the ticket back.
curl -fsSL https://interlock.build/install.sh | shirm https://interlock.build/install.ps1 | iexSee distribution for versions, checksums and install destinations.
From this checkout, with Vite+ installed
(vp env manages the pinned Node.js tooling runtime and Bun package manager):
vp install
vp run dev --help
vp run dev login jira
vp run dev doctor
vp run dev config showlogin jira keeps your Jira credentials in the OS credential store; doctor
names any missing sign-in, Jira permission or claim-lock push access.
Pickup works in the current Git repo (or --repo PATH) with no project file.
For GitHub Issues instead of Jira, sign in with gh auth login (Interlock
stores no GitHub secret), run config edit --set github_repo OWNER/NAME, and
pick up issue 42 as GH-42. Claiming assigns you and adds the interlock
label; completion closes the issue. With both jira_site and github_repo
set, GH- keys go to GitHub and every other key to Jira.
For commands and options, use --help, including config edit --help.
Help and shell completion derive from the registered actions.
User settings live in local SQLite: the Jira site from login jira, host,
harness, model and modes, the branch template (default task/{key}), and
pickable and claimed statuses (default To Do and In Progress). Unset harness
and model follow the calling T3 thread.
vp run dev config edit --set model your-model
vp run dev config edit --set pickable_statuses "To Do, Ready"
vp run dev config edit --follow modelreviewers takes a comma-separated list of review lenses (for example
correctness, security); each runs as a review subagent in the lane, on the
implementer's model unless reviewer_harness, reviewer_model or
reviewer_effort is set. With no lenses, review goes to a person. config show
lists them under review; pickup's plan shows the checked reviewers.
--follow clears that setting; --follow all clears every personal choice.
An optional shared interlock.toml (init writes a commented one) holds team
tracker facts only: the Jira site, statuses, claim_home and instruction paths.
They override user settings. config show displays resolved values and their
sources without writing configuration or initializing the database.
| Task | Start here |
|---|---|
| Add an action | Configuration commands show the pattern; register new groups in application.ts |
| Change configuration | Schemas and starter TOML |
| Add a tracker or workspace adapter | Adapters — implementations are grouped by responsibility and named by integration |
| Understand execution | Execution and portable contracts |
| Understand boundaries and contracts | Architecture |
| Install releases or configure shell integration | Distribution |
| Change the landing page | site/: Astro, served as Worker static assets; vp run dev inside it |
vp run test
vp run typecheck
vp check
vp run buildThe build writes a standalone executable to dist/interlock.
Release packaging supplies version and update metadata.