Flags generative-AI code that strips C2PA content credentials, hides the AI label, or paywalls the detection tool before California SB 942 (as amended by AB 853) applies on August 2, 2026. Runs entirely in your browser — nothing is uploaded.
Same engine as the VS Code extension, byte for byte.
Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.
VS Code MarketplaceOpen VSX (Cursor, VSCodium)npmMCP server (npx)Docker Hubext install ReadyStack.ai-disclosure-lint-sb942 npx @readystack/ai-disclosure-lint-sb942 <file> npx @readystack/ai-disclosure-lint-sb942 --mcp
Team? One key for every ReadyStack linter, 5 seats, $149 once
Sweep the whole workspace and export a dated Markdown + CSV evidence report you can hand to counsel or fail a CI build on.
One payment, one licence key for this tool. The key is shown right after payment.
Outside privacy counsel reviewing one repository for AI-output disclosure bills $400-$600 an hour; SB 942 itself carries $5,000 per violation per day.
Buy the full version — $29· ReadyStack
Real numbers from this tool, line by line.

Fifteen findings in a single 48-line file: that is what twelve SB 942 rules return on an ordinary Express image service, the kind a US SaaS team ships the week it adds picture generation for its California users.
The date is the first thing the code gets wrong. Almost every service file written with model help gates its compliance work on January 1, 2026, because that was the operative date in California SB 942, the AI Transparency Act, as signed. AB 853 moved it. The real date is August 2, 2026, which means the statute is not a deadline to plan around any more - as of September 16, 2026 it has been operative for 45 days, and the penalty is 5,000 dollars per violation, per day, with each day counted as its own violation.
The second thing the code gets wrong is quieter, because it looks like normal image work.
A sharp pipeline that resizes a generated PNG and calls toBuffer drops the input metadata unless withMetadata is called. The latent disclosure - the provider name, the system and version, the time of creation, the unique identifier that the statute expects to travel inside the asset - never reaches the file. One missing method call.
An ffmpeg command built with -map_metadata -1 does the same to generated video and audio, deliberately. A defaults object with watermark set to false and contentCredentials set to false turns the disclosure into a per-request option, when SB 942 treats it as a property of every output a covered system produces. A route named /api/remove-watermark is worse than a gap: the statute asks that the latent disclosure be permanent or extraordinarily difficult to remove, to the extent technically feasible, and this ships the remover.
Then there is the tool the statute asks a covered provider to publish: a free, publicly accessible AI detection tool that tells anyone whether a piece of content came from that provider's system. In the fixture, the detect route exists, which is more than many services manage - but it sits behind requireAuth, and the handler writes the uploaded asset and the user id into Prisma and fires an analytics event. SB 942 bars collecting or retaining personal information from the people who use that tool. Three separate duties, broken by three lines that any code review would wave through.
Finally, issueLicense hands a partner an API key and nothing in the file revokes one. If a licensee modifies the system so it no longer carries the disclosure, the provider has 96 hours from learning about it to revoke that licence.
The clean fixture is the same service, rewritten: withMetadata on the sharp chain, a c2pa signer around the output, an AI-generated label in the JSON response, an ungated detect route that stores nothing, and a revokeLicense function. Same engine, same rules file, no configuration. Zero findings.
That is the whole shape of the tool. Twelve regex rules in a rules.json, an engine that reads the open file and reports the rule id, the severity, the line number and the duty behind the hit. Eleven of the twelve fire on the dirty fixture; the twelfth, the one that fires when generation routes exist with no detection route at all, stays quiet there because that fixture does have a detect route - a gated one.
Linting the file in front of you is free and needs no key. Sweeping the whole workspace and exporting a dated Markdown and CSV report - the artefact counsel or a CI gate wants - is the paid half. Outside privacy counsel reading the same repository by hand bills 400 to 600 dollars an hour, and still needs an engineer beside them to find the render paths.
It reads a JavaScript or TypeScript file and reports, with line numbers, where your generative-AI code drops a disclosure California SB 942 requires: metadata stripped on export, Content Credentials switched off, no AI label on the returned asset, a gated detection route, or licences handed out with no revocation path. Twelve rules, each tied to a duty in the statute.
Engineers who ship image, audio or video generation inside a US SaaS product that California residents can use. SB 942 reaches a covered provider, meaning a publicly accessible generative AI system with over one million monthly users or visitors. If you own the render pipeline, the upload path or the detection endpoint, these rules land on your files.
ESLint, TypeScript and the usual security scanners have no concept of a latent disclosure, so a call to withoutMetadata reads as ordinary image code to them. General chatbots do know SB 942 but most still cite the repealed January 1, 2026 start date rather than the August 2, 2026 date AB 853 set, and they cannot see your files.
Free and keyless: lint the file you have open, with all twelve rules, line numbers and the clause behind each finding. That finishes the job for one file. The paid tier is a different axis, scope and evidence: sweep every matching file in the workspace and export a dated Markdown and CSV report for counsel or a CI gate.
Outside privacy counsel reading one repository for AI-output disclosure gaps bills roughly four hundred to six hundred dollars an hour, and they still need an engineer beside them to find the render paths. The statute prices the other side too: five thousand dollars per violation, per day, each day counted separately.
A general AI chat answers from training data with a cutoff date, cannot read your repository and names no rule version. AI Output Disclosure Lint - SB 942 and AI Act Art. 50 checks the file you open against 12 rules from a rule set dated 2026-09-20, and points at the exact line. For a filing, an audit or a client you need that dated result on your own files.
One question, answered by the person who built it. Your email only if you want the answer sent.
Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.
For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →