Skip to content

Getting Started

Prerequisites

  • Node.js 20+
  • The gh CLI, authenticated (gh auth login) — all GitHub access goes through it. Projects v2 needs the project token scope; trkr init detects a missing scope and offers to run gh auth refresh -s project for you.
  • An AI agent CLI on your PATH — Claude Code (claude) by default; Copilot and Kiro are also built in

Install

bash
npm install -g @barry-napier/trkr

Or build from source (pnpm required):

bash
git clone https://github.com/barry-napier/trkr.git
cd trkr
pnpm install
pnpm build
npm link

Create a board

From inside any GitHub repository:

bash
trkr init

This creates a Projects v2 board linked to the repo, sets up the Status columns (derived from your enabled workflows), adds a Workflow single-select field, and writes .trkr.json with the project IDs. Re-running init after changing workflows migrates the board by appending any missing columns (existing columns are never removed).

File a ticket

bash
trkr new "search results should paginate past 100 items"

An intake session classifies the request into a workflow (feature, bugfix, chore, …), then grills you: an interactive interview that surfaces every open decision, one question at a time, each with recommended answers you pick with a single keystroke. Facts are never questions — anything discoverable in the repo, the session looks up itself. A clear request converges in zero questions.

When the interview finishes, a spec session writes one or more tickets with acceptance criteria honoring your answers, wires blocked_by dependencies between them, and boards everything. trkr new always ends with tickets on the board — nothing is parked.

For an effort you already know is big and foggy, use trkr scope instead: it names the destination, breaks the fog into decision tickets, and the daemon collapses the map into a boarded spec once every decision resolves — see the CLI reference.

Run the orchestrator

bash
trkr start

The daemon polls the board and runs agent sessions to move tickets through the pipeline. Freshly boarded tickets sit in Backlog, which is inert — kick one off by dragging it into its first stage's column (Spec for feature/bugfix, Implement otherwise); every transition after that is automatic. Check on the daemon with:

bash
trkr status

Stop it with trkr stop. When a ticket exhausts its turns it gets the trkr:blocked label — fix the underlying issue and put it back in play with trkr unblock <issue>.

The human touchpoints

trkr is deliberately autonomous in the middle and human at the edges:

  1. Intake — you file the ticket and answer the grilling interview; every open decision is resolved before boarding.
  2. Kick-off — you drag the boarded ticket out of Backlog to start the pipeline.
  3. Blocked — tickets that fail three verification turns stop and wait for you.
  4. Merge — every workflow ends with an agent review pass, then trkr requests your review on the PR and moves the ticket to Done. You merge; trkr never does.