Let’s be honest: how much of your day is spent re-typing the same long commands? How often do you run one command just to find an ID, then copy-paste it into the next one? Every docker ps | grep my-app
, kubectl get pods -n prod
, or manual copy-paste is a small interruption that kills your momentum and pulls you out of the zone.
What if your shell could anticipate your next step? What if it could turn those multi-command workflows into a single, interactive action?
That’s why I built IntelliShell, an open-source CLI tool that acts as a smart copilot for your terminal. It’s not just about remembering old commands; it’s about making your workflow faster, smarter, and more productive by eliminating repetitive tasks.
Beyond Shell History: From Recall to Reusability
You might be thinking, "I already have ctrl+r
. Why do I need this?"
The key difference is philosophy:
- Shell history is a reactive log of what you’ve done—typos and all.
- IntelliShell is a proactive library of how you get things done efficiently.
They are complementary tools. Your history is for forensics; IntelliShell is for velocity.
Key Features to Supercharge Your Productivity
IntelliShell is packed with features designed to eliminate command-line friction.
🚀 Dynamic Command Templates: The End of Re-typing
This is the core of IntelliShell. Instead of saving static commands, you create reusable templates with {{variables}}
.
# Stop recalling this...
kubectl logs -n production my-app-pod-xyz123 --tail 50
# Start building this:
kubectl logs -n {{namespace}} {{pod}} --tail {{lines}}
When you run the template, IntelliShell provides an interactive UI to fill in the variables. But here’s where it gets powerful...
💡 Smart Completions: Your Workflow on Autopilot
Why manually find the values for your variables? IntelliShell can fetch them for you in real-time. A completion is a simple shell command that runs in the background to generate suggestions for a variable.
Let’s supercharge the kubectl
example:
# Create a completion to list namespaces
$ intelli-shell completion new --command kubectl namespace "kubectl get ns -o name"
# Create a completion for pods that is context-aware of the namespace
$ intelli-shell completion new --command kubectl pod "kubectl get pods {{-n {{namespace}}}} -o name"
Now, when you run kubectl logs -n {{namespace}} {{pod}}
:
- IntelliShell prompts for
{{namespace}}
and suggestskubectl get ns
output. - Once you select a namespace (e.g.,
staging
), it automatically runs the pod completion (kubectl get pods -n staging
) in the background. - You are immediately presented with a list of pods from that namespace to choose from.
You’ve just turned a multi-step, copy-paste workflow into a single, fluid action.
🧠 AI-Powered
IntelliShell integrates with your favorite AI providers (OpenAI, Gemini, Ollama, etc.) to act as your command-line copilot:
Generate Commands: Can't remember the
ffmpeg
syntax to trim a video? Open search (ctrl+space
), typetrim video from 10s to 30s
, and hitctrl+i
. The AI writes the command for you.Fix Errors Instantly: A command fails with a cryptic error. Instead of heading to Google, recall the command and press
ctrl+x
. The AI will analyze the error and suggest a working version.Import from Anywhere: Turn any text into a command library. Point IntelliShell at a blog post, a tutorial, or even your own shell history, and it will extract and convert commands into reusable templates.
🤝 Workspace-Aware and Team-Ready
Many commands are project-specific. With .intellishell
files, you can define commands and completions that are only available when you're inside a specific repository.
Just create a .intellishell
file in your project's root, commit it to Git, and your entire team gets instant access to the same set of common tasks—build scripts, deployment commands, and more. It's executable documentation that accelerates onboarding and standardizes your workflows.
Quick Start in Under a Minute
Ready to boost your productivity?
-
Install the binary:
# For sh-compatible shells on Linux/macOS/Windows (Bash, Zsh, Fish, Nu, Git Bash) curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.sh | sh
For PowerShell and other installation methods, check out the Installation Guide.
Restart your terminal for the changes to take effect.
Bookmark your first command: Type a command you use often (e.g.,
git checkout {{branch}}
) and hitctrl+b
.Start searching: Clear the line, type a keyword, and hit
ctrl+space
.
What's Next?
This is just the beginning. IntelliShell is a highly configurable tool—you can customize everything from themes and keybindings to the search-ranking algorithms to make it truly your own.
- Explore the Docs: Dive deeper into advanced features in the IntelliShell Book.
-
Share Your Knowledge: Have a set of commands that could help others? Use the
export
command to share your best templates and completions as a public GitHub Gist. It’s a great way to contribute to the community and help others level up their command-line game. Check out the Syncing and Sharing chapter for more details. - Contribute: IntelliShell is open-source. If you have an idea, find a bug, or want to contribute code, I'd love to hear from you. Check out the GitHub repository to get involved.
Give IntelliShell a try and let me know what you think. Stop re-typing and start doing!
Top comments (1)
Love this feature and great article! You can take it a step further by converting your IntelliShell completions in the .json file into a local MCP server. Then, you can create a custom toolset with your MRU commands, which really turbocharges your workspace. Your code agent can do this if you just instruct them to..