Get started
One minute to your first proof.
Against your own repository — not a demo project. SODL’s claim is that it derives a model from your contract, so a curated showcase is precisely the artifact that cannot demonstrate it.
No account. No token. No sign-up. The first three commands need no running service at all.
Step one
Install
The script detects your platform, verifies the download against
SHA256SUMS, installs into a user directory — no admin
rights — and prints the PATH line to add if one is
missing.
$ curl -fsSL https://github.com/rajsinghsisodia/sodl-releases/releases/latest/download/install.sh | sh
> irm https://github.com/rajsinghsisodia/sodl-releases/releases/latest/download/install.ps1 | iex
$ sodl version
Prefer to do it by hand?
Every release ships per-platform zips and a
SHA256SUMS covering all of them. Download, check the sum
yourself, put the binary on your PATH.
The VS Code extension
A .vsix ships with each release.
Sideload it: code --install-extension sodl-vscode-<version>.vsix,
then reload the window. Completion, hover, go-to-definition,
signature help and live diagnostics.
Windows may block the binary
This is an unsigned internal build, so SmartScreen
— or Smart App Control, which offers no “run
anyway” — may stop it. Signing is planned before SODL
ships wider. install.adoc in the zip has the full,
honest story.
Step two onward
Four commands, in your repository
Open the repository that holds your .proto files or your
OpenAPI document. That is all the setup there is.
Set up the project
Writes a minimal sodl.yaml, an
environments/local.yaml, and a starter
scenarios/first.sodl. It refuses if
sodl.yaml already exists — never a silent clobber.
Run sodl init -probe first if you want to see what SODL
found without writing anything.
$ sodl init -yes
See what SODL understood — and what it could not
Still no running service, no credentials, no deployment. This is SODL’s unconditional half: give it your contracts and it shows you your system — entities, lifecycles, relationships, state machines — with the things you did not know surfaced as findings.
$ sodl analyze
$ sodl model -open # your system, drawn
People routinely learn something here. A declared lifecycle state nothing can reach. An entity with no lifecycle at all. Two operations nothing in the contract lets anyone read back.
Tell the environment where your service lives
Everything a run needs to reach your service lives in the
environment file, not on the command line. context: is
how header-scoped things like tenancy work with no flags — every
key is attached to every request. Non-secret values only.
name: local
endpoint:
grpc: localhost:9090 # or http: https://api.local
context:
X-Tenant-Id: your-tenant # optional
principals:
admin: # only when a scenario says `as admin`
provider: header
Prove it, then share the evidence
sodl run takes no arguments inside a project —
scenarios/ is the default. It walks the tree, runs every
scenario, and writes an immutable record. sodl report -open
renders the latest record as one self-contained page.
$ sodl run
$ sodl report -open
While authoring, sodl check is the faster loop —
same derivation, same runner, read back as one verdict with
remediation. It writes no evidence record: running is the
evidence-producing act.
The fastest path
Hand it to an AI agent
SODL ships an ADOPT.md bootstrap prompt and an MCP
server. Paste the prompt into an MCP-capable coding agent inside your
service’s repository and it will install SODL, register the
server, analyse your contracts, and offer you the choice: understand
the system first, or verify a running deployment.
The prompt sets one rule the agent must follow: every claim it makes has to trace to SODL output. Which is the same rule the product holds itself to.
What comes back, roughly
- Your system, drawn from your protos — nothing else
- A short list of things you may not know about it
- A starter suite authored from the coverage queue
sodl checkgreen before anything runs- A run, an evidence record, and a report page
Failures at this stage are usually findings, not test bugs — and the record shows the evidence for both readings.
Reference
What is in a release
| Asset | What it is |
|---|---|
| sodl-<version>-<platform>.zip | The sodl binary, plus install.adoc and quickstart.adoc. Platforms: linux-amd64, darwin-amd64, darwin-arm64, windows-amd64. |
| sodl-vscode-<version>.vsix | The VS Code extension. |
| install.sh, install.ps1 | The installers the one-liners above invoke. |
| SHA256SUMS | Checksums for every archive in the release. |
| VERSION | The version string on its own, for scripting. |
| README, INSTALL, ADOPT, sample-session | Attached so a downloaded kit is self-contained. |
One binary does everything. check,
run, coverage, bundle,
drift, report, can-deploy, the
language server the editor spawns — all of it is
sodl. sodl --help lists every command;
sodl <command> -h prints its flags and exit codes.
Before you invest a day in it
Read the boundaries. SODL is pre-V1, it is not for UI, load or unit testing, and there are things it deliberately does not do yet. All of it is written down.