Stable browser interface

The primary input is #text-input; #analyze-text runs local analysis and results render in #result-content with details in #evidence-detail. Labels, buttons, status regions, and errors are visible in the ordinary interface. Do not infer a result from empty or stale markup.

Privacy and consent

Prefer the browser-local tools. Never send private or confidential material to a cloud model without the user’s explicit authorization. Optional cloud checks require the visible consent flow and may be disabled, rate-limited, inconclusive, or unavailable. Do not bypass confirmations, Turnstile, origin checks, quotas, or file limits.

Interpretation boundary

Observations and model scores are evidence, not proof of authorship, authenticity, misconduct, or ownership. Preserve the displayed source, model, timestamp, band, and limitations with any result. Do not convert an inconclusive or unavailable result into a binary verdict.

Prefilled links

The detector reads one query parameter on the homepage: ?text=, a URL-encoded plain-text string up to 50,000 characters. When present, the text loads into #text-input and local analysis runs automatically. No other parameter is read, and the parameter never triggers the optional cloud check on its own. See worked examples for real sample links, and /data/checks.json for the same rows as structured data.

Developer surface

The same-origin API documentation describes the optional model-check integration. It is not a general public API. See the methodology and privacy notice before automating a workflow.