Skip to the content.

TuxBox Documentation

A meta-tool CLI to manage and run personal tools from Git repositories with lazy loading

GitHub release License: MIT CI Status

🚀 Quick Start

Installation

Linux (x86_64)

curl -L https://github.com/disoardi/tuxbox/releases/latest/download/tbox-linux-amd64.tar.gz -o /tmp/tbox.tar.gz
cd /tmp && tar xzf tbox.tar.gz
sudo mv tbox /usr/local/bin/

macOS (Apple Silicon & Intel)

curl -L https://github.com/disoardi/tuxbox/releases/latest/download/tbox-macos-arm64.tar.gz -o /tmp/tbox.tar.gz
cd /tmp && tar xzf tbox.tar.gz
sudo mv tbox /usr/local/bin/

Alternative: Install without sudo

# After extraction, install to user directory
mkdir -p ~/.local/bin
mv tbox ~/.local/bin/

# Add to PATH (add this line to ~/.bashrc or ~/.zshrc)
export PATH="$HOME/.local/bin:$PATH"

Verify Installation

tbox --version  # Should show: tbox 0.2.0

First Run

# Initialize with a registry
tbox init git@github.com:your-user/your-registry.git

# List available tools
tbox list

# Run a tool
tbox run <tool-name>

📋 Features

📚 Documentation

Getting Started

Core Concepts

Advanced

🎯 Use Cases

Personal Tool Management

Centralize all your personal CLI tools in a private registry:

tbox init git@github.com:you/my-tools-registry.git
tbox run deploy-script
tbox run backup-tool
tbox run custom-linter

Team Tool Distribution

Share team tools without complex installation procedures:

# Team lead sets up registry once
tbox init git@github.company.com:team/tools.git

# Team members just run tools
tbox run deploy --env production
tbox run test-runner --parallel

Multi-Source Tools

Combine tools from multiple registries with priority control:

# Company tools (high priority)
tbox registry add company git@github.company.com:tools.git --priority 200

# Personal tools (medium priority)
tbox registry add personal git@github.com:me/tools.git --priority 150

# Community tools (fallback)
tbox registry add community https://github.com/tuxbox/registry-public.git --priority 100

🔧 Commands

Command Description
tbox init <url> Initialize TuxBox with a registry
tbox list List available tools
tbox run <tool> [args] Run a tool
tbox status Show TuxBox status
tbox update [tool] Update tool(s)
tbox registry list List configured registries
tbox registry add <name> <url> Add a new registry
tbox registry sync Sync all registries
tbox self-update Update TuxBox itself
tbox version Show TuxBox version

🏗️ Architecture

TuxBox follows a registry-based architecture:

┌─────────────────────────────────────┐
│          TuxBox CLI                 │
│  (Rust binary: tbox)                │
└────────────┬────────────────────────┘
             │
             ├─→ Multi-Registry Manager
             │   ├─→ SSH Authentication
             │   ├─→ HTTPS Authentication
             │   └─→ Priority Resolution
             │
             ├─→ Execution Engine
             │   ├─→ Docker (primary)
             │   └─→ Python venv (fallback)
             │
             └─→ Self-Update System
                 └─→ GitHub Releases API

Execution Flow

  1. Tool Request: User runs tbox run tool-name
  2. Registry Resolution: TuxBox searches registries by priority
  3. Auto-Clone: Tool repository cloned if not present
  4. Auto-Setup: Dependencies installed automatically
  5. Execution: Tool runs in isolated environment (Docker or venv)
  6. Caching: Tool cached for instant subsequent runs

🔐 Security

📦 Platform Support

Platform Architecture Status
Linux x86_64 ✅ Supported
macOS ARM64 (Apple Silicon) ✅ Supported
macOS x86_64 (Intel via Rosetta) ✅ Supported
Windows x86_64 🚧 Planned

🤝 Contributing

Contributions are welcome! Please see:

📜 License

TuxBox is released under the MIT License.


Made with ❤️ and Rust 🦀