hlock¶
Make your agent harness pinnable, portable, and tunable.
hlock tunes your agent stack against your own tasks, then pins the winner in a
harness.lock: a pinned, hashed, version-controlled description of the agent that
works for your domain, plus the evidence for choosing it. Commit the lock, and the
same setup comes back on any machine, in CI, or on a cluster.
A package manager for agent stacks¶
If you've used uv, cargo, or npm, you already know the shape of hlock:
| You know this from package managers | In hlock |
|---|---|
pyproject.toml |
harness.toml, the manifest: what the resolver may try, and what "best" means |
| dependency resolver | the resolver: search over LLMs × decision models × harnesses × policies |
uv.lock / Cargo.lock |
harness.lock, the lockfile: what was chosen, pinned and hashed, plus the evidence |
CI --locked check |
hlock check: fail when the manifest drifts from the lock |
-
Measured on your tasks
Every candidate stack runs against your task packs, and the lock records success rate, cost, and latency for the one that won.
-
Pinned and enforceable
Models, harness, decision model, and policies are pinned and hashed.
hlock checkfails CI when the manifest drifts, andhlock runruns exactly what's pinned. -
Local first
The built-in reference provider and harness are deterministic and offline. The whole loop runs on a laptop with no accounts and no API keys.
-
Scales when it matters
The same pipeline runs on a
devboxwith real LLMs, or on a Flyte/Union cluster with GPUs, caching, and lineage.
Where to next¶
- New here? Start with Installation and the Quickstart.
- Want the mental model? Read How it works.
- Looking something up? See the CLI,
Python API, or
harness.tomlreference.