A self-contained, offline-first toolkit for engineering work environments.
- Old Linux distros
- Limited or no internet access
- No
sudo/ no root - Built from 30+ years of engineering workflow experience
- All built on AlmaLinux 8.10 (RHEL 8 clone), glibc 2.28
- Compatible with RHEL 9.x and beyond
Drop the release tarball onto a locked-down workstation, run one command,
and you have modern Linux tooling and sane configurations in your $HOME —
no installer, no admin, no internet.
Download the .tar.gz release archive from the
latest release,
then extract and run — nothing is built or compiled, the archive ships every
binary, library, font, and config file ready to install:
tar xzf engineering-loadout-v*.tar.gz
cd engineering-loadout-v*/
./loadout install @engineering-loadoutThat installs the @engineering-loadout group — a curated set of
command-line tools, editors, fonts, and configuration files — into
~/.local and ~/.config. Reload your shell with exec bash when it
finishes.
Re-run the same command against a newer release tarball to update. Unchanged files are skipped, so re-runs are quick.
Name packages or groups the same way dnf or apt works:
./loadout install @engineering-loadout # the full set
./loadout install octave # one package
./loadout install @gui-suite # a group
./loadout install @engineering-loadout --skip @fonts-all # everything but fonts
./loadout list # browse packages
./loadout list --tag editor # filter by tag
./loadout search vim # substring search
./loadout info gvim # details for one package
./loadout install octave --dry-run # preview only.\loadout.ps1 # PowerShell 7+
.\loadout-pwsh-bootstrap.ps1 # if starting from PowerShell 5.1No elevation required.
| Component | Description |
|---|---|
| Bash | Layered shell config, 100+ aliases, fzf / zoxide / eza / bat integration |
| Neovim | LSP, 326 offline Tree-sitter parsers, curated plugin set |
| Vim | Vim 9.2 with NERDTree, SimpylFold, and vim-liberty bundled |
| Tmux | Sessions that survive reboot (resurrect + continuum), Ctrl-\ prefix |
| Helix | Ready to run offline |
| Starship | Cross-shell prompt, Linux and Windows configs |
| PowerShell | Aliases, Unix coreutils wrappers, Starship + zoxide integration |
| WezTerm | Terminal emulator config |
| AutoHotKey | AHK v2 flat script, feature flags via loadout_keys.toml |
| EditorConfig | Consistent formatting across all editors |
| Command-line tools | Modern CLI utilities, ready offline — see table below |
| Nerd Fonts | 7 font families |
Offline-first. Plugins, parsers, fonts, and binaries are bundled. Nothing is fetched at install time. Ship it to an air-gapped workstation and it just works.
No root. Everything lands in $HOME (or --dest-dir). No package
manager, no sudo, no IT ticket.
Shared-tree installs stay relocatable: bundled runtime/data assets live under
~/.local/share (or the staged prefix) and shell init exports the paths
needed for discovery, including TERMINFO_DIRS for bundled st terminfo.
Multi-platform. RedHat 7 / 8 / 9, Suse, x86_64 / ARM / PowerPC, and Windows.
Layered configuration. Settings flow from lowest to highest precedence:
Global → Corp → Site → Team → Project → User
Each layer overrides the previous without touching the upstream files. Personal tweaks, team conventions, and corporate defaults all coexist without forking anything. Pull a loadout update and your overrides still work.
Opinionated but escapable. Sensible defaults out of the box. Every
preference is a LOADOUT_CFG_* variable you can override in your user layer:
# bash/user/config.sh
export LOADOUT_CFG_PREFERRED_VI=vim # use vim instead of nvim
export LOADOUT_CFG_ENABLE_STARSHIP=0 # use the built-in prompt
export LOADOUT_CFG_ATTACH_TO_TMUX=1 # auto-attach tmux on loginEach row is a package you can install by name with
./loadout install <name>. Groups (@engineering-loadout, @gui-suite,
@core-cli, …) bundle related packages so you can install many at once.
Run ./loadout list to see every package and every group, or
./loadout list --groups to see just the groups.
| Package | Version | Description |
|---|---|---|
| agent-deck | 1.9.12 | TUI dashboard for AI agent orchestration |
| bash | 5.3.9 | The GNU Bourne Again SHell |
| bat | 0.26.1 | cat with syntax highlighting and Git integration |
| biome | 2.4.15 | Fast JSON / JS / TS / CSS formatter, linter, and LSP |
| broot | 1.56.2 | Interactive tree navigator and fuzzy finder |
| btm | 0.12.3 | Cross-platform system monitor (CPU, memory, process tree) |
| btop | 1.4.7 | Resource monitor — top for people who care about aesthetics |
| bzip2 | 1.0.8 | High-quality block-sorting file compressor |
| choose | 1.3.7 | Human-friendly cut and awk replacement |
| dasel | 3.8.1 | Select, update, and convert data across JSON / YAML / TOML / XML / CSV |
| delta | 0.19.2 | Git diff pager with syntax highlighting and line numbers |
| duf | 0.9.1 | df replacement with colored disk usage table |
| dust | 1.2.4 | Intuitive du — shows disk usage by size, at a glance |
| expect | 5.45.4 | Tcl-based tool for automating interactive CLI programs |
| eza | 0.23.4 | Modern ls with color, icons, Git status, and tree view |
| fd | 10.4.2 | Fast, ergonomic find replacement |
| firefox | 140.11.0 | Mozilla Firefox ESR — bundled with launcher + libxul, no system install required |
| fish | 4.7.1 | Fish shell — autosuggestions, syntax highlighting, no config needed |
| fzf | 0.62.0 | Blazing-fast fuzzy finder for files, history, anything |
| gnuplot | 6.0.2 | Portable command-line graphing utility |
| gping | 1.20.1 | ping with a real-time ASCII graph |
| gvim | 9.2 | GTK3 GUI vim |
| htop | 3.2.1 | Interactive process viewer — the original top upgrade |
| hx | 25.07.1 | Helix modal editor — Kakoune-inspired, batteries included |
| hyperfine | 1.20.0 | Command-line benchmarking tool with statistical output |
| jq | 1.8.1 | Lightweight and flexible command-line JSON processor |
| jupyterlab | 4.5.7 | Web-based interactive notebooks (opens in browser) |
| just | 1.50.0 | Command runner — sane make replacement for project tasks |
| lazygit | 0.61.1 | TUI git client for staging, committing, and rebasing |
| liberty-tools | 1.0.1 | Fast Liberty .lib parser and browser-based viewer |
| mate-terminal | 1.26.1 | GTK3 terminal emulator |
| meld | 3.20.4 | GTK3 visual diff and merge tool |
| micro | 2.0.15 | Modern, intuitive terminal text editor — Ctrl+S just works |
| miller | 6.18.1 | CSV / TSV / JSON / NDJSON / XML data processor (mlr) |
| nedit-ng | 2025.1 | Qt5 rewrite of NEdit |
| nvim | 0.12.2 | Hyperextensible Vim-based text editor |
| nvim-qt | 0.2.19 | Qt5 GUI frontend for Neovim |
| octave | 11.1.0 | GNU Octave scientific computing |
| pigz | 2.8 | Parallel gzip — multi-core gzip / gunzip replacement |
| procs | 0.14.11 | ps replacement with colors and process tree |
| pv | 1.6.6 | Monitor progress of data through a pipe |
| pygwalker | 0.5.0.1 | Interactive Tableau-style data explorer for pandas DataFrames |
| rg | 15.1.0 | ripgrep — recursive search that respects .gitignore |
| rsync | 3.4.1 | Fast, incremental file transfer |
| ruff | 0.15.12 | Extremely fast Python linter and formatter |
| sd | 1.0.0 | Intuitive sed replacement — sd 'old' 'new' just works |
| shfmt | 3.13.1 | Shell script formatter (bash / sh / mksh / bats) |
| st | 0.9.3 | suckless st — minimal X11 terminal |
| starship | 1.25.1 | Cross-shell prompt — fast, informative, configurable |
| stylua | 2.4.1 | Opinionated Lua code formatter |
| tealdeer / tldr | 1.8.1 | Fast tldr client with offline page cache |
| text-serdes | 0.1.1 | Short-lived encrypted text transport for copy/paste workflows |
| time-plot | 0.1.0 | Plot arbitrary data vs. zero-based time, uPlot HTML output |
| tkdiff | 6.0 | Tcl/Tk visual diff and merge tool |
| tmux | 3.6a | Terminal multiplexer |
| ty | 0.0.35 | Extremely fast Python type checker |
| urxvt | 9.31 | rxvt-unicode — X11 terminal with Unicode and Xft |
| uv | 0.11.13 | Extremely fast Python package installer and resolver |
| vim | 9.2 | Vim 9.2 |
| visidata | 3.3 | TUI spreadsheet for exploring CSV / TSV / JSON / NDJSON data |
| xsel | 1.2.0 | X11 clipboard command-line access tool |
| xterm | 410 | X Window System terminal emulator |
| yank | 1.3.0 | Select terminal output and copy to clipboard |
| yq | 4.53.2 | jq for YAML, JSON, XML, CSV, TOML, and properties files |
| zoxide | 0.9.9 | Smarter cd — learns your most-used directories |
| zsh | 5.9 | Z shell — advanced tab completion, powerful scripting |
If your machine doesn't already have GTK3 / Qt5 / X11 / Wayland libraries
installed (common on remote compute nodes), install gui_libs alongside
any GUI application:
./loadout install gvim nedit-ng gui_libs
# Or use the group, which pulls gui_libs for you:
./loadout install @gui-suitePython 3.14.4 — a portable Python build that
installs to ~/.local. Use python3.14 and pip3.14 to pin this build.
The full nvim-treesitter parser registry is bundled and installs offline
to ~/.local/share/nvim/tree-sitter-parsers/. All 326 languages work out
of the box, no internet required.
Seven font families bundled and installed to ~/.local/share/fonts:
| Font | Notes |
|---|---|
| Envy Code R | Clean, distinctive coding font |
| Fira Code | Ligature-rich monospace |
| Hack | Designed for source code |
| Inconsolata | Humanist monospace |
| Iosevka Term | Ultra-narrow, highly legible |
| JetBrains Mono | Designed for long coding sessions |
| Source Code Pro | Adobe's open-source workhorse |
Use ./loadout install … --skip @fonts-all to skip every font, or
--skip font-firacode to skip a single family.
Six-layer override chain (global → corp → site → team → project → user),
LOADOUT_CFG_* knobs, and a curated alias set:
b/bb/bbb… —cd ..up 1, 2, 3 levelscdd/cddd… —cdto the N-th most recently modified directoryg— ripgrep with sensible defaults (smart case, hidden, no-ignore)f—fdwith sensible defaults, falls back tofindgs/gc/gp/gd/ga— git status / commit / push / diff / addvi/vim— your preferred editor (nvimby default)cat—batwith no pagingll/la/lh—lsvariants (sizes, all files, human-readable)
Prefix Ctrl-\. Shift-arrows for pane navigation, Ctrl-arrows for windows,
Prefix+1–5 for layout presets, Prefix+v to capture the pane buffer
into nvim. tmux-resurrect and tmux-continuum bundled — your sessions come
back after a reboot.