Stop googling flags. Describe what you want — get the exact command.
A cross-platform, bring-your-own-LLM Spotlight for your terminal. Press the hotkey, type a sentence, press Tab, and the command is on your clipboard.
Prefer 中文? → 阅读中文版
You need find . -type f -mtime -7 -not -path '*/node_modules/*' -size +10M.
You already know what you want. You don't want to re-read the man page for
the fourth time this week.
Hit the hotkey. Say "files changed this week over 10MB, skip node_modules". Press Tab. It's on your clipboard.
- Global hotkey, global reach — one keystroke from anywhere, no tab-switching, no context-switching.
- Speaks your shell — zsh, bash, PowerShell, cmd. Switch targets from the tray menu and watch the same prompt generate a different command.
- Chat back to refine — reply in natural language and the command mutates in place. No re-prompting from scratch.
- Bring your own brain — any OpenAI-compatible or Anthropic-compatible endpoint works: OpenAI, Anthropic, Azure, Ollama, LiteLLM, your own gateway, whatever.
- Private gateways welcome — attach custom HTTP headers per provider for auth, tenancy, routing.
- Trilingual explanations — English, 简体中文, and 日本語 out of the box. Commands stay in shell syntax; the why is localised.
- Native and tiny — Rust core, Tauri shell, boots in a blink, lives in the tray, stays out of your way.
- Config you can read — everything is a single plain
config.toml. No hidden database, no magic.
The explanation text follows your UI language. Everything else — the
hotkey, the Tab-to-copy flow, the refinement loop — works identically.
| English | 中文 |
|---|---|
![]() |
![]() |
Grab the latest installer from Releases:
- macOS —
.dmg - Windows —
.msior.exe
Unsigned builds: on first launch macOS may refuse to open — right-click the app and choose Open. On Windows, SmartScreen may warn — click More info → Run anyway.
First launch opens the Settings window automatically because no providers are configured. Add at least one:
| Provider | Base URL | Notes |
|---|---|---|
| OpenAI | https://api.openai.com/v1 |
any chat-completions model |
| Anthropic | https://api.anthropic.com |
any Claude model |
| Any compatible gateway | your URL | optional custom headers under Advanced |
Pick one as active, set your shell, and you're done.
The config file lives at:
- macOS —
~/Library/Application Support/ShellHelper/config.toml - Windows —
%APPDATA%\ShellHelper\config.toml
| Key | Where | What happens |
|---|---|---|
Cmd/Ctrl + Shift + G |
anywhere | open the popup (configurable) |
Tab |
description field | generate the command |
Tab |
command field | copy to clipboard + close |
Enter |
refine field | send a follow-up to the LLM |
Esc |
popup | cancel and hide |
Prerequisites: Rust stable, Node.js 20+, and the platform Tauri dependencies (macOS / Windows).
git clone <this-repo>
cd ShellHelper
npm --prefix frontend install
cargo tauri dev --project crates/appRelease build:
cargo tauri build --project crates/app
