______ __ __ __ __
/ \ / | / |/ | / |
/$$$$$$ | __ __ _$$ |_ ______ ______ $$/ $$ | ______ _$$ |_
$$ |__$$ |/ | / |/ $$ | / \ / \ / |$$ | / \ / $$ |
$$ $$ |$$ | $$ |$$$$$$/ /$$$$$$ |/$$$$$$ |$$ |$$ |/$$$$$$ |$$$$$$/
$$$$$$$$ |$$ | $$ | $$ | __ $$ | $$ |$$ | $$ |$$ |$$ |$$ | $$ | $$ | __
$$ | $$ |$$ \__$$ | $$ |/ |$$ \__$$ |$$ |__$$ |$$ |$$ |$$ \__$$ | $$ |/ |
$$ | $$ |$$ $$/ $$ $$/ $$ $$/ $$ $$/ $$ |$$ |$$ $$/ $$ $$/
$$/ $$/ $$$$$$/ $$$$/ $$$$$$/ $$$$$$$/ $$/ $$/ $$$$$$/ $$$$/
$$ |
$$ |
$$/
A robust, modular, and distro-agnostic terminal software installer for Linux. Built with modern Bash practices, it provides a professional TUI (Terminal User Interface) with no external dependencies.
- Modular Architecture: Clean separation between UI, logic, package data, and utilities.
- Robust Package Handling: Detects if software is already installed to prevent redundant work.
- Presets & Profiles: Quick-select apps for "Dev" or "Minimal" environments with a single keypress.
- Logging & Debugging: Detailed logs in
./logs/and a new--debugmode. - Dry-Run Mode: Preview what the script would do without touching your system using
--dry-run. - Self-Update: Easily pull the latest version directly from GitHub using
--update.
The easiest way to run Autopilot is directly from GitHub. The script automatically fetches its modules as needed:
curl -fsSL https://raw.githubusercontent.com/gkapelakos/Autopilot-Linux-Script/main/autopilot.sh | bashFor better performance and offline access, clone the repository:
-
Clone the repository:
git clone https://github.com/gkapelakos/Autopilot-Linux-Script.git cd Autopilot-Linux-Script -
Run the script:
./autopilot.sh
| Option | Description |
|---|---|
--debug |
Enable detailed debug output in the terminal. |
--dry-run |
Show installation steps without actually installing anything. |
--update |
Check for and apply updates from the GitHub repository. |
| Key | Action |
|---|---|
| Arrow Keys | Navigate categories (Left/Right) and apps (Up/Down). |
| Space | Toggle selection of an individual app. |
| P | Open the Profiles menu (Minimal/Dev/Full/Clear). |
| Enter | Begin Deployment of all selected items. |
| Q | Quit safely and restore terminal state. |
autopilot.sh: The main entry point.lib/ui.sh: TUI drawing and input handling.lib/installer.sh: Distro-agnostic installation logic.lib/os_detect.sh: System and package manager detection.lib/profiles.sh: Preset selection logic.lib/utils.sh: Logging, colors, and shared constants.data/packages.sh: Categorized list of supported software.logs/: Directory for timestamped installation logs.
Autopilot automatically detects and uses the native manager for your distro:
- APT: Ubuntu, Debian, Mint, Pop!_OS
- DNF: Fedora, RHEL, CentOS
- Pacman: Arch, Manjaro, EndeavourOS
- Zypper: OpenSUSE
- APK: Alpine Linux
- XBPS: Void Linux
- Flatpak: Cross-distro support via Flathub
- Bash 4.0+
- tput (Standard on almost all Linux environments)
- sudo permissions (Requested only at start of installation)
This project is licensed under the MIT License - see the LICENSE file for details.