Skip to main content

Cross-workstation alias manager for bash and zsh

Project description

🚀 Turboalias

Cross-workstation alias manager for bash and zsh

Turboalias is a simple, powerful tool to manage your shell aliases across multiple workstations. Store your aliases in a clean JSON config, organize them by category, and sync them easily.


✨ Features

  • 🐚 Multi-shell - Works with both bash and zsh
  • Auto-Reload - Changes apply instantly without manual shell reload
  • 🔄 Auto-Sync - Sync aliases across machines using Git (optional)
  • 🎯 Simple CLI - Easy commands to add, remove, and list aliases
  • 📁 Category Support - Organize aliases by category (git, docker, navigation, etc.)
  • 📥 Quick Migration - Import your current shell aliases
  • 📝 JSON Config - Clean, editable configuration file
  • 🎨 Clean Output - Aliases organized by category in your shell

🖥️ Supported Platforms

Platform Shells Status
macOS bash, zsh ✅ Fully supported
Linux bash, zsh ✅ Fully supported
Windows WSL (bash, zsh) ✅ Via WSL

📦 Installation

macOS (recommended)

Using Homebrew:

brew tap mcdominik/turboalias
brew install turboalias

Linux, macOS & Windows (WSL)

Using pipx (recommended for Python CLI tools):

# Install pipx if you don't have it
python3 -m pip install --user pipx
python3 -m pipx ensurepath

pipx install turboalias

Note: This method works on Linux, macOS, and Windows (via WSL). Modern Linux distributions discourage system-wide pip install without virtual environments (PEP 668). pipx is the recommended way to install Python CLI applications as it automatically manages isolated environments.

Alternative: pip with virtual environment

If you prefer using pip, use a virtual environment:

python3 -m venv ~/.venvs/turboalias
source ~/.venvs/turboalias/bin/activate
pip install turboalias

From source

git clone https://github.com/mcdominik/turboalias.git
cd turboalias
pip install -e .

🚀 Quick Start

1. Initialize turboalias

turboalias init

2. Add some aliases

turboalias add dps 'docker ps' --category docker

Changes apply instantly! No need to reload your shell after adding aliases.

3. Use your aliases!

dps

📖 Usage

Add an alias

turboalias add <name> '<command>' [-c <category>]

Examples:

turboalias add ll 'ls -lah'
turboalias add gst 'git status' -c git

Remove an alias

turboalias remove <name>

Example:

turboalias remove dps

Changes apply instantly! No need to reload your shell after removing aliases.

List aliases

# List all aliases
turboalias list

# List aliases in a category
turboalias list --category git

List categories

turboalias categories

Import existing aliases

turboalias import

Scans your current shell for aliases and imports them into turboalias

Edit config directly

turboalias edit

Opens the config file in your $EDITOR (defaults to nano)

Clear all aliases

turboalias clear

Removes all turboalias-managed aliases (with confirmation)

Remove entire config

turboalias nuke

Removes turboalias<->shell bridge, config, and all turboalias-managed aliases (with confirmation)


🔄 Git Sync

Sync your aliases across multiple workstations using Git.

Setup sync on your first machine

# Initialize git sync with a remote repository
turboalias sync init --remote https://github.com/<username>/my-turboalias-config.git

⚡ **Share your setup!** You can also use one shared by the community..

# Check sync status
turboalias sync status

# Push your aliases to the remote
turboalias sync push

Restore aliases on a new machine

# Clone your aliases configuration
turboalias sync clone https://github.com/yourusername/my-aliases.git

# That's it! All your aliases are now available
# Reload your shell to use them

Sync commands

# Initialize git sync
turboalias sync init [--remote <url>] [--branch <name>]

# Clone existing config
turboalias sync clone <url> [--branch <name>]

# Push local changes
turboalias sync push

# Pull remote changes
turboalias sync pull

# Check sync status
turboalias sync status

# Enable auto-sync (commits & pushes after every change)
turboalias sync auto on

# Disable auto-sync
turboalias sync auto off

How it works

  • Git repository is created in ~/.config/turboalias/
  • Only aliases.json is synced (your aliases data)
  • aliases.sh (shell script) is generated locally on each machine
  • sync_config.json (git settings) stays local
  • Auto-sync runs in background without blocking your commands
  • All operations work offline-first, sync is completely optional

Example workflow

# Machine 1: Set up and push
turboalias init
turboalias add ll 'ls -lah'
turboalias add gst 'git status' -c git
turboalias sync init --remote https://github.com/mcdominik/my-turboalias-config.git
turboalias sync push

# Machine 2: Clone and use
turboalias sync clone https://github.com/mcdominik/my-turboalias-config.git
# All aliases restored automatically!

# Optional: Enable auto-sync for convenience
turboalias sync auto on
# Now every add/remove/clear will auto-sync in background

⚙️ Configuration

Turboalias stores its configuration in ~/.config/turboalias/:

File Purpose
aliases.json Your aliases and categories
aliases.sh Generated shell script (sourced by your shell)

Config file format

{
  "aliases": {
    "ll": {
      "command": "ls -lah",
      "category": null
    },
    "gst": {
      "command": "git status",
      "category": "git"
    }
  },
  "categories": {
    "git": ["gst", "gco", "glog"]
  }
}

You can edit this file directly with turboalias edit or manually.


💡 Why Turboalias?

Benefit Description
Instant Updates Changes apply immediately without manual shell reload
Centralized Management All your aliases in one place
Organized Categories keep things tidy
Portable Sync via Git across all your machines
Safe Doesn't modify your existing aliases, creates a separate file
Transparent Generated aliases.sh is human-readable
Cross-platform Works seamlessly on macOS and Linux
Fast Auto-sync runs in background, never blocks your workflow

🗺️ Roadmap

  • Git sync support for automatic syncing across machines
  • Shell completion support
  • Export/import to different formats
  • Alias templates and snippets

🤝 Contributing

Contributions welcome! Please feel free to submit a Pull Request.


📄 License

MIT License - see LICENSE file for details


👤 Author

Dominik - @mcdominik


Made with ❤️ for unix enthusiasts

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

turboalias-0.0.4.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

turboalias-0.0.4-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file turboalias-0.0.4.tar.gz.

File metadata

  • Download URL: turboalias-0.0.4.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for turboalias-0.0.4.tar.gz
Algorithm Hash digest
SHA256 6ed1be5392ae9173b52512b6f6289f69ce7703efba4734f17f2fb71f52593856
MD5 b0cbc8cda71e1dae329a7dd770de8dec
BLAKE2b-256 2e30c4abf15a99b2b420821a392afa42e4a4c3802f5b61266be6ec11187dac25

See more details on using hashes here.

Provenance

The following attestation bundles were made for turboalias-0.0.4.tar.gz:

Publisher: publish-package.yml on mcdominik/turboalias

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file turboalias-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: turboalias-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for turboalias-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d65c61153a63e5225cb405ce2404de31a32f5f55a30589386c28645190e8dfef
MD5 54c497a4eb17bd448783555b3822fda8
BLAKE2b-256 7b8883b3e7fe57cd7f2804fc4494f08191448f5795b5e987083dd63879df79b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for turboalias-0.0.4-py3-none-any.whl:

Publisher: publish-package.yml on mcdominik/turboalias

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page