rigsmith
Set up a fresh macOS or Linux machine from a curated library of 220+ developer tools and the config that makes them work (shell, CLI, git, Python, Go, Rust, Java, JS, containers, Kubernetes, cloud, IaC, data, ML, VS Code), then see what's installed and undo it cleanly.
Use it if you want a good terminal and toolchain on a new machine in minutes, picked from presets instead of copied from old dotfiles, and removable without leftovers.
Look elsewhere if you need per-project package isolation or fully declarative machines (that's Nix), or a shell other than zsh (zsh only, for now).
Install
curl -fsSL https://raw.githubusercontent.com/slimfrkha/rigsmith/main/install.sh | sh -s -- install
The script installs uv if it's missing, then runs rigsmith. If you already have uv:
uvx rigsmith install.
Supported: macOS 14+ (Apple Silicon and Intel), Ubuntu 22.04 / 24.04, Debian 12 (amd64, arm64). Homebrew is the package manager on both, with apt for the few things that need it.
Quickstart
-
Pick a preset for your kind of work:
rigsmith use platform
✓ now using your config (~/.config/rigsmith/config.yaml, from platform): 97 artifacts
-
See what would change, without changing anything:
rigsmith install --dry-run
config: your config (~/.config/rigsmith/config.yaml, from platform) Answers: profile=standard, icons=yes, aliases=yes, tui=yes, theme=catppuccin, container-runtime=colima Already in place (29): git, eza, ripgrep, fd, bat, jq, gh, vscode, kubectx, k9s, terraform, … To install (55): + zsh — snippet 10-zsh, snippet 40-zsh + zinit — install git:https://github.com/zdharma-continuum/zinit.git, snippet 20-zinit + starship — snippet 90-starship …
What's "already in place" depends on your machine: those are left alone.
-
Install:
rigsmith install. A short questionnaire and a picker let you change anything before a final confirmation, then tools install one after the other. Open a new terminal when it's done.
Commands
| Command | What it does |
|---|---|
rigsmith use [preset|path] |
Pick your config (a copy you can edit). No argument opens a picker |
rigsmith install [ids] |
Questionnaire → picker → summary → install. -y skips the screens, --dry-run only shows the plan |
rigsmith scan [ids] |
What's installed, partial, missing or unavailable, and whether rigsmith or you installed it |
rigsmith uninstall [ids] |
Undo what rigsmith installed, from its receipts. Tools you had before stay |
rigsmith init |
Tailor a config: tick tools, set profiles, optionally edit the YAML |
install, scan and uninstall filter with -c CONFIG, -p PROFILE, -s SECTION[/SUB] and artifact ids.
Every flag is in the reference.
Presets
| Preset | For |
|---|---|
python |
uv + ruff + ty, notebooks, VS Code with the Astral stack |
backend-go |
Go toolchain, containers, a local cluster, API and load-testing tools |
rust |
rustup, bacon, nextest, rust-analyzer |
java |
OpenJDK, Maven, Gradle, the VS Code Java pack |
web |
Node, pnpm, Bun, Biome, ESLint/Prettier, Tailwind |
data-engineer |
Python + SQL in the terminal (DuckDB, Postgres, Kafka), notebooks, cloud CLIs |
ml-engineer |
Python with uv, notebooks, Hugging Face, local LLMs |
platform |
Containers, Kubernetes end to end, Terraform and friends, GCP and AWS |
ssh |
A remote dev box you SSH into (cloud VM, GPU machine): tmux, modern CLI, git, uv, GPU monitor |
server |
A lean ops box: shell and modern CLI only |
The developer presets share a base (zsh, starship, fzf, ripgrep, eza, zoxide, git, lazygit, VS Code); server keeps
only the shell and CLI part. Every preset pins its answers, so -y gives the same result every time. reference has every tool;
example is the author's own setup. The first rigsmith install asks which to start from:
How it works
- Artifact: one installable unit: a package plus the config the tool needs to work (a zsh snippet, a few settings). Optional taste, like aliases or a theme, is a separate artifact you can leave out.
- Section: what a tool is (
cli/search,kubernetes/logs). Profile: how much you want (minimal ⊂ standard ⊂ comprehensive). - Role: tools that can't coexist, such as two prompts. You get one, and a tool you already have is kept.
- Questions are built from what's in scope: icons, aliases, full-screen apps, theme, your work folder and email.
Safe by design
- Your
~/.zshrcis never overwritten. rigsmith adds one marked block at the top; your own lines stay below and win. - Every change gets a receipt, recording the value before and the value rigsmith left.
uninstallundoes only what rigsmith did, and keeps anything you changed since. - Steps that can't be undone are listed before you confirm, such as installing Homebrew.
- Nothing is a black box.
--scriptprints every command an install or uninstall would run, for reading (why you shouldn't run it yourself). - Running it again changes nothing. CI installs, reinstalls (expecting 0 changes) and uninstalls on real macOS
and Ubuntu machines, and checks
~/.zshrccomes back byte for byte.
Where next
| To | Read |
|---|---|
| choose, tailor or switch configs; per-project setups; add your own tools | Guide |
| look up a flag, config key, artifact field or file | Reference |
| browse every tool rigsmith can install | Catalog |
| understand how it works and why | Design |
| contribute, add a tool to the library, release | Contributing |
| report a vulnerability | Security |
License
Metadata
Release files for rigsmith 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rigsmith-0.3.0.tar.gz | 155.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rigsmith-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 261.3 kB
Release files / rigsmith-0.3.0.tar.gz
| Download URL | rigsmith-0.3.0.tar.gz |
|---|---|
| Size | 155.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27b6542ff0a76bc15d5e6cad06af4f9e04172fddaddb361a5a36350608911048
|
|
BLAKE2b-256 checksum How to use checksums |
7a056d12132b127b9d71fb64c9b16261ffb861e7c3e24a07b5da186fafeaca07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency logRelease files / rigsmith-0.3.0-py3-none-any.whl
| Download URL | rigsmith-0.3.0-py3-none-any.whl |
|---|---|
| Size | 106.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f5c8a6a30801dd61af95c99bf774b7ff9161068c4bb7bc13ca8571fe30749b8b
|
|
BLAKE2b-256 checksum How to use checksums |
078116d0832392e4f61c219fb4136147aa5d39f877551e401205e0c960d631bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency log