Released June 6, 2026  ·  v2026.6.6

Autonomous work
you can audit.

Lanterns is the Claude Desktop distribution of the NightClaw protocol — a file-based operating system that gives Claude a governed workspace with persistent memory, append-only audit trails, and autonomous project management across fresh sessions.

Runtime Claude Desktop + Cowork
Protocol NightClaw (identical)
Sessions Worker + Manager scheduled tasks
License Apache 2.0

What the protocol guarantees

Every write is governed

All state mutations go through named R5 bundle transactions with declared preconditions. The schema decides what the LLM is allowed to do — before it does it. Invalid writes are rejected before any file is touched.

Every pass is audited

Every field change is logged with two timestamps — effective and recorded. Every session is registered. The audit log is append-only; no session can edit or delete entries. Reconstruct what happened across weeks of autonomous work without trusting the LLM's memory.

Knowledge compounds

The workspace grows smarter across sessions. Memory, audit trail, change log, project state, and OS lessons accumulate as files. Every pass starts from what prior passes wrote — not from scratch. Stateless sessions, compounding intelligence.

The audit trail

Forensic inspection.
No LLM required.

Run three commands after a week of autonomous operation. Get a deterministic, queryable record of every decision, every write, every state change — independent of anything the LLM remembers. SHA-256 signed governance files halt the next session if anything drifted outside the protocol.

integrity-check 11 protected files verified. SHA-256 hash divergence halts all sessions.
cascade-read R4 dependency graph. Before writing any file, the protocol knows every downstream dependent.
audit-spine Every session: CLEAN_PASS, ROUTING_HALT, or CRASH. No gaps, no missing entries.
nightclaw workspace
$python3 scripts/nightclaw-ops.py integrity-check
✓ SOUL.md — PASS
✓ AGENTS-CORE.md — PASS
✓ AGENTS.md — PASS
✓ USER.md — PASS
✓ MEMORY.md — PASS
... 6 more files ...
RESULT:PASS — 11/11
$python3 scripts/nightclaw-ops.py audit-spine
CLEAN_PASS RUN-20260607-001
CLEAN_PASS RUN-20260606-004
CLEAN_PASS RUN-20260606-003
CLEAN_PASS RUN-20260606-002
CLEAN_PASS RUN-20260606-001
SUMMARY: 5 sessions. 5 clean. 0 crashes.
$cat audit/CHANGE-LOG.md | tail -5
PROJECTS/my-proj/LONGRUNNER.md|last_pass.quality|ADEQUATE|STRONG|worker|RUN-20260607-001|...
PROJECTS/my-proj/LONGRUNNER.md|next_pass.model_tier|standard|lightweight|worker|...
# field | old | new | session | run_id | timestamp

The T-step pass lifecycle

One pass. One objective.
Fully structured.

Every worker session follows the same deterministic T0–T9 lifecycle. Each step calls an engine command that curates only the context that step needs — fresh sessions never reload irrelevant history.

T0

Integrity check

SHA-256 verification of all 11 protected files. Crash recovery check. If integrity fails, the session halts immediately — no lock acquired, no files read.

T1

Dispatch

Deterministic project selection from ACTIVE-PROJECTS.md — status, escalation, priority filtering. No LLM token cost for routing decisions.

T3–T4

Context load + execute

Routing-critical fields extracted via longrunner-extract before reading the full LONGRUNNER. One bounded objective executed.

T5–T5.5

Validate + quality check

Output checked against pass criteria. Three-question quality test applied (Expert, Durable Asset, Compounding). Quality score enforced as a typed schema field — not a comment.

T6

State update via bundle

longrunner_update bundle fires. Preconditions validated. Field mutations written atomically. Change-log rows emitted automatically for every changed value.

T7

OS improvement gate

G1 (generalizable) + G2 (not already documented via dedup check). If both pass, one sentence written to the appropriate OPS file. The protocol improves from real operation.

T9

Session close (mandatory)

session_close bundle releases LOCK.md, writes SESSION-REGISTRY entry, appends daily memory. Always runs. No exceptions.

OPS-QUALITY-STANDARD.md

Quality is a typed field.
Not a prompt instruction.

