Skip to content

hlock logo

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.

pip install hlock
uv add hlock            # add to a project
uv tool install hlock   # or install the CLI globally
uvx hlock --help
pipx install hlock
An hlock session: init, resolve, check, and run

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 check fails CI when the manifest drifts, and hlock run runs 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 devbox with real LLMs, or on a Flyte/Union cluster with GPUs, caching, and lineage.

Where to next