Amazon Q-style dropdown autocomplete for Linux. Works in zsh and bash. Free, source-available, no Node required.
Press space after any known command. A dropdown opens. Type to filter. Arrows to navigate. Enter to pick. Cascades automatically through subcommand levels.
Amazon Q CLI ships the best terminal autocomplete available - an inline dropdown with descriptions, cascading through subcommand levels. It is macOS-only.
On Linux you get zsh-autosuggestions (single-line ghost text) or your shell's built-in TAB completion (functional but not visual). peek fills the gap: the same dropdown experience, in zsh and bash, as a single static Go binary. No Node, no Electron, no runtime deps. Sub-millisecond latency via a persistent background daemon.
Live completions from your actual environment
git checkout <Tab> lists your real branches. git add <Tab> shows your modified files. kubectl exec <Tab> lists running pods. docker run <Tab> shows local images. Completions run the same shell commands Fig's specs define, in your cwd, at completion time.
Directory drill-down
Pick a folder and the dropdown immediately opens inside it. Navigate deep paths without typing a single slash.
Files before flags
For vim, cat, ls, cp, rm, scp and most file commands - real filesystem entries appear at the top of the dropdown, flags below.
curl -fsSL https://raw.githubusercontent.com/vinbh/peek/main/get.sh | bashDetects your OS and architecture, downloads the right binary from Releases, and installs everything. No Go required.
brew install vinbh/peek/peekgo install github.com/vinbh/peek/cmd/peek@latest
peek setuppeek setup extracts the embedded specs and hooks to ~/.config/peek/ and offers to wire your shell rc files automatically.
git clone https://github.com/vinbh/peek.git
cd peek
./install.shThe installer prompts you automatically. To add manually:
zsh — add to ~/.zshrc:
source ~/.config/peek/peek.zshbash (4.3+) — add to ~/.bashrc:
source ~/.config/peek/peek.bashOpen a new shell and start typing. ./uninstall.sh removes everything (hand-rolled specs are preserved).
| Category | Commands |
|---|---|
| Dev tools | git, docker, docker-compose, kubectl, helm, terraform, make, gh, podman |
| Kubernetes | kind, minikube, k3d, kubectx, kubens |
| IaC / infra | pulumi, ansible, ansible-playbook, vault |
| Cloud | aws, gcloud, doctl, fly, vercel, netlify |
| Languages | go, cargo, rustc, python, pip, node, npm, yarn, pnpm, ruby, gem, bundle, swift, dotnet, java |
| Version managers | nvm, rbenv, pyenv, asdf |
| Python packaging | poetry, pipenv, conda |
| Build tools | cmake, gradle, mvn, ant, bazel |
| Shell utils | ls, find, grep, sed, xargs, tar, cut, sort, uniq, wc, tee, diff, mv, cp, rm, ln, mkdir, touch, chmod, chown, cd |
| Viewing | cat, less, head, tail, man, bat |
| Network | curl, wget, ssh, scp, rsync, ping, nc, ssh-keygen, nmap, dig, traceroute |
| System | systemctl, apt, brew, ps, kill, top, htop, df, du, lsof, uname, crontab |
| Databases | psql, mysql, sqlite3, mongosh |
| Data | jq, svn |
| Editors / muxers | vim, vi, nvim, emacs, nano, tmux, screen |
| Dev workflow | direnv, pre-commit, goreleaser, act, gpg |
121 commands imported from Fig autocomplete (MIT). To add more: edit tools/import-fig/commands.txt and re-run the importer.
| peek | zsh-autosuggestions | Amazon Q / Fig | inshellisense | |
|---|---|---|---|---|
| Linux native | ✅ | ✅ | ❌ macOS only | ✅ |
| Dropdown with descriptions | ✅ | ❌ ghost text | ✅ | ✅ |
| Live completions (branches, pods) | ✅ | ❌ | ✅ | ✅ |
| File/folder completion | ✅ | ❌ | ✅ | ✅ |
| Type-to-filter in dropdown | ✅ | n/a | ✅ | ✅ |
| Standalone binary | ✅ Go | ✅ shell | ❌ | ❌ Node |
| Source-available | ✅ PolyForm-NC | ✅ MIT | ❌ | ✅ MIT |
No floating overlay. Linux has no universal cursor-pixel API and Wayland blocks the trick. peek renders inline (same as fzf, atuin). No telemetry, no network calls.
| Lands in | |
|---|---|
| fish shell | M9+ |
| LLM fallback for unknown commands | M9+ |
| AUR / COPR packages | M9+ |
zsh / bash widget (space or Tab)
|
v
peek client --unix socket--> peek-daemon
| |
| +- load spec for first token
| +- run generators (git branch, kubectl get, ...)
| +- prefix-match remaining input
<---- []Suggestion JSON -------+
v
/dev/tty raw mode -> ANSI dropdown -> pick returned to shell
The daemon lazy-spawns on first use (fork + Setsid, no systemd required). If it can't start, peek answers in-process so you're never left without completions. Generator scripts run with a 5-second timeout in your shell's cwd.
go build -o ./bin/peek ./cmd/peek
export PATH="$PWD/bin:$PATH"
export PEEK_SPECS_DIR="$PWD/specs"
source ./shell/zsh/peek.zsh # or: source ./shell/bash/peek.bash
# After rebuilding: pkill -KILL -f 'peek daemon'To test the go install path locally:
go build -o ./bin/peek ./cmd/peek
./bin/peek setupgo test ./...To regenerate the demo GIFs (requires vhs, ffmpeg, ttyd):
vhs demo/git.tape
vhs demo/cd.tape
vhs demo/files.tape- M0 - scaffold
- M1 - zsh Tab completion via JSON specs
- M2 - ANSI dropdown + type-to-filter
- M3 - long-running daemon (lazy auto-spawn, in-process fallback)
- M4 - auto-open on space, cascading subcommand levels
- M5 - 63 commands imported from Fig autocomplete
- M5.5 - file / folder generators (
cd,vim,ls,cp, ...) - M6 - live completions via script generators (git branches, kubectl resources, docker containers, aws profiles)
- M7 - bash shell support (4.3+), unified multi-shell installer
- M8 - 121-command catalog (2x),
go install+ embedded specs,peek setup, Homebrew tap, deb/rpm/apk packages - M9+ - fish shell, history ranking, LLM fallback, AUR/COPR packages
PRs welcome. By submitting you agree to the CLA, which allows future commercial dual-licensing.
To add a spec: drop a specs/<cmd>.json - it overrides anything in specs/fig/. The format is a subset of Fig's spec schema.
PolyForm Noncommercial 1.0.0 - free for personal, hobby, research, and educational use.
For commercial use, open an issue or email vinayakbhatt@mit.tc.
Specs from Fig autocomplete remain MIT-licensed; their headers are preserved in specs/fig/.
withfig/autocomplete- spec catalog (MIT)charmbracelet/vhs- demo GIF toolingmicrosoft/inshellisense- Node-based Fig portcarapace-sh/carapace- Go completion enginezsh-users/zsh-autosuggestions- the Linux ghost-text standardfzf,atuin,fish- UI patterns

