Surface project health, WIP constraints, and best practice violations from Linear.
- Bun runtime (uses
bun:sqlite) - Git
- Linear API key (optional — mock data mode available for development)
bun run setup # Check prerequisites, create .env, install deps
# Edit .env with your LINEAR_API_KEY and APP_PASSWORD
bun run sync # Sync data from Linear
bun run dev # Start dev serverNew contributors can run the app without a Linear API key:
bun run setup # Creates .env (leave LINEAR_API_KEY empty)
bun run sync # Generates realistic mock data
bun run dev # Start dev serverMock mode activates when LINEAR_API_KEY is missing, empty, or set to mock. It generates 7 projects with 50+ issues including realistic violations for testing.
bun install
cp .env.example .envEdit .env with your Linear API key and desired configuration settings.
- Violation tracking — missing estimates, priorities, stale updates, status mismatches
- WIP monitoring — engineer workload limits (ideal: 3, max: 5 active issues)
- Project health — leads, health status, update freshness
- Visual planning — Gantt chart view of project timelines
Map Linear team keys to logical domains. Find team keys in issue identifiers (e.g., ENG-123 → ENG).
# By function
TEAM_DOMAIN_MAPPINGS='{"WEB":"Frontend","API":"Backend","INFRA":"Platform"}'
# By product
TEAM_DOMAIN_MAPPINGS='{"CART":"Shopping","SEARCH":"Discovery"}'Exclude teams from sync:
IGNORED_TEAM_KEYS=CS,SUPPORT,OPS| Doc | Purpose |
|---|---|
| Roadmap | Planned features, known issues |
| Release Notes | Version history |
| Features | What the app does |
| Architecture | System design |
| API Reference | Endpoints |
| All Docs | Documentation hub |
bun run release-prepare-patch # Bump version, generate NEWS.md prompt
# ... update NEWS.md with AI-generated summary ...
bun run release-commit # Commit, tag, output push instructionsFor Fly.io:
cp fly.toml.example fly.toml
fly secrets set LINEAR_API_KEY=... APP_PASSWORD=...
fly deployMIT © 2025 Victory Square Media Inc. dba Later