Recording installed packages and language runtimes
Most developer environments drift because developers use different tools for each layer: OS packages are installed ad-hoc (`apt-get`, `pacman`, `brew`), language runtimes are managed by separate version tools, and project libraries are pinned in application lockfiles.
OMG’s environment subsystem (`src/cli/env.rs` and `src/core/env/fingerprint.rs`) records explicitly installed system package names and selected OMG runtime versions in `omg.lock`. The published CLI captures seven runtimes (Node.js, Python, Rust, Go, Ruby, Java, and Bun). It does not record system package versions or application dependencies.
Capturing state and verifying drift
`omg env capture` supports the Arch ALPM and Debian/Ubuntu APT backends. It records explicit package names and selected runtime versions, then writes a full SHA-256 hash of that inventory to `omg.lock`. The CLI displays the first 16 characters as a short identifier.
Run `omg env check` to compare `omg.lock` with the live system without installing packages. It reports missing or extra package names and runtime version differences. System package version changes under the same name are outside this check.
Capture environment state and detect drift
omg env capture
omg env checkA verified team onboarding workflow
The repository maintainer configures runtime pins and captures the working environment.
omg env capture && git add omg.lock .node-version && git commit -m "chore: pin environment"A new contributor clones the repository and runs an initial environment check.
git clone <repo> && cd <repo> && omg env checkIf drift or missing runtimes are reported, inspect the differences and install the required versions.
omg use node lts && npm ciRun the project tasks using OMG’s polyglot task runner.
omg run test
Sources and verification
Commands and behavior are based on the references below. Source review is not a claim that every workflow has been executed on every supported platform.
- OMG environment CLI implementation (src/cli/env.rs)
- OMG environment fingerprinting (src/core/env/fingerprint.rs)
- OMG daily workflows guide