Chron has reached 11,148 total npm downloads.
Thank you to everyone who has installed it, tried it in a real workflow, asked difficult questions, or shared feedback across developer communities and platforms.
AI work deserves a record.
One important distinction before anything else: downloads are not unique users. Repeat installs, upgrades and automation all contribute. This is a distribution milestone, not a claim about how many people actively use Chron.
Why we're building Chron
AI-assisted work is happening across terminals, editors and chat clients. When someone later asks what was requested, what the assistant returned, and when the interaction happened, reconstructing the answer can be surprisingly difficult.
Chron is a local-first tool for recording AI interaction evidence and inspecting that record later. The aim is straightforward: make the evidence useful without claiming it establishes more than it does.
The most useful feedback hasn't been about adding another chart. It has been about the boundary between a tool being configured and an interaction actually being recorded.
Three distinctions that matter
Configured is not captured. An MCP connection can exist without the client making a logging call. Instruction-based logging still depends on the AI client choosing to call the tool. It isn't mandatory capture.
Recorded is not complete. Having a session in the database doesn't establish that every interaction was recorded. Chron's Claude Code transcript reconciliation compares inspected transcript records with Chron evidence and reports the correspondence it finds. Its comparison is sampled, so that result must not be presented as a completeness percentage for the entire conversation.
Accepted is not retained. When an operator exports traces through OTLP/HTTP, collector success establishes acceptance of the payload, not that the platform stored it. Chron's export receipts preserve that distinction.
These aren't just wording preferences. They change how useful the record is when someone relies on it.
Capture without asking the model to remember
Chron also provides a wrapper path:
chron run -- <your-cli> <arguments>
For the stdin, stdout and stderr channels it controls, the wrapper records data in its local journal before forwarding input or releasing output. This doesn't require the model to make a logging tool call.
That guarantee has a boundary: it does not force someone to use the wrapper, and it does not capture arbitrary file writes, subprocess activity, network traffic or direct-terminal access outside those controlled channels.
After projection, the session can be inspected through Chron's ordinary history and verification commands. Verification compares the projected messages with the journal evidence rather than trusting an enforcement label in a database field.
The journal's hash chain establishes internal consistency. Because its head is not independently anchored, it is not proof that nobody could rewrite the whole chain.
Three released features to try
1. Inspect capture scope, then wrap a CLI. Start with the scope rather than assuming everything is covered:
chron run --scope
chron run -- <your-cli> <arguments>
chron verify --journal
chron history
Replace the angle-bracket placeholders with your CLI and its arguments. The wrapper captures controlled terminal channels, not every action the client takes. CLI compatibility varies; this isn't a promise of support for every interactive client.
2. Compare Claude Code transcripts with Chron evidence.
chron reconcile
chron reconcile --json
This is read-only and currently specific to Claude Code transcripts. Up to 200 comparable messages per transcript are sampled; larger-file streaming doesn't remove that comparison limit. Correspondence is not an overall capture-completeness score.
3. Make a database backup and rehearse verification without replacing the live database.
chron backup --output=./chron-milestone-backup.db
chron restore --from=./chron-milestone-backup.db --drill
Choose a new output path. The drill checks the snapshot without installing it. A database backup is not a backup of separate journal files or signing keys; preserve those separately when planning recovery.
What we'd like feedback on next
We're continuing to work on reliability, capture coverage and making those boundaries easier to understand across AI workflows. Support varies by client and capture path; a configured integration is not a blanket guarantee.
If you've tried Chron, which client are you using, and where does the record fall short of what you need? A concrete workflow, a confusing output, or an interaction that wasn't recorded is more useful than a broad feature vote.
You can find the package on npm and the public repository on GitHub.
Thank you for helping turn a download milestone into better engineering questions.

Top comments (0)