Skip to main content

AI Text Watermark Audit

CI PyPI License: MIT

Local-first tools for examining invisible Unicode signals in text and tracking public AI text watermark claims. The first research target is Claude; the scanner itself is provider-neutral.

简体中文 · Claude watermark notes · Methodology · FAQ · Examples

Search phrases this project is designed to answer honestly: Claude watermark detection, AI text watermark audit, invisible Unicode scanner, hidden character detector, LLM watermark claims, and text forensics for generated text.

Why this exists

Anthropic says supported Claude models embed an imperceptible watermark in generated text. It has not yet published the technical detector required to verify that statistical signal. This project keeps two questions separate:

  1. Does a document contain observable Unicode or formatting signals?
  2. Does an official detector verify a provider watermark?

Today, textmark can answer the first question. For Claude's model-level watermark, it reports the public evidence and an honest not-publicly-documented detector status instead of guessing.

Install

Python 3.10 or newer is required.

pipx install ai-text-watermark-audit

Or with pip:

python -m pip install ai-text-watermark-audit

For development:

git clone https://github.com/steven-panxd/ai-text-watermark-audit.git
cd ai-text-watermark-audit
python -m pip install -e .

Use

Scan a UTF-8 file:

textmark scan draft.txt

Produce JSON and fail CI on warning-level findings:

textmark scan draft.txt --json --fail-on warning

Compare two versions:

textmark compare original.txt edited.txt --json

Show sourced vendor claims and detector availability:

textmark claims

Try the demo fixtures:

git clone https://github.com/steven-panxd/ai-text-watermark-audit.git
cd ai-text-watermark-audit
textmark scan examples/hidden-zero-width.txt
textmark compare examples/clean.txt examples/hidden-zero-width.txt

The scanner currently reports:

  • zero-width and format characters;
  • bidirectional text controls;
  • Unicode tag characters;
  • unusual spaces and variation selectors;
  • mixed Latin/Cyrillic or Latin/Greek tokens;
  • exact positions, Unicode names, escaped values, and SHA-256 hashes.

It runs locally, has no runtime dependencies, and does not upload text.

What a finding means

A hidden character is not proof that text was generated by AI. Many invisible characters have legitimate uses in typography, emoji, and non-Latin writing systems. Conversely, a clean scan does not prove human authorship and does not rule out a statistical watermark.

The report is forensic input, not an authorship verdict.

Current Claude status

As of 14 August 2026:

  • Anthropic says Claude models launched on or after 2 August 2026 support machine-readable marking at launch.
  • It says older models are being updated.
  • Marking applies worldwide on supported models.
  • Anthropic has not yet published technical documentation for third-party detection.

Primary source: How Claude marks AI-generated content.

Roadmap

  • Copy-paste demo corpus for common hidden-character cases
  • A stable detector-adapter interface for official vendor tools
  • Corpus manifests and reproducible robustness runs
  • File provenance inspection for supported formats
  • Exportable Markdown and SARIF reports
  • Multilingual false-positive fixtures

Development

python -m unittest discover -s tests -v

See CONTRIBUTING.md before proposing a detector or vendor claim. Security-sensitive findings should follow SECURITY.md.

License

MIT. This project is independent and is not affiliated with Anthropic or other model providers.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_text_watermark_audit-0.1.1.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_text_watermark_audit-0.1.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file ai_text_watermark_audit-0.1.1.tar.gz.

File metadata

  • Download URL: ai_text_watermark_audit-0.1.1.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ai_text_watermark_audit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c1101683855cd871e6b9e5a9071aa3fdebae46de88794070284d367a993e525a
MD5 472e0ebe78f3149b79bb4e1232da6217
BLAKE2b-256 1cdc939c02374e31770e283accca3f825460a2e08298ba116dc5850e2cf7db51

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_text_watermark_audit-0.1.1.tar.gz:

Publisher: release.yml on steven-panxd/ai-text-watermark-audit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ai_text_watermark_audit-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_text_watermark_audit-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a4ceab4b1250ee937b0a9e4378703bd5f86f9c45720d2fc3f54d9bd97f794f6
MD5 85ff8fd71639fcfa36cb098da57f0b21
BLAKE2b-256 a4041fba55cf9488f8b50ea82179a8265d3b81d470bef897e7f11c72e419e413

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_text_watermark_audit-0.1.1-py3-none-any.whl:

Publisher: release.yml on steven-panxd/ai-text-watermark-audit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page