Your work.
Fully reviewable.
Inspect, validate, and review the record through the CLI or the API. Local-first by design, not a hosted dashboard requirement.
Agents move fast. Context doesn’t always follow. Lettuce gives humans and agents a shared record of the work, the evidence, and what remains open.
What Lettuce is, how agents use it, the theory underneath, and what it deliberately does not claim. Every terminal line on screen is real output from the binary.
A task turns green. The tests pass. Five agents agree. Every signal can be true... and the conclusion can still be wrong.
Agents produce software work faster than ever. But an automated factory can become more opaque as it becomes more productive. Throughput multiplies the claims a team must interpret. It does not improve the interpretation. And a status board written by an agent is only as honest as the agent writing it.
Lettuce makes a different bargain. It does not promise to manufacture correct software. It gives work an inspectable address, gives rules a place to refuse, and preserves the evidence and the route of every attempt. A glassbox. Agents operate it. People observe it, challenge it, and decide.
It starts with a map. Scopes, units, and dimensions declare the questions a project promises to answer. Every intersection is a cell: an address for a claim, not a grade. Questions nobody has touched stay in the denominator, as untested. One hardened cell out of eight is twelve and a half percent. Not done. A map that can honestly say: not yet.
Agents work it in a loop. Orient. Act. Reflect. File. They orient from the board, which ranks the weakest frontier, and says so plainly when nothing has been assessed at all. They claim work with an expiring lease. Try to start without one, and Lettuce refuses, and names the exact next command. Evidence is linked, not asserted. Without it, a cell cannot become hardened. Forcing it anyway leaves the failed verdict on the record. Every discovery becomes a task, a gap, or a change to the map. The agent may vanish. The loop remains.
Evidence ages. Freshness is measured in store revisions, not days. Fresh. Aging. Stale. Depth counts distinct confirmations, and the Definition of Done is a computed bar, not a mood. When its support disappears, a green claim is allowed to go backward. The history stays.
When work needs a process, graphs are contracts before they are pictures. Producers, reviewers, gates, forks and joins are versioned and hashed. Every attempt is a run case, replayed from its own event log. A reviewer cannot hand off without its carrier. And a two of three quorum counts arrivals, not truth. Count independence, not heads.
Underneath is a simple theory: four levels of knowing. An assertion: someone says it is done. Provenance: a durable record of who, when, and what changed. A mechanical check: a named rule passed, or refused. And judgment: an accountable person decides. Lettuce is strongest at the first three. It makes the fourth visible. It never impersonates it.
So be clear about what it is not. It is not an oracle that your software is good. It cannot prove your map is complete. A linked artifact is not proof that it is true. And agents agreeing is not independent assurance. A human-shaped node is not a human decision. And a ledger is not a supervisor. Dispatch, credentials, and real-world effects stay outside, with people.
The mature factory is not the one that never reopens a claim. It is the one that reopens claims honestly. Lettuce. Agent systems, made inspectable.
Lettuce is a work tracker for people and agents who need to understand not just what changed, but why.
Tasks, execution runs, artifacts, and evidence form a record the next person—or the next agent session—can inspect. Agents can work locally with the CLI, or remotely against an authenticated HTTP API, using the same commands and the same record.
It is not an oracle for good software. A recorded result is evidence for a particular claim, not proof that every important question was asked.
Inspect, validate, and review the record through the CLI or the API. Local-first by design, not a hosted dashboard requirement.
Explicit authors, task references, runs, and attached evidence help an agent restart without pretending it remembers yesterday.
Declared quality dimensions and checks keep the question visible. Preserve refusals, unresolved findings, and the decisions that still need authority.
Learn the commands, understand the theory, or start with a nine-page briefing. Every publication is a free download.
The searchable knowledge explorer holds Lettuce’s concepts, guides, and command reference. It is one part of Lettuce—not the product itself.
Open the documentation ↗ Read as plain Markdown ↗$ lettuce usage task transition
$ lettuce task list --status ready
$ lettuce task show LET-42 --with-body
$ lettuce validate --strict
# same commands, local or hosted
For the human observing and governing agentic work. What can a system enforce, what can it only record, and where must a person still judge?
Preview Incomplete manuscript. Not a finished edition.
Read the free preview ↗ Download free PDF ↓No email or signup required.
Work, quality dimensions, evidence, and the basic operating loop.
Orient, claim, drive, reflect, reconcile—and restart.
Evidence ages. Quality can regress. Agreement is not independence.
Read the gates, loops, handoffs, and refusal paths—not just the shape.
Lettuce exposes the same commands over a CLI and an authenticated HTTP API. Huru’s hosted endpoint is live and reserved for Huru’s own agents; it is not a public signup service.
api.lettuce.huru.ca ↗Authenticated access only. Public requests are refused.
Agents drive Lettuce with the lettuce binary—pinned to the release the service runs. A mismatched client says so on every command, with the exact fix.
A small .lettuce file binds the service, the project, and the domain. It carries no secrets; the token stays in the agent’s environment.
# .lettuce — safe to commit
https://api.lettuce.huru.ca/
project: checkout
domain: default
Each domain is its own store; a token decides which domains it can reach. Already tracking work locally? One resumable command moves it onto the service—dry run first.
Want to connect your own agents? Discuss an integration ↗
Building with agents, exploring local-first workflows, or questioning what “done” should mean? We’d like to hear from you.
info@huru.ioWant occasional Lettuce updates? Email us to opt in. The book is free either way. You can ask us to stop at any time.
Email me Lettuce updates ↗Opens your email app. Nothing is submitted until you send.