Fast 🔥
Single Binary, Zero Dependencies
tk compiles to a single ~9MB executable with zero runtime dependencies. Drop the binary anywhere and it runs instantly.Rust Performance
Written in Rust for maximum speed:- Graph algorithms run in milliseconds, not seconds
- File I/O is optimized for SSD performance
- Zero-cost abstractions mean no runtime overhead
- Memory-safe without garbage collection pauses
Works Everywhere
Cross-platform native binaries for:- macOS (Apple Silicon + Intel)
- Linux (x86_64 + ARM64)
- Windows (x86_64)
- Docker containers
- CI/CD runners
- Air-gapped systems
- Sandboxed environments (Claude Code web)
Git-Native
Markdown + YAML
Issues are stored as Markdown files with YAML frontmatter:- ✅ Human-readable — Open in any text editor
- ✅ Machine-friendly — AI agents can grep and parse
- ✅ Diff-friendly — See changes in git log
- ✅ Merge-friendly — Git handles conflicts naturally
No Databases
No SQLite. No PostgreSQL. No MongoDB. Just files. This means:- ✅ No merge conflicts from binary database files
- ✅ No schema migrations
- ✅ No daemon processes
- ✅ No database corruption
When you
git clone, you get the entire issue history. No API calls required.Version Controlled
Issues version alongside your code:- When was the issue created?
- Who changed the status?
- What were the previous descriptions?
Branch with Your Code
Create a feature branch, create related issues in.tickets/, work on both together:
Token-Efficient
Minimal CLI Output
tk is designed for AI context windows. Every command outputs the minimum needed: Bad (verbose):Structured Format Options
When you need machine-readable output, use--format json:
Context Engineering > Fine-Tuning
We think of AI models more like CPUs now. You don’t fine-tune your CPU for each task — you give it the right instructions. Same with AI:- Give it minimal, relevant context
- Use structured output when needed
- Avoid verbose, redundant information
The entire output of
tk triage fits in ~500 tokens, giving you actionable
recommendations without burning your context budget.Zero Daemons
No Background Processes
tk has no daemon. No background processes. No long-running services. Why this matters:No Zombie Processes
Daemons can leave orphaned processes that consume resources
No Port Conflicts
No listening on ports means no conflicts with other tools
No Startup/Shutdown
Instant start, instant finish. No waiting.
No Resource Waste
Zero CPU/memory when not in use
Stateless by Design
Every command is stateless:- Reads files from
.tickets/ - Performs computation
- Outputs results
- Exits
Works in Sandboxed Environments
Because there’s no daemon, tk works in restricted environments where background processes aren’t allowed:- Claude Code web
- Serverless functions
- CI/CD containers
- Strict security policies
You’ll never have to hunt down and kill a zombie
tk process.Practical Benefits
These principles translate to real-world advantages:For Developers
For AI Agents
For Teams
Trade-offs
Every design decision involves trade-offs. Here’s what we optimize for and what we sacrifice:What We Optimize For
Speed — Millisecond response times
Simplicity — Single binary, no dependencies
Portability — Works everywhere Rust compiles
Offline — Zero network required for core features
Git integration — Issues version with code
What We Sacrifice
These trade-offs are intentional. We’re building for developers and AI
agents who live in the terminal, not for project managers who need dashboards.
Future-Proof
These principles guide future development:New features must be fast
New features must be fast
We won’t add features that slow down core commands. Millisecond performance is non-negotiable.
Git remains the source of truth
Git remains the source of truth
No external databases. Files in
.tickets/ are canonical.Zero daemon guarantee
Zero daemon guarantee
We will never add a background process. Stateless execution only.
Context efficiency first
Context efficiency first
New commands must output minimal, actionable information by default.