Part of loopsmith — self-evolving agent loops behind a deterministic verification gate.
You probably do not need to depend on this directly. It is a component of the
loopsmithbinary and compiles automatically as one of its dependencies:Depend on it directly only if you are building something else on loopsmith's internals. The API is not yet stable across minor versions.
What this crate is
Every provider is a command template. That single decision is what makes
bring-your-own-key free: Claude Code, Ollama, a Grok CLI, an OpenAI-compatible
endpoint driven by curl, an MCP server over stdio — all of them are "a program
you run with a prompt". Adding one is a config edit, never a rebuild.
Nodes ask for a tier (cheap, standard, strong) and a cascade decides
which provider actually serves the call, falling through on failure or timeout.
Judge independence can be enforced, so a judge never runs on the same provider
as the builder whose work it is checking.
Secrets never enter the process. requires_env names variables that must
exist; their values are never read, substituted into arguments, or written to the
ledger. The command expands them itself, as curl does.
Where it sits
loopsmith (the CLI binary)
└── loopsmith-mcp ── loopsmith-gate ─┐
loopsmith-skills ────────────────┤
loopsmith-provider ──────────────┼── loopsmith-core ── loopsmith-util
loopsmith-graph ─────────────────┤ (config) (primitives)
loopsmith-memory ────────────────┘
| Crate | Purpose |
|---|---|
loopsmith |
the CLI binary |
loopsmith-util |
PATH lookup, wall clock, runtime platform detection |
loopsmith-core |
the A–J config model and its validation |
loopsmith-memory |
sled-backed episodes, goal state, ledger, checkpoints |
loopsmith-graph |
DAG scheduling, critical path, Amdahl-driven concurrency |
loopsmith-gate |
the deterministic verification gate |
loopsmith-provider |
provider routing and the tier cascade |
loopsmith-skills |
sub-agent acquisition, quarantine, outcome ranking |
loopsmith-mcp |
local stdio MCP server over memory, gate, and graph |
The one rule the whole design rests on
A model must not be the thing that certifies its own completion.
goal_satisfied is written by loopsmith-gate
and by nothing else, and the gate can revoke: delete a required artifact and a
satisfied goal flips back.
Full documentation: https://github.com/bitphill/loopsmith#readme
MIT licensed. © bitphill