DEV Community

Rustam
Rustam

Posted on

🦸‍♂️ Hello — The Interactive CLI Commander

"Because typing the same 15 commands every day is so 2026."

A command-line utility that turns your chaotic terminal sessions into a beautiful, interactive menu. Stop memorizing commands. Start executing like a pro.


🚀 What Makes This Tool Special?

FeatureWhat It Does For You
🎯 Zero MemorizationNever type kubectl get pods --all-namespaces --context=prod again
Lightning FastOne binary. No dependencies. Runs everywhere.
🔗 Command ChainingExecute complex workflows with --exec "1-2-3-4"
📁 Team-ReadyShare menu.yml with your team. Onboard new devs in 30 seconds.
🔐 Env VariablesStore secrets safely in env.ini — never hardcode credentials

📦 Installation (30 seconds or less)

Option 1: One-Liner (if binary is hosted)

curl -sSL https://example.com/hello | sudo tee /usr/local/bin/hello &&sudo chmod +x /usr/local/bin/hello
Enter fullscreen modeExit fullscreen mode

Option 2: Build from source

git clone https://github.com/yourrepo/hello
cd hello
go build -o hello main.go
./hello --help
Enter fullscreen modeExit fullscreen mode

Option 3: Copy & Go

# Anywhere you want:cp hello ~/hello # Home foldercp hello /usr/local/bin/ # Global access (recommended)
Enter fullscreen modeExit fullscreen mode

🎮 Usage That Will Make You Smile

Interactive Mode — The "I'm Feeling Lazy" Way

# Just run it. The menu will greet you.
./hello
# Using your own config
./hello -c ./deploy_menu.yml
Enter fullscreen modeExit fullscreen mode

Headless Mode — The "I'm Automating Everything" Way

# Execute a single command
./hello --exec"1"# Execute a whole pipeline (1 → 2 → 3 → 4)
./hello --exec"1-2-3-4"
Enter fullscreen modeExit fullscreen mode

Perfect for: CI/CD pipelines, morning standup scripts, and impressing your boss.


📂 Example Menu (Your New Best Friend)

items:1:title:"1.🚀DeploytoProduction"commands:-"gitcheckoutmain"-"gitpulloriginmain"-"dockerbuild-tmyapp:latest."-"dockerpushmyapp:latest"-"kubectlrolloutrestartdeployment/myapp"2:title:"2.📊CheckSystemHealth"commands:-"htop"-"df-h"-"free-m"-"netstat-tulpn|grepLISTEN"3:title:"3.🔥CleanUpDockerGarbage"commands:-"dockersystemprune-af--volumes"-"echo'✨Saved47GBofdiskspace!'"
Enter fullscreen modeExit fullscreen mode

🏆 Why Developers Are Switching

"I used to spend 10 minutes every morning running status checks. Now I just type ./hello --exec 2 and grab coffee."Senior DevOps Engineer

"My junior devs can now deploy to production without breaking things. The menu guides them step by step."Tech Lead

"I put this in our onboarding guide and new hires are productive on day 1."Engineering Manager


🔧 Pro Tips for Maximum Swag

  1. Create different menus for different projects:
 ./hello -c ./k8s_menu.yml
./hello -c ./aws_menu.yml
./hello -c ./db_backup.yml
Enter fullscreen modeExit fullscreen mode
  1. Add emojis to your menu titles — trust me, it works.

  2. Use environment variables for sensitive data:

# env.ini
DB_PASSWORD=supersecretAWS_KEY=AKIA...
Enter fullscreen modeExit fullscreen mode
commands:-"mysql-uroot-p%(DB_PASSWORD)s"
Enter fullscreen modeExit fullscreen mode
  1. Create aliases in your .bashrc:
alias deploy="./hello -c ./deploy.yml --exec 1-2-3"alias health="./hello -c ./health.yml"alias backup="./hello -c ./backup.yml"
Enter fullscreen modeExit fullscreen mode

🧠 Architecture Philosophy

This tool was built with one principle in mind: "Your terminal should work FOR you, not AGAINST you."

  • Simple YAML config — No need to learn a new DSL
  • Go binary — Fast, portable, dependency-free
  • Chaining support — Complex workflows made simple
  • Error handling — If a command fails, execution stops immediately

📁 Project Structure

.
├── hello # The binary (your new best friend)
├── main.go # Source code (if you're curious)
├── menu/ # Default menu folder
│ └── menu.yml # Your main menu
├── env.ini # Environment variables (optional)
└── README.md # This masterpiece
Enter fullscreen modeExit fullscreen mode

🛠️ Debugging (for the brave)

# Run with Delve debugger
dlv debug --headless--listen=:40000 --api-version=2
# Build with debug symbols
go build -gcflags="all=-N -l"-o hello main.go
Enter fullscreen modeExit fullscreen mode

🎯 Roadmap (Coming Soon)

  • [ ] Dark mode support (your eyes will thank you)
  • [ ] Command history (see what you ran last week)
  • [ ] Web UI (because why not?)
  • [ ] Plugin system (write your own commands in any language)
  • [ ] AI-powered suggestions (automatically complete your workflows)

❤️ Show Some Love

If this tool saved you time, made you smile, or just looked cool in your terminal:

  • Star this repo — it's like a high-five to the developer
  • 🐦 Tweet about it — tag me @hrustbb
  • 💬 Share your menu — inspire others with your setup
  • Buy me a coffee — (if you're feeling generous)

📬 Feedback & Contributions

Found a bug? Have a feature request? Want to contribute?

  • Open an issue on GitHub
  • Submit a PR — all contributions welcome!
  • Connect with me on DEV.to

📄 License

MIT — use it, abuse it, share it, improve it.


Made with ❤️ by @hrustbb

"The best CLI tool you've never heard of — until today."


🎉 Bonus: Quick Start Template

Here's a menu.yml to get you started in 60 seconds:

items:1:title:"1.📦Updatesystempackages"commands:-"sudoaptupdate&&sudoaptupgrade-y"2:title:"2.🔍Showdiskusage"commands:-"df-h|grep-vsnap"3:title:"3.🧹Clearsystemcache"commands:-"sudoaptautoclean"-"sudoaptautoremove-y"4:title:"4.📊Systemmonitoringdashboard"commands:-"htop"5:title:"5.🚪Exit"commands:-"echo'👋Seeyoutomorrow!'"-"exit0"
Enter fullscreen modeExit fullscreen mode

Copy this, save it as menu/menu.yml, and run ./hello. You're now a productivity superhero.


Want to learn more? Check out the full documentation and advanced examples on DEV.to 🚀

Top comments (0)