Every observation crux makes gets recorded. The store is what turns repeated questions into lookups & single observations into a time-series.

layout

2 files under .crux/. store.json keeps the latest observed state per behavior for fast drift comparison. history.jsonl is an append-only log: 1 json object per observation with timestamp, behavior, state, code signature, environment signature & the full environment variable map used for replay.

why jsonl and not a database

An append-only text file adds 0 bytes to the binary, stays greppable, survives corruption 1 line at a time, and diffs cleanly if you commit it. The queries crux needs (latest per behavior, full history per behavior) are single scans. A database would add hundreds of kilobytes for no capability the tool uses.

export

crux index list prints the latest signatures. crux index export writes every stored signature as json lines for backup or other tooling.

edit this page