Rebuild my whole Linux setup on any machine with one script. Safe to re-run.
run.sh opens a TUI with one checkbox per section. Pick what you want, press enter, confirm, and only those sections run (in a fixed, dependency-friendly order). Sections:
| Group | Sections |
|---|---|
| System | update, bootstrap |
| Identity | git, ssh (key + GitHub via gh) |
| Dotfiles | dotfiles (clone + GNU Stow, conflicts backed up to ~/.dotfiles-backup/) |
| Software | packages, apps (snaps/flatpaks), font, steam, jdk, oxide |
| Shell | zsh, pokemon |
| Local AI | hermes, ollama, model (the ~22 GB pull, unticked by default), hermes_cfg |
Supports Ubuntu/Debian, Arch, Fedora and openSUSE. Safe to re-run.
git clone https://github.com/nullbyte6/autopilot.git
cd autopilot
./run.sh # TUI
./run.sh --dry-run # TUI, previewing every change first
./run.sh --only update # no TUI, just the system updateTUI keys: ↑↓/jk move, space toggle, a/n all/none, g toggle group, d dry-run, y auto-yes, enter run, q quit.
| Flag | Effect |
|---|---|
--all |
Skip the TUI and run every default-selected section |
--only a,b,c |
Skip the TUI and run just these sections |
--list |
Print section ids |
-y, --yes |
Answer "yes" to package manager prompts |
-n, --dry-run |
Print every change instead of doing it |
--no-steam |
Start with Steam deselected |
--no-ai |
Start with the Local AI sections deselected |
-h, --help |
Show help |
This is built around my setup. Before running it, edit the Config block and the package lists at the top of run.sh: git name and email, dotfiles repo, and the packages you want.