DEV Community

Cover image for Stop the Command-Line Grind: Boost Your Productivity with IntelliShell
Luis
Luis

Posted on

Stop the Command-Line Grind: Boost Your Productivity with IntelliShell

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}}
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

Now, when you run kubectl logs -n {{namespace}} {{pod}}:

  1. IntelliShell prompts for {{namespace}} and suggests kubectl get ns output.
  2. Once you select a namespace (e.g., staging), it automatically runs the pod completion (kubectl get pods -n staging) in the background.
  3. 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), type trim video from 10s to 30s, and hit ctrl+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?

  1. 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.

  2. Restart your terminal for the changes to take effect.

  3. Bookmark your first command: Type a command you use often (e.g., git checkout {{branch}}) and hit ctrl+b.

  4. 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)

Collapse
 
p3ngu1nzz profile image
p3nGu1nZz

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..