After every pass, the worker applies three questions — encoded in the schema, enforced by the bundle executor, reviewed independently by the manager session. A pass that completes but fails quality is recorded as WEAK or FAIL and triggers a retry.

Q1

The Expert Test

"Would a domain expert find this output useful, surprising, or actionable?"

Passes if: the output contains at least one finding that required actual research or synthesis — not just retrieval of what a domain expert already knows.

Q2

The Durable Asset Test

"Will this output be useful in 30 days, or does it expire with today's context?"

Passes if: at least one durable artifact is produced — a ranked list, schema, validated finding, reusable script, field map, or decision that compounds across future passes.

Q3

The Compounding Test

"Does this output make the next pass faster, smarter, or higher-leverage?"

Passes if: the next_pass objective is more specifically scoped after this pass than before it — or an OPS file was improved from the work.

Recorded as last_pass.quality: STRONG ADEQUATE WEAK FAIL

Model tiering

Right Claude model.
Right pass type.

Each project pass declares one of three model tiers — written into the LONGRUNNER as a typed field. At T9.5, the engine emits a tier advisory: it cannot programmatically switch the Cowork scheduled task's default model, so it records the recommendation as audit metadata. The operator maps tiers to specific Claude model IDs once in MODEL-TIERS.md at install, then manually updates the scheduled task when a tier change matters.

T9.5 output SET_MODEL_TIER:ADVISORY:tier=standard:model=<id>:platform=cowork
— switch not executable on Cowork; tier recorded as advisory metadata.
Tier Use for Cost profile Operator action on advisory
lightweight Structured execution, file writes, data transforms, low-judgment passes Lowest Set Cowork scheduled task default model to your Haiku mapping
standard Research, synthesis, multi-step reasoning, default for new projects Mid Set Cowork scheduled task default model to your Sonnet mapping
heavy Complex judgment, architecture decisions, long-form documents Highest Set Cowork scheduled task default model to your Opus mapping

Protocol portability

Same protocol.
Different runtime.

Lanterns is the proof that NightClaw was never specific to any single platform — including OpenClaw. The governance layer, schema, bundles, and audit mechanics are identical. Only the runtime and scheduling layer changes.

Dimension NightClaw on OpenClaw Lanterns (Claude Cowork)
Runtime OpenClaw Claude Desktop + Cowork
Scheduling OpenClaw cron sessions Claude projects scheduled tasks
Models Multi-provider via OpenClaw config Anthropic Claude only (Opus 4.6, Haiku, etc.)
Installation OpenClaw workspace setup bash scripts/install.sh + Cowork project + 2 scheduled tasks
T-step protocol Identical — T0 through T9
Governance schema Identical — R1 through R6, CL5
Audit trail Identical — append-only, two timestamps
Quality standard Identical — OPS-QUALITY-STANDARD.md

Getting started

For technical users who
want the full protocol.

Lanterns is a reference implementation, not a product. Initial setup requires comfort with the command line. Full install guide in DEPLOY-CLAUDE.md.

Claude Desktop (latest) Cowork mode enabled Python 3.10+ PyYAML Git Bash (Windows)

Clone and install

Clone the repo into your workspace folder. Run bash scripts/install.sh — it prompts for owner handle, workspace path, and Claude model IDs for each tier. Substitutes placeholders, generates SHA-256 hashes for protected files.

Set your Domain Anchor

Open SOUL.md, replace {DOMAIN_ANCHOR} with 2–3 sentences describing your domain focus. Re-sign: bash scripts/resign.sh SOUL.md. This is what the idle cycle uses to propose your first autonomous project.

Verify all gates

Run the verification suite — integrity check, schema lint, SCR verify, bundle validation, preflight import, syntax check. All must pass before proceeding to Cowork setup.

Create Cowork project + two scheduled tasks

Point a Cowork project at your workspace folder. Create two scheduled tasks — worker (every 6 hours) and manager (9 AM daily) — by pasting the contents of the respective .skill.md files from DEPLOY-CLAUDE.md § Step 6.

Open source · Apache 2.0

The LLM is the CPU.
The files are the memory.

Explore the repo, read the protocol proof, or see what compounding autonomous work looks like in the cinematic demo.