5

Pitch: no-watermark: seu texto pode ja estar marcado, um jeito de checar

A Anthropic confirmou: o Claude agora embute um watermark imperceptivel direto no texto que gera. Segundo o proprio artigo do help center deles, "voce nao vai ver, e isso nao muda o sentido, qualidade ou legibilidade". A marca sobrevive a copiar e colar, e cobre o app do Claude, Claude Code, Claude Cowork, Claude Tag, a API, e as integracoes com AWS, Google Cloud e Microsoft Foundry, no mundo todo. Arquivos ganham metadata de proveniencia assinada no padrao C2PA. O motivo e a Anthropic ter assinado o Article 50(2) do EU AI Act, o Code of Practice on Transparency of AI-Generated Content. Modelos lancados a partir de 2 de agosto de 2026 ja saem com isso ativo, e modelos anteriores estao recebendo a marca aos poucos.

Isso nao e exclusividade do Claude. Watermark por caractere invisivel ja circula em texto de IA ha um tempo: zero-width space, zero-width joiner, variation selectors, encoding em tag-block, controles de bidi, espacos Unicode fora do padrao. Nada disso aparece na tela. Tudo isso sobrevive quando voce cola o texto num documento, numa descricao de PR, num email pro cliente.

Escrevi o no-watermark pra inspecionar e remover essa camada via normalizacao deterministica de caracteres, sem modelo nenhum tentando adivinhar padrao.

O que ele remove

  • Caracteres de formatacao: zero-width space/joiner/non-joiner, word joiner, BOM, controles bidi
  • Variation selectors (U+FE00-FE0F, U+E0100-E01EF)
  • Tag block (U+E0000-E007F)
  • Espacos anomalos: as 16 variantes nao-ASCII da categoria Unicode "Zs", normalizadas pra espaco comum
  • Variantes de quebra de linha: NEL, LINE SEPARATOR, PARAGRAPH SEPARATOR, convertidas pra newline
  • Soft hyphen, Mongolian vowel separator, combining grapheme joiner

Alem da camada de caracteres invisiveis, ele tambem ataca tells estilisticos que denunciam texto de IA pra detectores: travessao em excesso, estrutura formulaica.

Guarda de seguranca

Zero-width joiner tambem e o mecanismo por tras de sequencias legitimas de emoji (familia, casal, bandeira), e ZWNJ tem uso linguistico real em scripts indicos. Os dois ficam preservados por padrao. Da pra passar --no-emoji-guard se quiser remocao incondicional.

O que ele nao faz

A propria Anthropic admite que a marca deles nao prova autoria, so sinaliza que o texto "pode ter passado pelo Claude", e some com edicao pesada, paráfrase ou traducao. Minha ferramenta tem um limite parecido: watermarking estatistico por distribuicao de tokens, tipo green/red list do Kirchenbauer, fica fora do escopo. Esse tipo de marca nao e um conjunto de caracteres extras, e um vies em qual token foi escolhido durante a geracao, e remover isso exige parafrasear o texto, nao normalizar caractere.

Uso

pip install -e .

nowatermark detect suspeito.txt
nowatermark clean suspeito.txt -o limpo.txt --report
echo "texto" | nowatermark clean -

Python, testado com pytest, licenca MIT. Tem uma skill do Claude Code junto, pra rodar deteccao direto de dentro de uma conversa e ver o que realmente ta embutido no texto que voce ta usando.

Ta em estagio inicial, funcional, e o cenario de marcacao invisivel acabou de ficar bem mais comum. Repo em https://github.com/obrenoalvim/no-watermark, issues e PRs sao bem-vindas. Ja checou o que pode estar escondido no texto que voce copiou de uma IA recentemente?

Ps.: Desenvolvo o BloodLink, plataforma gratuita que conecta doadores de sangue a campanhas de doacao. Se quiser conhecer, vale a visita.

Carregando publicação patrocinada...