Назад к обновлениям
New releaseAug 30, 2026

watermarks-remover v0.5.0

Приложение с приоритетом приватности, которое удаляет AI-водяные знаки из вашего собственного контента.

Поделиться
_ _ _ ____ ___ ____ ____ _  _ ____ ____ _  _ ____    ____ ____ _  _ ____ _  _ ____ ____
| | | |__|  |  |___ |__/ |\/| |__| |__/ |_/  [__  __ |__/ |___ |\/| |  | |  | |___ |__/
|_|_| |  |  |  |___ |  \ |  | |  | |  \ | \_ ___]    |  \ |___ |  | |__|  \/  |___ |  \

watermarks-remover

CI Release Stars Forks

Навык агента + сервис на stdlib Python для удаления мультивендорных меток происхождения ИИ из текста и файлов — для приватности и гигиены контента, которым вы владеете. Навык представляет собой тонкий клиент: он управляет механизмом по HTTP, поэтому хосту агента не требуется Python.

СлойЦельКак
AНевидимый Unicode, экзотические пробелы, bidi, тег-символыДетерминированные скрипты Python
BСтатистические (token-sampling) текстовые водяные знакиПерезапись агентом + опциональный хук rewrite_text.py
ФайлыC2PA / EXIF / XMP / свойства документовPNG, JPEG, WebP, AVIF, HEIC, BMP, GIF, TIFF, SVG, PDF, DOCX, XLSX, PPTX, EPUB, ODT, HTML, Markdown, MP4/MOV/M4A/M4V, WAV, MP3, FLAC

Вендоры / экосистемы (на уровне классов): Claude, Gemini / SynthID-Text, поверхности происхождения OpenAI, метки open-LLM в стиле Kirchenbauer (green-list) и keyed-Gumbel / EXP (Aaronson).

Последний релиз: v0.7.0

Путь навыка: skills/remove-ai-marks/
Путь сервиса: service/
(миграция: ранее remove-claude-marks; слэш-алиас /remove-claude-marks всё ещё документирован)

Установка (навык агента)

Навык не содержит кода — он вызывает сервис по HTTP. Установите навык (только markdown) и запустите сервис, затем задайте WATERMARKS_SERVICE_URL, если он не http://127.0.0.1:8765.

В Claude Code самый быстрый путь — встроенный маркетплейс плагинов — без клонирования, и он обновляется на месте. Везде в остальном один установщик покрывает каждый поддерживаемый хост (Python 3.10+ stdlib, без зависимостей):

python3 install_skill.py --skill remove-ai-marks --target claude-code
ХостЦельКуда устанавливается
Claude Code (личный)--target claude-code~/.claude/skills/<skill> (учитывает CLAUDE_CONFIG_DIR)
Claude Code (проект)--target claude-project --project-dir PATHPATH/.claude/skills/<skill>
Codex (личный)--target codex~/.agents/skills/<skill>
Codex (проект)--target codex-project --project-dir PATHPATH/.agents/skills/<skill>
Cowork, claude.ai, облачные сессии, routines--target coworkdist/<skill>.zip для загрузки в разделе Customize → Skills
Cursor--target cursor (по умолчанию)~/.cursor/skills/<skill>

Поставляемые навыки: remove-ai-marks (полный, с поддержкой сервиса) и clean-user-facing-text (только текст, самодостаточный). --list выводит их. Существующие установки сохраняются, если не передан --force; замена сначала подготавливается, а предыдущая установка сохраняется как резервная копия с уникальным именем. --link создаёт символические ссылки на этот checkout вместо копирования, поэтому правки подхватываются на лету. В Windows используйте py install_skill.py ...; обёртка install-skill.sh предназначена для оболочек macOS/Linux.

Перед записью чего-либо установщик проверяет навык на соответствие правилам упаковки Agent Skills, которые применяются при загрузке в claude.ai и в Skills API: frontmatter только по спецификации (name, description, license, compatibility, metadata, allowed-tools), name в нижнем регистре с дефисами длиной не более 64 символов, совпадающий с именем каталога, непустой description длиной не более 1024 символов. Пакет Cowork дополнительно должен укладываться в ограничение загрузки 30 МБ, что обеспечивает упаковщик.

Терминал и десктоп Codex

Установите любой из поставляемых навыков для своего пользователя или установите один в конкретный проект:

python3 install_skill.py --skill remove-ai-marks --target codex
python3 install_skill.py --skill clean-user-facing-text --target codex
python3 install_skill.py --skill remove-ai-marks --target codex-project --project-dir /path/to/project

В Windows используйте py вместо python3. Откройте проект в Codex. В терминале используйте /skills или введите $, чтобы выбрать навык; в настольном приложении выберите или упомяните навык в своём запросе. Перезапустите Codex, если новый навык не появился. Установка проекта доступна, когда Codex работает в этом проекте.

Для remove-ai-marks запустите существующий HTTP-сервис из этого репозитория с помощью make serve перед использованием навыка (или в Windows без make выполните py service/scripts/server.py --host 127.0.0.1 --port 8765). Он использует WATERMARKS_SERVICE_URL (по умолчанию http://127.0.0.1:8765), проверяет /health и вызывает существующие эндпоинты /inspect и /clean. Если сервис требует API-ключ, задайте WATERMARKS_SERVER_API_KEY для клиента. clean-user-facing-text является самодостаточным и не нуждается в сервисе.

Автоматическая очистка через хук (детерминированная)

Навык — это инструкция: модель решает, вызывать ли его, и именно модель создаёт метки. Хук выполняется средой исполнения при каждом соответствующем вызове инструмента, без необходимости согласия. Это делает хук детерминированной половиной данного рабочего процесса.

Плагин регистрирует хук PostToolUse на Write|Edit|MultiEdit|NotebookEdit, который запускает service/scripts/hook_written_file.py для файла, который только что записал агент. Два режима, соответствующие соглашению pre-commit о проверке по умолчанию:

РежимПоведение
check (по умолчанию)Сообщает о метках происхождения, оставляя файл без изменений. Результаты передаются модели (exit 2), чтобы она могла предложить их очистить.
cleanУдаляет метки на месте, затем сообщает модели, что файл на диске изменился.

Задайте режим в настройках плагина (Hook mode в /plugin manage, считывается хуком как CLAUDE_PLUGIN_OPTION_HOOK_MODE), или с помощью WATERMARKS_HOOK_MODE=clean в окружении. Команда хука намеренно не интерполирует ${user_config.hook_mode}: Claude Code отказывается запускать хук, который ссылается на опцию, которую пользователь никогда не открывал в /plugin manage, чтобы её задать — объявленный default не удовлетворяет этому условию — поэтому интерполяция означала бы, что хук молча никогда не запустится при чистой установке. Обнаружение повторно использует scan_file / is_actionable из audit_lib, поэтому хук, шлюз pre-commit и экспорт SARIF в CI согласованно определяют, что считается требующим действий; очистка вызывает clean_file.py, поэтому логика очистки не дублируется. Режим clean записывает во временный файл-сосед и заменяет только при реальном различии, поэтому файлы, которые уже были чистыми, сохраняют свой mtime и не перезапускают наблюдатели за файлами.

Категории