easycmd-cli
v1.0.0
Published
Highly customizable terminal command system with native command support
Maintainers
Readme
EasyCmd - Universal Remote CLI
From command memorization to universal control. Built for today's developers. Designed for tomorrow's infrastructure.
📖 Table of Contents
- Why EasyCmd Exists
- The Vision
- Quick Start
- Evolution Path
- Real-World Use Cases
- Installation
- Features
- Command Reference
- Roadmap
- Contributing
💡 Why EasyCmd Exists
The Problem Every Developer Faces
# Which one was it again?
touch file.txt # or... New-Item? or... type nul >?
mkdir folder # or... md? or... New-Item -ItemType Directory?
mv old new # or... move? or... Rename-Item?The reality: We all waste time:
- 🔍 Googling "how to rename file in terminal" for the 100th time
- 🤔 Context switching between different command conventions
- 😤 Dealing with platform differences (Windows vs Mac vs Linux)
- ⌨️ Remembering complex syntax and flags
The Personal Solution
Instead of fighting the system, customize it:
# Your way, your commands
create-file hello.txt "Hello World"
rename-file old.txt new.txt
make-folder my-project
# Even better - YOUR personal aliases
dadoP myfile.txt # Dad's personal command
cf notes.md # Custom alias for create-file
mkf components # Your shortcut for make-folderThe Bigger Picture
What started as "I can't remember mkdir" evolved into something far more powerful:
"What if I could control my entire development environment from my phone?"
🌟 The Vision: Universal Remote CLI
Imagine This Scenario
You're on the couch / on the train / at a coffee shop / on vacation
And you need to:
- ✅ Start a server on your laptop
- ✅ Check if a process is running
- ✅ Deploy your application
- ✅ Run tests
- ✅ Check logs
- ✅ Restart a service
Currently: You need to be at your laptop
With EasyCmd:
Phone → SSH → Your Laptop → EasyCmd → Execute Command🚀 Quick Start
Installation
npm install -g easycmdYour First Commands
# Use built-in commands
create-file hello.txt "My first file"
make-folder my-project
rename-file hello.txt welcome.txt
# Create your custom aliases
easy bind cf --alias create-file
easy bind mkf --alias make-folder
# Now use your shortcuts
cf myfile.txt "So easy!"
mkf componentsCreate Powerful Macros
# Complex workflow → Single command
easy bind deploy --macro "npm run build && docker build -t myapp . && docker push myapp"
# Now just:
deploy🎯 Evolution Path
Phase 1: Simple Command Aliases ✅ Current
Stop remembering platform-specific syntax:
# Before
touch file.txt # Mac/Linux
type nul > file.txt # Windows
New-Item file.txt # PowerShell
# After
create-file file.txt # EverywhereBenefits:
- 🎯 Memorable command names
- 🌍 Cross-platform compatibility
- 🧠 Reduced cognitive load
- ⚡ Faster workflow
Phase 2: Custom Workflows ✅ Current
Automate complex operations:
# Traditional (error-prone, tedious)
npm run build
npm run test
docker build -t myapp .
docker push myapp:latest
kubectl apply -f deployment.yaml
# EasyCmd (one command, automated)
easy bind ship --macro "npm run build && npm test && docker build -t myapp . && docker push myapp && kubectl apply -f deployment.yaml"
ship # That's it!Benefits:
- ⚡ Faster execution
- 🎯 Zero errors
- 📝 Reproducible workflows
- 🤝 Shareable with team
Phase 3: Remote Control 🔮 Future Vision
Control your laptop from your phone:
# SSH from phone
ssh your-laptop
# Run your custom commands
start-dev-server
check-logs
restart-database
deploy-production
# All from your phone!Benefits:
- 📱 Mobile-friendly commands
- 🌍 Work from anywhere
- ⚡ Quick emergency fixes
- 🎯 No laptop needed
Phase 4: Smart Remote CLI 🔮 Future Vision
Voice control and automation:
# Voice command
"Start my development environment"
→ Executes: start-postgres, start-redis, start-dev-server
# Mobile app with buttons
[Deploy] [Test] [Logs] [Status] [Restart]
# Scheduled automation
"Run backup every night at 2 AM"
"Pull latest code every morning at 8 AM"Phase 5: Universal Control Center 🔮 Ultimate Vision
Multi-machine orchestration:
# Control all your machines
easy exec --machine laptop deploy
easy exec --machine server restart
easy exec --machine raspberry-pi check-sensors
# Monitor everything
easy status --all
→ Laptop: Running ✅
→ Server: 3 containers up ✅
→ Pi: Temperature OK ✅
# Ultimate automation
easy bind morning-routine --macro "
laptop: start-dev-env
server: check-health
pi: update-sensors
notification: send-status
"💼 Real-World Use Cases
Use Case 1: Remote Development
Scenario: You're away from your laptop but need to check your dev server
# SSH from phone
ssh your-laptop
# Quick checks
check-server # Is dev server running?
restart-dev # Restart if needed
dev-logs # Check what's happening
# All from your phone keyboard!Use Case 2: Emergency Production Fixes
Scenario: Production is down, you're not at your desk
# SSH to production server
ssh production-server
# Quick diagnosis
check-health
check-errors
# Quick fix
restart-app
clear-cache
# Crisis averted from your phone!Use Case 3: Daily Workflow Automation
Scenario: Repetitive tasks slow you down
# Morning routine
easy bind morning --macro "docker-compose up -d && npm run dev && code ."
morning # Start your day with one command
# Deployment workflow
easy bind ship --macro "npm run build && npm test && docker build -t myapp . && docker push myapp"
ship # Deploy with confidence
# Cleanup routine
easy bind cleanup --macro "docker system prune -f && npm cache clean --force"
cleanup # Clean workspaceUse Case 4: Multi-Machine Control
Scenario: You manage multiple servers
# Your laptop
ssh laptop
start-dev
# Your home server
ssh server
check-containers
# Your Raspberry Pi
ssh pi
check-temperature
# All using YOUR custom commands across all machines💡 Why This Makes Sense
1. You Already SSH Into Your Laptop
Many developers already:
- SSH from phone using Termius, JuiceSSH, etc.
- Need to run commands remotely
- Struggle with complex commands on mobile keyboard
2. Mobile Keyboards Are Terrible for Long Commands
Typing on phone:
docker ps -a --filter "status=running" --format "table {{.Names}}\t{{.Status}}"vs
running-containersWhich would you rather type on a phone?
3. One System, Many Interfaces
Desktop Terminal → EasyCmd Commands
↓
Phone SSH → Same Commands
↓
Voice Assistant → Same Commands
↓
Web Dashboard → Same Commands
↓
Automation Scripts → Same CommandsResult: Learn once, use everywhere
4. Customization = Personal Remote
Your laptop, your commands:
# Instead of generic commands:
docker ps
kubectl get pods
git status
# Your personalized remote:
my-containers
my-services
my-status📦 Installation
Prerequisites
- Node.js >= 16.0.0
- npm >= 7.0.0
Install Globally
npm install -g easycmdSetup PATH (Automatic)
EasyCmd automatically adds custom commands to your PATH. If needed, manually add:
For Bash/Zsh:
export PATH="$HOME/.easycmd/bin:$PATH"For Windows PowerShell:
$env:PATH += ";$env:USERPROFILE\.easycmd\bin"Verify Installation
easy --version
easy list✨ Features
Core Features
- ✅ Cross-Platform: Works on Windows, macOS, and Linux
- ✅ Custom Aliases: Create shortcuts to built-in commands
- ✅ Shell Macros: Chain multiple commands into one
- ✅ Persistent Config: All customizations saved automatically
- ✅ Interactive Mode: Guided command creation
- ✅ Native Execution: Commands run as native terminal commands
- ✅ No Prefix Required:
create-filenoteasycmd create-file
Built-in Commands
create-file- Create files with optional contentrename-file- Rename filesmake-folder- Create folders (with nested support)move-folder- Move/rename foldersdelete-file- Delete filesdelete-folder- Delete folders (with force option)
Management Commands
easy bind- Create custom commandseasy unbind- Remove custom commandseasy list- List all commandseasy config- Show configurationeasy path- Show PATH setup instructions
📚 Command Reference
Creating Custom Commands
Alias Commands
Create shortcuts to existing commands:
# Basic alias
easy bind cf --alias create-file
# Alias with description
easy bind mkf --alias make-folder --description "Quick folder maker"
# Use it
cf myfile.txt "Content here"
mkf myfolderMacro Commands
Create custom shell commands:
# Simple macro
easy bind hello --macro "echo 'Hello World'"
# Complex workflow
easy bind deploy --macro "npm run build && docker build -t myapp . && docker push myapp"
# Git shortcuts
easy bind gst --macro "git status"
easy bind gp --macro "git push origin main"
# Use it
hello
deploy
gstInteractive Mode
# Launch interactive command builder
easy bind
# Follow the prompts:
# - Command name
# - Type (alias or macro)
# - Target/shell command
# - DescriptionManaging Commands
List Commands
# List all commands
easy list
# List only custom commands
easy list --custom
# List only default commands
easy list --default
# Verbose output
easy list --verbose
# JSON output
easy list --json
# Search commands
easy list --search gitRemove Commands
# Remove a command
easy unbind dadoP
# Remove without confirmation
easy unbind hello --yes
# Remove multiple commands
easy unbind cmd1 cmd2 cmd3View Configuration
# Show configuration info
easy config
# Show PATH setup instructions
easy pathCommand Options
Force Overwrite
# Override existing command
easy bind mycommand --alias create-file --forceHelp
# Get help for any command
create-file --help
easy bind --help
easy --help🗺️ Roadmap
Version 1.x - Foundation ✅ Current
- ✅ Custom command aliases
- ✅ Shell macro support
- ✅ Cross-platform compatibility
- ✅ Persistent configuration
- ✅ PATH automation
- ✅ Interactive mode
Version 2.x - Remote Execution 🔮 Planned
- 🔄 REST API for command execution
- 🔄 WebSocket support for real-time output
- 🔄 Authentication & authorization
- 🔄 Multi-machine orchestration
Version 3.x - Cloud Integration 🔮 Planned
- 📋 Cloud service integrations (AWS, Azure, GCP)
- 📋 Container orchestration (Docker, Kubernetes)
- 📋 CI/CD pipeline integration
- 📋 Team collaboration features
Version 4.x - Enhanced Interfaces 🔮 Planned
- 📋 Web-based dashboard
- 📋 Mobile application
- 📋 Voice command integration
- 📋 VSCode extension
Version 5.x - Enterprise Features 🔮 Planned
- 📋 Role-based access control
- 📋 Audit logging
- 📋 Compliance reporting
- 📋 SSO integration
🎯 The Journey
Where We Started
Problem: "I keep forgetting mkdir vs make-folder"
Where We Are Now
Solution: Custom terminal commands with easy aliases
Where We're Going
Vision: Universal remote control for your entire development environment
The Path Forward
v1.0: Custom Commands ✅
↓
v2.0: Remote Execution
↓
v3.0: Multi-Machine Support
↓
v4.0: Web Dashboard
↓
v5.0: Voice Control
↓
v6.0: Mobile App💭 Philosophy
It's Not About the Commands
It's about control and accessibility:
- Control your machines your way
- Access your workflow from anywhere
- Automate everything you do repeatedly
It's Not About Replacing SSH
It's about making SSH usable on mobile:
- Hard to type on phone → Easy custom commands
- Hard to remember syntax → Memorable aliases
- Complex workflows → Single commands
It's Not About Another Tool
It's about unifying your workflow:
- One system to learn
- Works everywhere
- Grows with you
🌍 Mission Statement
"Make your development environment accessible from anywhere, controlled with commands you choose, automated the way you want."
Not Just For You
- Teams can share command definitions
- Projects can include standard commands
- Organizations can standardize workflows
- Beginners can use simple commands instead of complex syntax
The Ultimate Goal
Your phone becomes a remote control for your entire development environment.
No more:
- "I need my laptop to do this"
- "Let me SSH and type this complex command"
- "I can't remember the exact syntax"
Just:
- Pull out phone
- Open terminal app
- Run your custom command
- Done
🚀 Why This Will Work
1. Builds on Existing Tools
- SSH (already widely used)
- Terminal (universal)
- Node.js (cross-platform)
2. Solves Real Problems
- Command memorization
- Mobile typing difficulty
- Workflow automation
3. Scales Naturally
Individual → Team → Organization → Community4. Progressive Enhancement
- Start simple (aliases)
- Add complexity (macros)
- Go advanced (remote control)
- Get powerful (multi-machine)
🤝 Contributing
We welcome contributions! Here's how you can help:
Report Bugs
- Open an issue on GitHub
- Describe the bug clearly
- Include steps to reproduce
- Mention your OS and Node.js version
Suggest Features
- Open a feature request
- Explain the use case
- Describe the expected behavior
Submit Pull Requests
- Fork the repository
- Create a feature branch
- Make your changes
- Write tests
- Submit a PR
Spread the Word
- Star the repository
- Share with other developers
- Write blog posts
- Create tutorials
📄 License
MIT License - see LICENSE file for details
🔗 Links
- npm: https://npmjs.com/package/easycmd
- GitHub: https://github.com/yourusername/easycmd
- Issues: https://github.com/yourusername/easycmd/issues
- Discussions: https://github.com/yourusername/easycmd/discussions
🎊 From Frustration to Innovation
It started with frustration: "Why can't I remember simple commands?"
It became a solution: "I'll create my own memorable commands!"
It evolved into a tool: "Others have this problem too!"
It's growing into a platform: "This could control everything!"
It will be a revolution: "Universal remote CLI for all developers!"
💬 Support
- Documentation: Coming soon
- Community: GitHub Discussions
- Email: [email protected] (coming soon)
EasyCmd: From command memorization to universal control. Built for today's developers. Designed for tomorrow's infrastructure.
Made with ❤️ by developers, for developers
