A dashboard that reads from Git

Ticket.app is a fast overlay on top of the Ticket Protocol. It reads .tickets/index.json and ticket files from your repo. Git stays authoritative.

Read-only in v1. Edit via CLI and git.

Three steps to get started

1

Connect GitHub

Sign in with GitHub OAuth. No write access required.

2

Select repos

Choose which repos to display. Only repos with .tickets/ are shown.

3

Reads .tickets/index.json

The dashboard loads the CLI-generated index for fast rendering. Git stays authoritative.

Visibility without moving your workflow into SaaS

The dashboard does not replace your repo. It renders what's already there: ticket files and a derived index for speed.

  • Dashboard views across tickets
  • Filters by state, priority, labels, repo
  • Ticket detail view renders Markdown cleanly
  • Deep links are shareable and bookmarkable

Two files power the UI

Ticket.app uses the Indexed Profile of the protocol.

  • 1. Tickets live as Markdown files: .tickets/tickets/<ULID>.md
  • 2. The CLI generates a derived index: .tickets/index.json

Result: Fast loading without a canonical database.

If index.json is stale, ticket files are authoritative.

Link work to code by convention

If your branch and PR title follow the convention, the dashboard links them automatically.

Branch: tk-{short_id}-{slug}

PR title: [TK-{short_id}] {title}

What you see:

  • Linked PRs on ticket detail
  • CI status (if available)
  • Last updated signals

See work across all repos

Upgrade for portfolio views across multiple repos, saved filters, and shareable dashboards.

"All ready tickets across repos"
"Everything blocked"
"P0 and P1 in flight"

Read-only by default

In v1, Ticket.app does not write to your repo. It reads selected repos via GitHub OAuth and respects GitHub permissions.

  • Repo allowlist (only repos you select)
  • Tokens stored securely
  • Webhooks optional later for faster refresh

FAQ

Add visibility when you want it. Keep Git as the source of truth.