0
0
0
0
0
0
0
0
0
0
0
0

· 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.

Kite ASO terminal interface
Kite ASO — keyword rank tracking, entirely keyboard-driven.

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.

← All entries · Portfolio