EnsembleWriter keeps a record of how every line of your screenplay got onto the page: typed in the editor, pasted or imported. Turn on the badge and every PDF you export while signed in carries a signed certificate anyone can check.
EnsembleWriter / Writing record
Night Ferry
Writing record issued October 13, 2026
Contests, producers, agents and teachers now want to know whether a script was written by a person. No detector can tell from the finished pages. What can be shown is the process: how the words arrived, over how many hours, from how many hands. That is what Ensemble records, as it happens, and signs when you export.
Every insert is labelled the moment it happens, keystroke by keystroke. There is nothing to remember to do and nothing to fill in afterwards.
A certificate covers one exact text. Change a comma and the next export gets a new one, while the old one still says what it covered.
Each certificate is digitally signed. A reader scans the code on your title page and sees the record, with no account and no request to you.
With the badge on, the title page of every PDF you export while signed in gets a small QR code and a one-line address. Your script's share page gets the same link.
The link opens a public page showing the title, page count, the typed, pasted and imported shares, active writing time and the number of writers. No names, no text, no account needed.
Under the page sits the certificate itself: a signed statement that a technical reader can download and check against Ensemble's published key, with no trust in the page required.
The record is a map of the text, not a judgement about it. Each stretch of the script is marked with how it arrived, and the percentages on the certificate are simply those stretches added up.
Entered in the editor by keyboard, dictation or autocorrect. Cutting and pasting your own text within the script keeps its label, and so do undo and redo.
Pasted in from somewhere other than this script. A long replacement from a rewriting tool counts here too, since it is not autocorrect.
Text that came in from a file you uploaded, or from one of the sample scripts.
Text Ensemble's servers did not watch arrive: edits made offline and replayed later, a script written while signed out and saved to an account afterwards, or a restored older version.
Text that was already in the script when this record started. Older scripts read mostly as this, and that is stated plainly rather than guessed at.
Alongside the labels, the record counts active writing time, one minute for every minute each writer edited the script, and how many people wrote in it. It never records who they are.
The design has one rule: only what Ensemble's servers saw happen is counted as seen. Everything else is marked unverified, by construction rather than by policy.
The editor attaches an origin to every insert as it happens, reading the input event itself: a key press, a paste, a dictation result, an imported file. Moving text around, undo and redo carry the original label with the text.
Labels are recorded only as they stream over the live editing connection, the same channel that keeps collaborators in sync. Any text that reaches the server another way is caught on the next read, compared against the record's own copy, and marked unverified.
When you export, the script's text is hashed with SHA-256. The certificate is tied to that fingerprint, so it vouches for one precise version and nothing else. Edit the script and the next export is issued its own certificate.
The certificate's contents are signed with Ed25519, a modern public-key signature. The signed bytes are stored exactly as issued, never rebuilt, and the matching public key is published at a fixed address, so anyone can check a certificate offline.
Every certificate page has a machine-readable twin at the same address with .json on the end. It holds the signed statement verbatim, the signature, the algorithm and where to find the key.
To check one: fetch the public key, verify the signature over the payload bytes, and read the payload. Nothing on the page has to be trusted for that to work.
// GET /verify/<id>.json { "payload": "{\"v\":1,\"id\":\"k7q2m3...\",\"title\":\"Night Ferry\", \"page_count\":98,\"text_sha256\":\"9f2c6b0e...\", \"shares\":{\"typed\":94.2,\"pasted\":3.1,\"imported\":0, \"unverified\":2.7,\"legacy\":0},\"active_minutes\":2614, \"writers\":1,\"tracking_since\":\"2026-10-13T14:02:11Z\", \"issued_at\":\"2026-10-13T18:31:40Z\",\"key_id\":\"3f9a1c7e02b4d685\"}", "signature": "rN3kVq8Jz0b3Yf...1x9wCg==", "algorithm": "Ed25519", "key_id": "3f9a1c7e02b4d685", "public_key_url": "/.well-known/ensemble-certificate-keys.json" }
The record shows how the text got into Ensemble. It does not show who thought of the words.
Someone could type in text from somewhere else and it would count as typed. The labels come from the writer's own editor. Read a certificate as a record of process, with the active hours and the writer count beside it, not as a verdict on authorship. The certificate page says exactly this, so a reader is never told more than the record can support.
A certificate shows a writer count. It never shows a name, an email address or anything that identifies a person.
Only the fingerprint of the text is on the certificate. The hash cannot be turned back into the pages.
Certificate pages are kept out of search engines, and their addresses are 128-bit random ids that cannot be guessed.
The badge is a switch only the script's owner can flip. Deleting a script deletes its record and every certificate issued for it.
Full details in the privacy policy.
No. The writing record and the badge are free on every plan, with nothing to upgrade.
Yes. The Non-AI Verified card at the bottom of the right sidebar opens the record and the Show the badge switch. It is on for new scripts and off for scripts created before the feature existed.
Text already in the script when tracking began is labelled exactly that. The record never guesses backwards, so an older script reads mostly as before tracking began until new pages are written.
Yes. Every writer's inserts are labelled on the same record, and the certificate shows how many people wrote in the script. Only the owner can change the badge setting.
Your text is safe, but the edits made offline are marked unverified when they reach the server, because Ensemble did not watch them happen. That is the honest answer, and it is what the record says.
Nothing to install. Scripts stay yours.
Open the editor →