Takyon
A local-first keyboard launcher for Windows & macOS - an Open Source Spotlight alternative built on Tauri
22.6 ms
Hotkey to first pixel, p95, against a 50ms budget
2.5 MB
The whole installer
786
Tests across four layers, run on every change
Why I built it
I notice a 200ms delay and it annoys me, which is most of the reason this exists. Windows made me go looking for everything: Start menu for an app, Explorer for a file, some shortcut I could never remember for clipboard history. I wanted one key, one box, and my hands off the mouse.

It gets faster the more you use it
Ranking is Frecency: decayed frequency and recency per entry, applied over match quality. After a few days one or two letters is usually enough. The top result freezes 100ms after you stop typing, so a slow source can never swap the thing you were about to press Enter on.
One character reaches past the machine
A bang at the start of the line changes where the box looks. !e is the file index, !v the clipboard, !c an AI agent, !s the live web. Under !s it reads the pages it gets back and ends every claim with the numbered source behind it.

No account, no key, no bill
Takyon holds no LLM account and never runs a sign-in. It drives an agent CLI you already installed and signed in to, Claude Code, Codex or opencode, as a subprocess. You rank them, the first one switched on answers, and that same ranking writes the web search answers too.

A line without a bang never touches the network
No suggestion request, no telemetry, no prefetch. Nothing leaves the machine while you type, only when you press Enter, which is why there is no debounce anywhere in the code. There is no request to debounce. Breaking this rule counts as a correctness bug, not a performance one.
A green test suite that was lying
The screenshot tests allowed 1% of pixels to differ, which on this window is 5,702 pixels. That was enough to pass a wrong version number and two missing rows across two releases. I replaced it with a flat 150-pixel budget. The same pass found Settings had never rendered in a real build at all, because creating a window from Tauri's main thread deadlocks.