~/loadout $ ./run

loadout

Know your dev environment is ready before you start.

local read‑only one command
$ why

Turn “it doesn’t work”
into a clear next step.

  • BEFORE Missing runtimes, dependencies, and environment variables are discovered one failed command at a time.
  • AFTER loadout reads the repository’s existing metadata and reports what is ready, missing, or needs attention.
  • SAFETY It never installs software or edits configuration. --services is the only opt-in network check.
$ what

It uses the repo as the source of truth.

Requirements

package.json, Cargo.toml, pyproject.toml, version files, and lockfiles.

Configuration

.env.example variants reveal required keys without ever reading or printing their values.

Workspace shape

Workspaces and monorepos are recognized at the root, while generated directories are skipped.

$ demo

From fresh checkout to ready.

1. inspect 2. diagnose 3. fix 4. confirm
local terminal
$ loadout check PASS node [20.11.0] WARN node_modules run npm ci FAIL DATABASE_URL set in local .env
$ loadout doctor 1. npm ci 2. Set DATABASE_URL (.env.example)
$ npm ci $ set DATABASE_URL in local .env You choose and run the fix.
$ loadout check PASS node [20.11.0] PASS node_modules PASS DATABASE_URL 3 passed, ready to work.
$ loadout check --json

Humans see a diagnosis.
Agents get a contract.

structured, secret-safe output
{ "path": "/app", "results": [{ "status": "fail", "kind": "environment", "name": "DATABASE_URL", "source": ".env.example" }], "passed": 2, "failed": 1, "warnings": 1 }
Scope
Which checkout was inspected.
Decision
A stable status and kind, not prose to guess at.
Evidence
The exact requirement and repository source.
Action gate
Counts make a simple, safe next-step decision.
$ same facts, right format

One check. Three useful views.

Developer

check reports factual PASS, WARN, and FAIL results in the terminal.

Agent

--json carries stable status, source, and counts for safe next-step decisions.

CI

--annotate and exit codes make the same findings visible in a pull request.

$ tree src/

Under the hood

discover gather_results evaluate report

1. Discover

Walk repository metadata, skip generated directories, and find the real workspace root.

2. Gather

Combine detected requirements, local env keys, flags, and opt-in service targets. Keep the source.

3. Evaluate

Check commands, versions, env presence, dependency state, and optional TCP reachability.

4. Report

Render a human check, guided doctor, CI annotations, or JSON from one result model.

One result model keeps every output consistent.

$ install

Install the public release.

$ curl -fsSL https://raw.githubusercontent.com/JacobRoedel/loadout/main/install.sh | sh
$ loadout check

Checksummed release binaries for macOS and Linux.

$ conclusion

A faster answer
to “am I ready?”

loadout reads the repo, checks the machine, and leaves every fix in your hands.