Read in the browser — nothing leaves this tab
View the file.
Drop a dot curt file on this page and read the conversation it holds — envelope, transcript, and extension fields, rendered exactly as the file wrote them. There is no server to upload to; the whole viewer is this page.
Drop a .curt file here, or click to choose
one file · .curt or .json
Real conversations, from the wild
These are real users' chats from the WildChat-1M dataset, ODC-BY licensed — shared with the license's attribution notice, metadata scrubbed.
Validation runs through the reference implementation, vendored into this page: a corrupted file is reported, never half-rendered. Content is read as plain text and never interpreted — nothing in a viewed file can run.
No file handy? Paste it in.
Paste the full JSON body of a .curt file — the same validation and rendering run on the paste, and nothing is uploaded anywhere.
—
A conforming .curt v1 file has the magic string "curtis-conversation", version: 1, and a conversation whose every message carries id, role, content, and timestamp.
The conversation
Envelope extras beyond the spec fields above are not shown — the reference parser returns the conversation, and the viewer only reports what the parser hands it. Extra fields on the conversation and its messages are shown, as the badges below each turn.
This session is real work, unscripted. It became a blog post and a podcast episode — and the episode itself ships as a .curt file.