I have used git every working day for the better part of a decade and I still cannot reliably remember the incantation for “undo the last commit but keep my changes staged.” I have a tab open in my browser for it. I have it written on a sticky note that has fallen behind my desk. I have, on more than one occasion, just guessed.
The honest answer is that I don’t need to memorise it. I need it on screen in under a second, the moment I think the question. That is what Cheetos is for.
It’s a small macOS menu bar app that holds your cheat sheets - vim, tmux, git, docker, kubectl, ssh, curl, find/grep, bash, brew out of the box - and surfaces them with a global hotkey from anywhere. Click a command, it’s on your clipboard. Hit esc, the window’s gone.
The pitch
Press your hotkey (or click the menu bar icon). A floating panel appears with a search box. Type a few characters - commit amend, tmux split, kubectl logs - and the matches highlight across every sheet. The top match shows up in a banner; press ↩ and the command is copied and the panel disappears. Total interaction time: about a second.
If you’d rather browse, the sidebar lists every sheet. Pick one, scroll, click any backticked command to copy it. ⌘1–⌘9 jumps you between sheets. ⌘F focuses the search box. ⌘, opens settings inline.
That’s the whole app.
Why a native menu bar app
A cheat sheet that lives in a browser tab is not a cheat sheet, it’s a search result. The whole value is being one keystroke away while you’re already in the terminal thinking the question. The moment you have to alt-tab to a browser, find the right tab, and cmd-F for “amend,” you’ve lost.
Menu bar apps are the right shape for this. They’re always running, always one shortcut away, and they get out of the way the instant you stop looking at them. The window is an NSPanel - floating, non-activating - so it appears over whatever you’re doing without stealing focus, and hides as soon as you click elsewhere.
The dock icon is suppressed (LSUIElement = true), so Cheetos doesn’t clutter your ⌘-tab switcher. It’s there, and then it isn’t.
Your sheets, not mine
The bundled sheets are a starting point. Everyone’s muscle memory is different - your tmux is not my tmux, and neither of us cares about half the flags the other one has memorised.
Drop any .md file into ~/.cheetos/ and it shows up in the sidebar. The filename becomes the id, the title is derived from it (docker-compose.md → “Docker Compose”). Edit the file, save it, and Cheetos picks up the change immediately - it watches the directory with DispatchSource and rebuilds the library when anything inside changes. No reload, no settings panel, no restart.
You can also hide bundled sheets you don’t use. Right-click in the sidebar, click the eye-slash, done. The sheet stops appearing in search, the sidebar, and the quick-action banner until you bring it back.
The sidebar reorders itself by usage too. Sheets you reach for often float to the top; the ones you forgot you had drift down. It’s the kind of small thing you stop noticing, which is the point.
The markdown subset
Cheetos renders a deliberately tiny subset of markdown - the parts that matter for cheat sheets:
#,##,###headings to structure a sheet-bullets, where lines like- `cmd` — descriptionrender as a copyable command pill next to the description- Fenced code blocks with a copy button on each one
`inline code`becomes a clickable pill>block quotes for the occasional warning- Search highlights match in titles, descriptions, and commands
That’s it. There’s no images, no tables, no link rendering, no theme switcher. It’s the smallest markdown that does the job, which keeps the renderer a few hundred lines of SwiftUI rather than a dependency.
If you want richer notes, you have a text editor. Cheetos is for the surface area you reach for in the middle of typing a command.
A few small things that took a while
A lot of the work in something like this isn’t the obvious stuff - the menu bar plumbing, the markdown parser, the search. It’s the small interactions that decide whether you actually use it.
The quick-action banner is one of those. When you type a search, the top match doesn’t just highlight, it gets pulled out into a banner at the top of the panel that says “press ↩ to copy git commit --amend.” If you don’t even bother reading the rest of the results, the right answer is one keystroke away. Most of the time it is exactly what you wanted.
The global hotkey is another. It uses Carbon’s RegisterEventHotKey because that’s still the right way to register a system-wide shortcut on macOS, even in 2026. The toggle behaviour - hotkey opens it, hotkey closes it, esc closes it, click-away closes it - turns out to require thinking about every combination of “is the panel open, is it focused, is something else active” that you might be in.
And the bit where clicking on a backticked command in the rendered markdown copies it. That’s a Button inside an AttributedString inside a Text, and getting it to look like a pill in the body of a paragraph - without the layout breaking, without focus rings appearing in odd places, without dragging on the cursor change - is the kind of thing that takes an evening for one feature.
None of these are exciting in isolation. Together they’re the difference between an app you open twice and one you open every day.
What it isn’t
Cheetos is not a documentation browser. It’s not a snippet manager. It’s not trying to replace man or tldr or your notes app. It is one screen with one job: hand you a short command you almost remember, fast.
If you want a syncing, tagging, multi-device, AI-summarised knowledge base, this isn’t that. If you want your cheat sheets one keystroke away on your own machine, in plain markdown files you control, with no accounts and no telemetry, this is for you.
Try it
Grab the latest build from github.com/tuckerwales/cheetos/releases, or check out the source - ./build-app.sh produces a Cheetos.app. macOS 14+.
Drop your own sheets into ~/.cheetos/. Pick a hotkey. Stop guessing at git reset flags.