Lightning-fast command alias manager for the modern terminal
- Fix download URL to use versioned archive names (tolo-v1.0.0-linux-amd64.tar.gz) - Add proper archive extraction for .tar.gz and .zip files - Rename extracted binary from platform suffix to consistent 'tolo' name - Add download verification before proceeding with installation - Add script command support for multi-step command execution |
||
|---|---|---|
| .github/workflows | ||
| cmd | ||
| executor | ||
| pretty | ||
| script | ||
| storage | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| EXAMPLES.md | ||
| go.mod | ||
| go.sum | ||
| install.sh | ||
| LICENSE | ||
| main.go | ||
| main_test.go | ||
| Makefile | ||
| OPENSOURCE_READY.md | ||
| README.md | ||
| SECURITY.md | ||
| VERSION | ||
🚀 Tolo
Lightning-fast command alias manager for the modern terminal
Install • Features • Usage • Contributing
✨ Features
- 🚀 Blazing Fast - Written in Go, executes in milliseconds
- 💾 Lightweight - Only ~2MB binary, minimal RAM footprint
- 🎨 Beautiful UI - Colorful, icon-rich terminal output
- 🔍 Search - Find aliases instantly with fuzzy search
- 🔄 Update - Modify aliases on the fly
- 🗑️ Delete - Remove unwanted aliases
- 📋 List - View all saved aliases in a formatted table
- ⚡ Shortcuts - Use short commands like
ls,rm,s,r - 🔧 Shell Completion - Bash and Zsh auto-completion
- 📦 Single Binary - No dependencies, just copy and run
- 🌐 Cross-platform - Linux, macOS, and Windows support
🎯 Why Tolo?
Tired of typing long SSH commands, gcloud commands, or complex terminal commands? Tolo saves them as simple aliases you can run with a single command.
Before:
ssh user@192.168.1.10 -p 2222 -i ~/.ssh/mykey.pem
After:
tolo run myserver
# or shorter
tolo r myserver
📦 Installation
Quick Install (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/selamanapps/tolo/main/install.sh | bash
Manual Install
Download Binary
Visit the Releases page and download the binary for your platform.
# Linux
wget https://github.com/selamanapps/tolo/releases/download/v1.0.0/tolo-linux-amd64
sudo cp tolo-linux-amd64 /usr/local/bin/tolo
sudo chmod +x /usr/local/bin/tolo
# macOS
curl -L https://github.com/selamanapps/tolo/releases/download/v1.0.0/tolo-darwin-amd64 -o tolo
sudo cp tolo /usr/local/bin/
sudo chmod +x /usr/local/bin/tolo
Build from Source
git clone https://github.com/selamanapps/tolo.git
cd tolo
go build -ldflags="-s -w" -o tolo
sudo cp tolo /usr/local/bin/
Shell Completion
Enable auto-completion for your shell:
Bash:
echo 'source <(tolo --bash-completion)' >> ~/.bashrc
source ~/.bashrc
Zsh:
echo 'source <(tolo --zsh-completion)' >> ~/.zshrc
source ~/.zshrc
🎮 Usage
Basic Commands
# Save a new alias
tolo save server1:ssh user@192.168.1.10
# Run a saved alias
tolo run server1
# List all aliases
tolo list
# Delete an alias
tolo delete server1
# Search aliases
tolo search ssh
Shortcuts (Power User Commands)
# Short aliases for all commands
tolo s # save
tolo r # run
tolo u # update
tolo d # delete (also: del, rm)
tolo ls # list (also: l)
tolo sh # show (also: info)
tolo se # search (also: find)
Examples
SSH Connections
# Save SSH connection
tolo save myserver:ssh user@192.168.1.10
# Use it
tolo r myserver
Cloud Commands
# Save gcloud command
tolo save cloud-server:gcloud compute ssh --zone us-central1-a instance-1 --project my-project
# Execute it
tolo r cloud-server
Docker Commands
# Save complex docker command
tolo save dev:docker-compose up -d --build
# Run it
tolo r dev
Update Existing Alias
# Update to change connection details
tolo u myserver:ssh admin@192.168.1.20
Show Alias Details
tolo show mypc
Search Aliases
# Find all SSH aliases
tolo se ssh
# Find all docker aliases
tolo find docker
📸 Screenshots
List Command
╔════════════════════════════════════════════════════════════════╗
║ 📋 Saved Aliases ║
╚════════════════════════════════════════════════════════════════╝
1 myserver → ssh user@192.168.1.10
2 gcloud → gcloud compute ssh instance-1 --project my-project
3 dev → docker-compose up -d --build
─────────────────────────────────────────────────────────────────
Total: 3
Save Command
💾 Alias saved successfully
Alias: myserver
Command: ssh user@192.168.1.10
─────────────────────────────────────────────────────────────────
🛠️ Development
Build
# Build for current platform
make build
# Build for all platforms
make build-all
# Install to system
make install
Project Structure
tolo/
├── cmd/ # Command handlers
├── storage/ # JSON file operations
├── executor/ # Command execution
├── pretty/ # Terminal formatting
├── completion/ # Shell completions
├── main.go # Entry point
├── Makefile # Build automation
└── install.sh # Installation script
🤝 Contributing
Contributions are welcome! Please read CONTRIBUTING.md for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📝 Roadmap
- Export/Import aliases
- Alias categories/tags
- Configuration file support
- Interactive mode
- Alias history/undo
- Sync across devices
- GUI application
🐧 Requirements
- Go 1.21 or higher (for building from source)
- Linux, macOS, or Windows
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
📞 Support
Made with ❤️ at Zemenawi Lab