Curate
136 aliases and 14 shell functions, chosen and kept rather than accumulated. Every entry declares what it needs, so one that points at a tool you never installed is reported instead of failing at the moment you use it.
A curated set of shell capabilities. You supply the configuration; loadout renders one file your shell sources at startup.
curl -fsSL https://loadoutsh.github.io/site/install.sh | shLinux and macOS. zsh and bash. Also on Homebrew and go install.
~/.config/loadout/config.yaml
paths:
project_root: ~/Projects
identities:
- id: work
git_user: Example User
email: user@work.example
ssh_key: ~/.ssh/id_work
hosts:
- alias: edge
hostname: edge.example.internal
user: deploy
upload_path: /srv/app
shortcut: true
workspaces:
- name: docs
path: ~/Projects/docs/docs.code-workspace
tmux_session: docsWhat your shell gets
Those four ship with loadout and read your configuration. These two did not exist until the hosts and workspaces entries were written:
Six of 136 aliases and 14 functions. The rest — with what each one needs, and which platforms it runs on — is in the alias catalog, or under loadout catalog once it is installed.
136 aliases and 14 shell functions, chosen and kept rather than accumulated. Every entry declares what it needs, so one that points at a tool you never installed is reported instead of failing at the moment you use it.
Your git identity, project root, workspaces, hosts and credential names live in one YAML file. That file is the only thing that is yours to maintain, and it is data, not a fork of someone's dotfiles.
loadout apply renders the two together into a single file. Your shell sources it at startup. Nothing runs when you open a terminal — the file is static text, regenerated only when you ask.
An alias cannot be a program. gpush and .. are shell state, not executables, so no binary can provide them. loadout therefore generates shell rather than intercepting commands, and the binary stays out of the hot path.
Two shipped functions, p and activate, change the calling shell's directory and environment. They stay real shell functions because a child process cannot cd for its parent. Everything else could be a subcommand, and is not, because the generator already exists.
curl -fsSL https://loadoutsh.github.io/site/install.sh | shThe script verifies the published checksum before putting anything on your PATH, and installs by rename so an interrupted run cannot leave a half-written executable behind. Homebrew and go install are documented in Install.
Every command, the whole configuration schema, all 136 aliases and 14 functions, the security model behind the local interface, and how the generated shell stays identical in zsh and bash.