App Launcher

Launch apps by what they are for.

Every launcher can find Chrome when you type “chr”. Dhito also finds WhatsApp, Telegram and Messages when you type “messaging app” — because it matches apps by purpose as well as by name, using the same local model that searches your files.

Two ways to match an app, and most launchers only have one

Type "chr" and you should get Chrome. That is a prefix test on a name, every launcher does it well, and no AI is going to beat it. Dhito matches names literally for exactly that reason.

The interesting case is the other one. You want the app you use for messaging, or the thing that opens PDFs, or your design tool — and you are not thinking of its name, or you have three candidates and cannot remember which one you installed. A name index cannot help you here: WhatsApp, Telegram and Messages do not contain the word "messaging" anywhere, so a launcher that only matches names returns nothing.

Dhito matches that second way too, semantically, against a description of what each app is for. "messaging app" returns all three. "something that opens PDFs" returns Preview and whatever else on your Mac declares it can. This is the part no other Mac launcher does.

Where the descriptions come from

macOS ships no app description you can read: mdls returns an empty kMDItemDescription even for App Store apps. So Dhito writes one for each app on your Mac, out of what the bundle actually declares about itself.

Its declared category, when it has one — coarse (Safari, Mail, Pages and Preview are all "productivity") and missing outright on roughly 15% of a normal Mac, Chrome included, so useful but never sufficient. The URL schemes it registers, which is the strongest general signal available, because a scheme is a capability claim: http means browser, mailto means mail client, imessage, tg and sms mean messaging. That is what identifies Chrome despite its missing category. The document types it opens, which is what answers "something that opens PDFs". And a curated line for well-known apps, because no amount of plist archaeology tells you Figma is for design.

Those descriptions are embedded once with the same model as your file index, and cached. A rebuild takes about a second on a typical Mac and only happens when the set of installed apps changes.

Apps, files, notes and answers in one box

Apps come back in the same window as everything else, under their own 🚀 pill, pinned above your files rather than interleaved with them — because when an app matches, it is almost always what you meant. Enter launches it.

The same keystroke also gets you answers that are not a search at all. 2+2, 15% of 240, 48kg in lbs, 3pm PT in IST, 90 days from today, sha256 hello, uuid, password 20, #3b82f6 with its WCAG contrast, qr https://dhito.io — around twenty kinds of answer row, resolved above the file results, usually before the file search has finished. ⌘C copies. Everything except currency is pure local computation.

App indexing is on by default and lives in Settings, so Dhito can double as your launcher from the first run. What it does not reach is Mail, Calendar, Contacts, System Settings panes and web suggestions — many people keep ⌘Space for those and give Dhito a second shortcut.

Matched by name, instantly

“chr” finds Chrome, “term” finds Terminal. Names are matched literally, because a prefix test is the right tool for that job and nothing beats it. Enter launches.

Matched by purpose, semantically

“messaging app” finds WhatsApp, Telegram and Messages. “something that opens PDFs” finds Preview. Dhito describes each installed app from what its bundle declares — category, registered URL schemes, document types — and embeds that with the same local model it uses on your files.

Answers in the same keystroke

Around twenty answer rows resolve above your results before the file search finishes: arithmetic and percentages, units and cooking measures, time zones and date math, hashes, UUIDs, passwords, colours with WCAG contrast, QR codes and barcodes. ⌘C copies. All local except the daily currency table.

Common questions

How is this different from Spotlight, Raycast or Alfred?

Those match app names. Dhito matches names too — "chr" finds Chrome — and additionally matches apps by what they are for, so "messaging app" finds WhatsApp, Telegram and Messages, none of which has "messaging" in its name. The trade is the other way round on extensibility: Raycast and Alfred have clipboard history, snippets, window management and scripting, and Dhito has none of those.

Does app matching send anything to a server?

No. App descriptions are built from the bundles on your Mac and embedded by the same local model that indexes your files. Nothing about your apps, your queries or your files leaves the machine, and app search works offline.

Where do apps appear in the results?

Under their own 🚀 pill, pinned above file results rather than mixed in with them, because a matching app is usually what you meant. Enter launches the selected app; double-clicking does the same. Apps get a shorter right-click menu than files — open, copy name or path, show in Finder — since renaming or chatting with an app makes no sense.

Can I turn app results off?

Yes. "Include installed applications in search results" is offered on the first-run screen and lives in Settings afterwards, so you can switch it off at any time and keep Dhito as a pure file search.

Which folders does it look in for apps?

/Applications, /Applications/Utilities, /System/Applications, /System/Applications/Utilities and ~/Applications, with depth-limited walks — so /Applications/Adobe Foo/Bar.app is found, while the faceless background agents in CoreServices are deliberately left out as noise.

Does it replace Spotlight entirely?

Not entirely. Dhito covers apps, files by meaning, notes, calculations, conversions and time zones. It does not search Mail, Calendar, Contacts, System Settings panes or the web. Many people keep Cmd + Space for those and bind Dhito to a second shortcut.

Ready to search your Mac by memory?