isomer
The version string says nothing changed; the behavior says otherwise.
isomer detects whether a change is malicious. It compares two states of the same thing — a directory, a git ref, a package, a container image — and judges the delta in context: capability drift, version-bump proportionality, commit intent, and behavioral disassembly, combined by a differential ML model (Valence). “Gained network and process-spawn between 1.2.3 and 1.2.4, and the changelog says fix typo” is a far higher-signal alert than any score on a whole tree — and it's exactly the shape of xz-utils, event-stream, and ua-parser-js. Offline command-line tool built for CI, powered by Atomdrift Scan. Apache-2.0, no telemetry.
Heavy development
isomer is an early, experimental build. Verdicts, flags, and output formats change without notice, and there is no stable release yet. Try it, break it, file issues — just don't wire it into anything you can't unwire. May eat your cat.
Design partners wanted
We're looking for a handful of design partners interested in the space — teams who can put isomer up against real pipelines and dependency churn, and tell us early whether we're designing the right thing. Interested? Contact Thomas Stromberg at t, at this domain.
The xz-utils test
isomer's benchmark is the hardest version of the problem: the
compiled, stripped liblzma.so from the 2024 xz-utils
backdoor. The 5.4.5 → 5.6.0 diff verdicts
HOSTILE — and with every known signature ignored, the
behavioral axis alone still reads high enough to fail CI, which is what
catching a novel xz-shaped attack on release day requires. The
5.6.0 → 5.6.3 diff correctly reads as the backdoor being
removed, not added.
Surface
isomer ci # zero-config in CI: derives base..head from the environment isomer fs <old-path> <new-path> # compare two trees; follows the dependency graph isomer git --repo <url> <old> <new> # compare two commits/branches/tags of a remote repo isomer purl <purl@a> <purl@b> # compare two published package versions isomer oci <old-image> <new-image> # compare two container images
Old, then new, like diff. Exit codes: 0 clean, 1 findings
at or above --fail-on, 2 operational error — never
conflated with findings.
Install
From source only while things are moving fast (Rust 1.94+):
git clone https://github.com/atomdrift-project/isomer.git cd isomer make install