· 5 min · CLI, Open Source, Tooling
Why I Ship CLI Tools for Everything (and How Kite ASO Was Born)
GUI tools optimize for the first five minutes; CLI tools optimize for the next five years. The reasoning behind building Kite ASO as a keyboard-first terminal app.
Kite ASO started as a browser tab problem: checking keyword rankings across app stores meant twelve tabs and thirty clicks, every morning. The fix was a terminal UI that answers in two keystrokes.
The case for keyboard-first
A CLI composes. Output pipes into grep, watch, cron, CI. The same tool that checks one keyword interactively audits five hundred in a script.
# Interactive, one keyword
$ kite rank --keyword "habit tracker" --store play
# The exact same tool, scripted across 500 keywords in CI
$ kite rank --file keywords.csv --store play --format json \
| jq '.[] | select(.rank > 50)' > regressions.json
TUI is not retro nostalgia
A well-built terminal UI with panes, live updates, and vim-style navigation is faster than any web dashboard — no network waterfall, no hydration, no cookie banner. Python + Textual made this almost unfairly easy to build.
Design lessons that transferred back to Android
Building for the terminal forced brutal information hierarchy: every character earns its place. That discipline came back into my mobile work — the best Android screens I have shipped since look suspiciously like good TUI layouts: dense, scannable, zero decoration without function.