Easy Terminal History
Auto-capture, organize, and replay terminal commands with a single click.
Stop re-typing long Docker builds, kubectl deploys, or git workflows. Easy Terminal History captures every successful command you run, groups it by tool, surfaces your most-used commands at the top, and lets you replay anything instantly from a clean sidebar panel.
Features
⚡ Auto-capture from the terminal
Commands are captured automatically as you work — no copy-pasting needed. Powered by VS Code's Shell Integration API (VS Code 1.93+, works with zsh, bash, and fish).
Only successful commands (exit code 0) are stored by default, keeping your history clean and free of typos.
⭐ Most Used section
The sidebar always shows your top 5 most-frequently-run commands in a dedicated section at the very top — below Pinned items — so you never have to scroll to find what you reach for every day. The count is configurable up to 20.
🗂 Smart categorization — 16 categories
Commands are automatically grouped by their leading tool name:
| Category |
Tools detected |
| Git |
git |
| NPM |
npm, npx, yarn, pnpm, bun |
| Docker |
docker, docker-compose, docker compose |
| Kubectl |
kubectl, helm, k9s, minikube, kind, flux, oc |
| Terraform |
terraform, tofu, pulumi, cdktf |
| AWS |
aws, awslocal, aws-vault |
| Azure |
az |
| GCloud |
gcloud, gsutil, bq |
| Python |
python, pip, conda, poetry, pipenv, uv |
| Rust |
cargo, rustc, rustup |
| Go |
go |
| Java |
mvn, gradle, gradlew, java, javac, spring |
| Database |
psql, mysql, mongosh, redis-cli, sqlite3 |
| Make |
make, cmake, ninja, bazel, sbt |
| Shell |
grep, find, curl, ssh, tar, etc. |
| Other |
Everything else |
💡 Terminal Helper
Click the $(lightbulb-autofix) Enable Terminal Helper button in the sidebar header to turn on in-terminal suggestions. When active:
- A status bar item
$(lightbulb) Helper: ON appears at the bottom of the screen.
- Click the $(list-flat) Suggest Command button (or the status bar item) to open a ranked Quick Pick of your top 10 commands.
- Selecting a command inserts it at the terminal prompt without executing it — review it, edit it, then press Enter.
📌 Pin your favourites
Pin any command to keep it at the top of the list, across every session.
🔍 Search & filter
Full-text search and one-click category filters in the rich panel view.
▶ One-click run
Click any command in the sidebar or panel to run it instantly in the active terminal.
📦 Command Sets
Group multiple commands into a named sequence and run them all in order with one click — perfect for multi-step deploys or CI pipelines.
🔧 Parameterised Templates
Create command templates with ${VARIABLE} placeholders. When you run a template, you're prompted to fill in each value:
kubectl set image deployment/${DEPLOYMENT} ${CONTAINER}=${IMAGE}
🛡 Secret Detection
Before storing auto-captured commands, Easy Terminal History scans for patterns like GitHub tokens, AWS keys, Bearer tokens, and --password flags, warning you before sensitive data is persisted.
📤 Export / Import
Export your entire command vault to JSON and import it on another machine — great for team sharing or backup.
Getting Started
- Install the extension — the Easy Terminal History icon appears in the Activity Bar.
- Open a terminal in VS Code and run any command (e.g.
git status, npm run build).
- The command appears in the sidebar under its category (and in Most Used once you've run it from the vault).
- Click any command to replay it, or hover for the inline ▶ Run, 📌 Pin, and ✕ Delete buttons.
Shell integration required for auto-capture. VS Code enables this automatically for zsh, bash, and fish. If commands aren't appearing, check that the prompt shows a shell integration indicator (⚡ or similar decoration).
UI Tour
The Activity Bar icon opens the Terminal History sidebar. Groups are shown in this order:
| Group |
What's shown |
| 📌 Pinned |
Commands you've explicitly pinned — always on top |
| ⭐ Most Used |
Your top N most-run commands (configurable, default 5) |
| Git / NPM / Docker … |
All remaining commands grouped by detected category |
Commands already in Most Used are hidden from their category section to avoid duplication.
Hover a command to reveal inline ▶ Run, 📌 Pin, and ✕ Delete buttons.
Rich Panel
Click the panel icon in the sidebar header (or run Easy Terminal History: Open Panel from the Command Palette) to open the full Material Dark panel with:
- Live search bar
- Category filter chips
- Run count & last exit code badges
- Add command form at the bottom
Commands (Command Palette)
| Command |
Description |
Easy Terminal History: Add Command |
Manually save a command |
Easy Terminal History: Open Panel |
Open the rich webview panel |
Easy Terminal History: Enable Terminal Helper |
Turn on in-terminal command suggestions |
Easy Terminal History: Disable Terminal Helper |
Turn off in-terminal suggestions |
Easy Terminal History: Suggest Command in Terminal |
Open the ranked suggestion Quick Pick |
Easy Terminal History: Create Command Set |
Create a named sequence of commands |
Easy Terminal History: Run Command Set |
Pick and run a saved sequence |
Easy Terminal History: Create Template |
Create a ${VAR} parameterised template |
Easy Terminal History: Run Template |
Fill in variables and run a template |
Easy Terminal History: Export to JSON |
Export all commands, sets, and templates |
Easy Terminal History: Import from JSON |
Import a previously exported vault |
Easy Terminal History: Clear All History |
Remove all non-pinned commands |
Settings
| Setting |
Default |
Description |
commandVault.captureOnShellIntegration |
true |
Auto-capture commands from the terminal |
commandVault.skipNoisyCommands |
true |
Skip trivial commands (ls, cd, clear, etc.) |
commandVault.skipFailedCommands |
true |
Skip commands that exit with a non-zero code |
commandVault.mostUsedCount |
5 |
How many commands to show in the Most Used section (1–20) |
commandVault.maxHistory |
200 |
Maximum commands to retain in total |
Requirements
- VS Code 1.93+
- Shell integration enabled (automatic for zsh/bash/fish in VS Code's integrated terminal)
Privacy & Security
- All data is stored locally in VS Code's
globalState — nothing is sent to any server.
- The secret detection feature scans commands for common secret patterns (tokens, passwords, API keys) and warns you before they are stored. You can still choose to save them.
- Commands stored in the vault are plaintext. Avoid storing commands that contain real credentials.
Release Notes
0.2.0
- Most Used section: top N commands (default 5) pinned to the top of the sidebar for instant access; commands already shown there are hidden from their category group to reduce clutter
- 16 smart categories: added Terraform, AWS, Azure, GCloud, Rust, Go, Java, Database, Make alongside the original set — all detected from the command prefix automatically
- Skip failed commands: only successful (exit 0) commands are stored by default; toggle with
commandVault.skipFailedCommands
- Terminal Helper: a sidebar toggle button that enables a ranked Quick Pick to insert commands at the terminal prompt without executing them
mostUsedCount setting: configure the Most Used section size (1–20)
skipFailedCommands setting: opt-in to capturing failed commands if needed
0.1.0
- Initial release
- Auto-capture via Shell Integration API
- Smart categorization (Git, NPM, Docker, Python, Kubectl, Shell)
- Pin / delete / label commands
- Material Dark rich webview panel with search & filter
- Command Sets (multi-command sequences)
- Parameterised Templates
- JSON Export / Import
- Secret detection with warnings
Contributing
Issues and PRs welcome at github.com/sammacorpy/easy-terminal-history.
Enjoy Easy Terminal History!
| |