Documentation
Receipts and what each item cost
Read the receipts an overnight coding-agent run writes as it works: one file per item, the verification that ran, the outputs, and the tokens and time it cost.
Updated
What does each task in an overnight run leave behind, and what did it cost?
Receipts are the narrative of the night, written as the work happens rather than reconstructed at the end. Every punch-list item gets a file with its result, changes, verification, and outputs, and when the host exposes the numbers, what the item cost in tokens and time, measured by the runtime at the tick.
One file per item, written as it happens
A receipt file starts when substantive work on the item starts and carries one short progress paragraph until the item completes, refreshed on the cadence you set: after twenty minutes of work by default, after a token threshold, or at whichever comes first. The finished result replaces the progress paragraph, and a later item that changes an earlier result corrects that file and leaves one line saying what changed.
- What was delivered, and why.
- The changes that mattered and paths that were tried and rejected.
- The verification that actually ran, its result, and its limits.
- Where the outputs or commits are, and any snag or parked decision the item touched.
Usage the runtime measures, never the model
No host shows a model its own token counts from inside the conversation, so a model asked to measure could only guess. The hooks Nightshift already registers do see the numbers and take the readings. The tick is the boundary: everything spent between two ticks belongs to the item ticked second, and the gate writes that item's usage and duration lines into its receipt as it releases.
- Claude Code: the session transcript, deduplicated on request id; cache reads and cache writes are reported separately from input.
- Codex: the rollout's running token count, which folds cached input into input and reasoning into output, and the receipt says so.
- Cursor: the stop payload, with no reasoning figure; a revived CLI segment has no per-turn source and reads unavailable.
- A dimension a host does not report reads unavailable, never zero. Totals are never summed across hosts, and no count is ever turned into a price.
Turn it off or reshape it
The receipts block in rules.json controls the files. Setting enabled to false writes no receipt files and keeps every other record exactly as honest; usage set to off records no cost lines; a template path supplies wording and layout only and can never describe an unavailable check as a passed one. Receipts stay local and never reach a public commit message.
"receipts": {
"progressMode": "time",
"progressMinutes": 20,
"usage": "when-available"
}It is not a saving
Nightshift adds work rather than removing it: a contract to read, gates to run, receipts to write, and a watchman that wakes up. A shift may well use more than the same work done by hand. What it can reduce is rework: a night that stops at the wrong place, a morning spent reconstructing what happened, a change nobody can review. The receipts give you the real numbers to judge that trade yourself.
Use the morning review separately
Item receipts explain each unit while it runs; the morning receipt brings the ledger, ending state, parked decisions, and next action together. Use the walkthrough to inspect actual outputs and checks before accepting a shift.
Start with a bounded prompt
This prompt names the outcome and preserves Nightshift’s review boundary. Paste it into the supported coding host from the project you want to change.
Show me this shift's receipts so far: each item's state, what verification ran, and the usage and duration the runtime recorded. Do not estimate any figure.What this workflow does not claim
- Usage figures come only from records the host already keeps; a dimension the host does not report reads unavailable, never zero, and is never converted to a price.
- Receipts describe what the night delivered; they are not independent proof that a ticked item is correct.
Evidence and sources
These links support the released behavior, public outcomes, or problem language described on this page.
Frequently asked questions
How much does an overnight shift cost?
Whatever the host charges for the tokens it used. The receipt records each item's input, output, cache, and reasoning figures from the host's own records, so you can read the cost per item rather than per night.
Does Nightshift estimate token usage?
Never. The model cannot see its own counts and is told not to write a figure. The runtime reads the host's records at each tick, and where the host reports nothing the section says unavailable.
Why does an item say unavailable instead of a number?
Because silence is not a measurement. A host that reports no figure for a dimension, or a revived Cursor CLI segment with no per-turn source, is recorded as unavailable rather than as zero.