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.