Every file says more than you think.
tellall shows what an image or copied text gives away, in plain sentences, and makes a clean copy. It all happens on your device.
The file, to scaleAI labelPicture dataFile structure2,503,644 bytes
Point at a part or a sentence to see where it sits.Tap a part or a sentence to see where it sits.
1,254 × 1,254 PNG · 2,503,644 bytes
This image says it was made by AI.
Show everything
| Field | Value | From |
|---|---|---|
| Signer | OpenAI OpCo, LLC | C2PA signature |
| Certificate subject | C=US, O=OpenAI OpCo, LLC, CN=OpenAI Media Service | C2PA signature |
| Certificate issuer | C=US, ST=New York, L=New York, O=Trufo Inc., OU=CA Division, E=ca@trufo.ai, CN=Trufo C2PA Claim Signing CA (2025) | C2PA signature |
| claim_generator_info | OpenAI Media Service API | C2PA claim |
| dc:title | image.png | C2PA claim |
| instanceID | xmp:iid:dcf3b1dc-ee87-4e43-928f-594624518c15 | C2PA claim |
| action | c2pa.created | C2PA c2pa.actions.v2, action 1 |
| when | 2026-10-25T14:46:19.830385961Z | C2PA c2pa.actions.v2, action 1 |
| softwareAgent | ChatGPT gpt-image | C2PA c2pa.actions.v2, action 1 |
| digitalSourceType | http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia | C2PA c2pa.actions.v2, action 1 |
| action | c2pa.converted | C2PA c2pa.actions.v2, action 2 |
| when | 2026-10-25T14:46:19.830385961Z | C2PA c2pa.actions.v2, action 2 |
| action | c2pa.watermarked.unbound | C2PA c2pa.actions.v2, action 3 |
| when | 2026-10-25T14:46:19.823483856Z | C2PA c2pa.actions.v2, action 3 |
Nothing private to remove.
Want the label gone too? On files you own: npx tellall clean --remove-labels chatgpt-image.png. The invisible watermark stays either way.
Shows where this sits in the file. Press to keep it lit.
An AI image carries a signed label.
ChatGPT and Gemini put a signed label inside the images they make. tellall reads it and says who signed it, which tool made the image, when, and what the label says about the pixels. It reports what the label says and never rules on the image.
tellall says:
A clean copy drops what's about you.
Location, camera, dates, names and IDs go. The AI label stays, and the picture data stays byte for byte. Removing a label is a separate step, only in the command line, for files you own.
Removed
Kept
Original
Clean copy
| In the file | Clean copy (this page and the CLI) | --remove-labels (CLI only) |
|---|---|---|
| Location, camera, serials, dates, software, comments | Removed | Removed |
| Tracking IDs (DocumentID, InstanceID) | Removed | Removed |
| Colour profile | Kept, the picture needs it | Kept |
| AI label | Kept | Removed |
| Picture data | Byte for byte the same | Byte for byte the same |
The same engine in your terminal and your agent.
Same sentences on a file or a folder, JSON for scripts, an exit code for CI, and a skill for Claude Code, Codex and Cursor.
npx tellall <file|dir|->- Plain-sentence report. Use
-to read text from stdin. Node 20.19 or later. --json- Machine-readable reports
--all- Also print raw fields
--fail-on private|label|any- Exit 1 if any input has that kind of finding, for CI. Exit 0 is done, 2 a usage, read or write error.
clean <file|dir>- Write clean copies next to each file as
name.clean.ext, never touching originals --remove-labels- Also remove AI labels, on files you own
Nothing leaves this page.
The engine runs in a worker inside this tab. The page's own rules block any upload or connection its code tries, and it loads only from its own address. Try it with Wi‑Fi off.
connect-src 'none'BlockedThe page's own rules block any connection its code tries.0
requests to other sites since this page loaded
Fonts, scripts and pictures come from the page itself. There are no analytics on it.
Read your own file.
Drop an image you made or were sent, or paste text you copied. tellall reads it on this device and tells you what it gives away.
Drop images here. The reader at the top of the page shows what they give away.Choose images and the reader at the top of the page shows what they give away.