tolo/README.md
selamanapps 40a80a6c9b Initial release: Tolo v1.0.0
- Add core CLI functionality (save, run, update, delete, list, show, search)
- Implement JSON-based storage in ~/.tolo/tolo.db.json
- Add beautiful terminal UI with colors and icons
- Support command shortcuts (s, r, u, d, ls, l, sh, se, h, v)
- Add Bash and Zsh shell completion
- Include comprehensive documentation (README, CONTRIBUTING, SECURITY)
- Set up CI/CD workflows with GitHub Actions
- Add installation script and Makefile for build automation
- MIT License

Made with ❤️ at Zemenawi Lab
2026-03-27 06:44:03 +03:00

6.8 KiB

🚀 Tolo

Go Version License Platform Size

Lightning-fast command alias manager for the modern terminal

InstallFeaturesUsageContributing


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 mypc:ssh amancca@192.168.0.100

# Use it
tolo r mypc

Cloud Commands

# Save gcloud command
tolo save ai-server:gcloud compute ssh --zone us-central1-c ai-agent --project my-project

# Execute it
tolo r ai-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 mypc:ssh root@192.168.0.100

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  mypc       →  ssh amancca@192.168.0.100
  2  ai-server  →  gcloud compute ssh ai-agent --project my-journey-app-482201
  3  dev        →  docker-compose up -d --build

──────────────────────────────────────────────────────────────────
  Total: 3

Save Command

💾  Alias saved successfully

Alias:   mypc
Command: ssh amancca@192.168.0.100
──────────────────────────────────────────────────────────────────

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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. 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

  • Inspired by tools like alias and gnu stow
  • Built with Go
  • Icons and colors for better UX

📞 Support


Made with ❤️ at Zemenawi Lab

⬆ Back to top