Inline finder for the commands you use every day and never quite memorize. ~2 ms startup · 6.2 MB binary · zero dependencies Features · Install · Quick start · Usage · Shell · Sync · MCP Features Inline overlay — Opens below the cursor, not as a fullscreen app. Dismiss without trace. Pure ANSI escape codes, no libraries. Fuzzy search + typo tolerance — Damerau-Levenshtein distance catches typos. Accent normalization (próximo matches proximo). Recency ranking — Score = fuzzy match + usage count + exponential decay (48h half-life). Pinned commands stay at top. Workflows — Multi-step commands with interactive runner. Each step is a title + command pair. Enter steps forward, Ctrl+X runs all. Zero dependencies — Pure Go standard library. No ncurses, no fzf, no daemon. Single 6.2 MB binary. MCP server — Model Context Protocol over stdin/stdout. Lets AI agents search, add, edit, and execute from your vault. Install npm install -g decoreba Downloads a prebuilt binary for your platform. No Go toolchain needed. go install github.com/matheuzgomes/decoreba/cmd/decoreba@latest Quick start decoreba # auto-detect context from cwd decoreba git # search within "git" context decoreba add # add a command decoreba edit 0c9 # edit by id prefix decoreba stats # vault statistics See the full reference below. Usage Palette The overlay appears below your prompt, not fullscreen. Type to fuzzy-search. Enter copies the command. Ctrl+X executes it. NoteShift+Enter also executes, but only in terminals that implement the kitty keyboard protocol (kitty, WezTerm, Ghostty). In most terminals Shift+Enter sends the same byte as Enter and will copy instead. When results exceed the viewport, an overflow indicator appears (… 3 more). If the terminal is 3 rows or shorter, a graceful message is shown instead. NO_COLOR or --no-color disables all ANSI codes. Keybindings Universal (every terminal emulator) Key Action ↑ / Ctrl+K Navigate up ↓ / Ctrl+J Navigate down Enter Copy selected 1 – 9 Direct select (empty search) Ctrl+X Execute selected (press twice, or y to confirm) Ctrl+E Edit selected Ctrl+S Toggle pin Backspace (empty) Remove context chip Tab / Shift+Tab Next / previous field (form) Esc / Ctrl+C Cancel Kitty protocol only (kitty, WezTerm, Ghostty) Key Action Shift+Enter Execute selected Execute mode Ctrl+X triggers execution. A confirmation prompt appears: Run this command? y/yes n/no. Press Ctrl+X again or y to confirm. Any other key cancels. With --shell-output, the command text is printed to stdout instead of the clipboard. The shell widget (below) strips the prefix automatically: decoreba docker ps --shell-output # prints "✓ docker ps" or "EXEC:docker ps" Add / Edit form Five fields: context, title, command, tags, notes. Context autocompletes from existing entries. Tags render as colored chips. Ctrl+W turns the command into a multi-step workflow editor. decoreba edit or Ctrl+E from the palette reopens the form pre-filled. Workflows Commands can have multiple steps. Each step is a title + command pair. Enter runs the next step. Ctrl+X runs all remaining (confirms first). Esc aborts. Failed steps show ✗. Subprocess I/O routes through /dev/tty so interactive programs still work when piped. Variables Use {{placeholder}} or {{name:default}} in any command. On copy or execute, decoreba prompts for each value inline: $ decoreba deploy Container name: [web] Shell integration Completions Generate tab completions for subcommands, contexts, and sync actions: eval "$(decoreba completion bash)" # or zsh / fish Ctrl+O widget Opens the palette pre-filled with whatever you typed. Enter inserts the command at the cursor. Ctrl+X executes (confirms first). source /dev/sda, etc.) are blocked by a built-in denylist. Auto-backup runs before every modification. Data Single JSON file. Atomic writes (save to.tmp, rename over target). OS Path Linux $XDG_CONFIG_HOME/decoreba/commands.json macOS ~/Library/Application Support/decoreba/commands.json Windows %AppData%\decoreba\commands.json Override the directory with $ (the filename is always commands.json). Performance Metric Value Binary 6.2 MB (CLI, stripped with -s -w) Startup ~2 ms RSS ~7 MB Dependencies zero (pure Go stdlib) Targets linux amd64/arm64, macOS amd64/arm64, windows amd64 Design Appear, don't replace. Inline overlay, not alternate screen. The terminal is exactly as it was before. Right answer before you finish typing. Fuzzy + typo tolerance + recency + pinning. Keyboard-first. Every action has a shortcut. The hint line teaches them progressively. No mouse. Context over categories. Commands live under the tool they belong to. Auto-detection from cwd. Accessible. NO_COLOR and --no-color disable all ANSI escape codes.
Show HN: I built a command palette for the terminal – 6.2MB, pure Go, no fzf
Inline finder for the commands you use every day and never quite memorize. ~2 ms startup · 6.2 MB binary · zero dependencies Features · Install · Quick start · Usage · Shell · Sync · MCP Features Inline overlay — Opens below the cursor, not
Inline finder for the commands you use every day and never quite memorize. ~2 ms startup · 6.2 MB binary · zero dependencies Features · Install · Quick start · Usage · Shell · Sync · MCP Features Inline overlay — Opens below the cursor, not
- Usage Palette The overlay appears below your prompt, not fullscreen.
- NoteShift+Enter also executes, but only in terminals that implement the kitty keyboard protocol (kitty, WezTerm, Ghostty).
- The shell widget (below) strips the prefix automatically: decoreba docker ps --shell-output # prints "✓ docker ps" or "EXEC:docker ps" Add / Edit form Five fields: context, title, command, tags, notes.
- Ctrl+W turns the command into a multi-step workflow editor. decoreba edit or Ctrl+E from the palette reopens the form pre-filled.
- Variables Use {{placeholder}} or {{name:default}} in any command.
What people are saying
Hot takes
Loading takes…
Comments
Discussion · 0
Sign in to comment, like, and save articles.
Sign inLoading comments…

