Skip to main content

TuxMate CLI

THE TUXMATE COMPANION FOR YOUR TERMINAL

Linux PyPI Python License Beta Maintained

[INFO] Beta Software: This project is in active development. While functional, some features may be incomplete or change between versions. please report any issues on GitHub.

The CLI-Mate you need for your linux setup

A command-line interface for installing Linux packages using tuxmate's curated package database. Perfect for setting up a fresh Linux system or bulk-installing your favorite apps.

Features

# List and search packages
tuxmate-cli list
tuxmate-cli search firefox

# Install packages directly
tuxmate-cli install firefox neovim git

# Generate install scripts
tuxmate-cli oneliner vscode spotify
  • 150+ curated packages across browsers, dev tools, terminals, media, and more
  • Multi-distro support - Ubuntu, Debian, Arch (AUR), Fedora, openSUSE, Nix, Flatpak, Snap
  • Smart script generation - Distro-specific scripts with error handling
  • Always updated - Syncs with tuxmate's latest package data

See Usage section below for detailed commands.

Installation

pip install tuxmate-cli --upgrade

Usage

List available packages

tuxmate-cli list
tuxmate-cli list --category "Dev: Editors"
tuxmate-cli list --distro arch

Search packages

tuxmate-cli search firefox
tuxmate-cli search editor --distro ubuntu

Get package info

tuxmate-cli info neovim
tuxmate-cli info vscode

Install packages

# Install directly
tuxmate-cli install firefox neovim git

# With Flatpak fallbacks
tuxmate-cli install vscode spotify --flatpak

# Dry run (show script without executing)
tuxmate-cli install firefox --dry-run

# Save script to file
tuxmate-cli install firefox neovim -o install.sh

Generate scripts

# One-liner command
tuxmate-cli oneliner firefox neovim git

# Full script to stdout (pipe to bash)
tuxmate-cli script firefox neovim | bash

# Save to file
tuxmate-cli script firefox neovim > install.sh

Other commands

# Update package database
tuxmate-cli update

# List categories
tuxmate-cli categories

# List supported distros
tuxmate-cli distros

Supported Distributions & Packages

For the complete list of supported distributions and package catalog, visit tuxmate.com

Requirements

  • Python 3.10+ with pip
  • uv (recommended) or standard pip/venv
  • Git - For cloning the repository

Development

git clone https://github.com/Gururagavendra/tuxmate-cli.git
cd tuxmate-cli
uv sync
uv run tuxmate-cli --help

For technical details, see ARCHITECTURE.md.

Security

  • Trusted Source: Package data is fetched from tuxmate.com
  • Script Review: Use --dry-run to review commands before execution
  • Sudo Required: Installations require root privileges - review scripts carefully
  • Sandboxing: JavaScript data parsing is sandboxed via dukpy

Roadmap

✅ Implemented Features

✓ Multi-distro support (Ubuntu, Debian, Arch, Fedora, openSUSE, Nix)
✓ Flatpak & Snap universal package support
✓ 150+ applications across 15 categories
✓ Smart AUR detection & yay auto-installation
✓ Package categorization (native, AUR, Flatpak, Snap)
✓ Parallel Flatpak installation
✓ Colored terminal output with rich formatting
✓ Basic error handling with set -e
✓ Snap classic flag auto-detection
✓ Script generation (one-liner, full script, dry-run)
✓ Offline cache support (24h expiry)
✓ Package search & filtering
✓ Input validation & security fixes

🔮 Planned Features

Features are prioritized using MoSCoW method (Must have, Should have, Could have, Won't have). Priorities are flexible and may change based on user feedback.

High Priority:

  • Already-installed detection (skip packages on system) — Must have
  • Network retry logic with exponential backoff (3 retries, 5s delay) — Must have
  • Progress bars with ETA calculations (percentage, timing, remaining) — Should have
  • Migrate to PythonMonkey (modern SpiderMonkey-based JS engine) — Should have
  • Comprehensive test coverage (unit + integration tests) — Should have

Script Generation Features (from tuxmate):

  • Package manager lock detection & wait loop (apt, pacman, zypper) — Must have
  • Real-time progress indicators with package count (1/10, 2/10...) — Should have
  • Per-package install timing (shows seconds for each package) — Should have
  • Graceful interrupt handling with Ctrl+C traps — Should have
  • Success/Failed/Skipped tracking with final summary report — Should have
  • Adaptive ETA calculation (learns average time as it installs) — Could have
  • Colored output with status symbols (✓ ✗ ! ○) — Could have

Error Handling & Recovery:

  • Network error detection with smart retry logic — Must have
  • Safe command execution (no eval, proper escaping) — Must have
  • Automatic dependency fixing (Ubuntu/Debian apt-get --fix-broken) — Should have
  • Detailed error messages (package not found, signature issues, network errors) — Should have
  • RPM Fusion auto-enable for Fedora multimedia packages — Could have
  • Parallel Flatpak installation (3+ packages installed concurrently) — Could have

Security & Robustness:

  • Shell string escaping (basic implementation with shlex.quote)
  • Advanced shell escaping (escape $, `, , !, like tuxmate's escapeShellString) — Must have
  • Validate package names before script generation — Must have
  • Check for root user and prevent execution as root — Should have
  • Verify package manager availability before installation — Should have

See docs/TEST_PLAN.md and docs/PYTHON_IMPLEMENTATION.md for technical details.

Future Integration

tuxmate-cli is designed to integrate with TuxSync (coming soon), a profile sync tool for Linux configurations. TuxSync will use tuxmate-cli to restore your application list across machines.

# TuxSync uses tuxmate-cli for package restoration
tuxsync restore --source github:user/gist-id

Contributing

Contributions are welcome! Please read our Contributing Guide and Code of Conduct before submitting a Pull Request.

License

GPL-3.0 License - see LICENSE for details.

Credits

Metadata

Release files for tuxmate-cli 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tuxmate-cli 1.1.0
File Size Uploaded Provenance Actions
tuxmate_cli-1.1.0.tar.gz 49.7 kB Without provenance Details for tuxmate_cli-1.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for tuxmate-cli 1.1.0
File Interpreter ABI Platform Actions
tuxmate_cli-1.1.0-py3-none-any.whl Python 3 none any Details for tuxmate_cli-1.1.0-py3-none-any.whl

Total release size: 67.2 kB

Release files / tuxmate_cli-1.1.0.tar.gz

Download URL tuxmate_cli-1.1.0.tar.gz
Size 49.7 kB
Tags Source
SHA-256 checksum
How to use checksums
dce51d2c2452ffd2de92b0fceadaf473fef67d169e1c753a4affc49f5f2e37b2
BLAKE2b-256 checksum
How to use checksums
3353a23659db35872614c6b7ebdb56289c91ac2bbaf2ce7d0f01c6c763c74e94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release files / tuxmate_cli-1.1.0-py3-none-any.whl

Download URL tuxmate_cli-1.1.0-py3-none-any.whl
Size 17.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e0ad1c4d3c34c33b994050a9719baedfd6415607f19b52003b1aac8bd250bf7
BLAKE2b-256 checksum
How to use checksums
1f293a4ec66e083e8ab116a595f61a4512047da050f2792a5ddca6faeeeea178
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Security for tuxmate-cli 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page