
Небольшая CLI-утилита на Rust, которая удаляет секреты из вашего буфера обмена по запросу.
Небольшая CLI-утилита на Rust, которая по запросу удаляет секреты из вашего буфера обмена. Назначьте горячую клавишу, выделите текст, нажмите комбинацию — в буфере обмена окажется версия с удалённой конфиденциальной информацией. Обычное Ctrl+C / Ctrl+V никогда не перехватывается.
Linux — одна команда, никакой дополнительной настройки:
curl -sSf https://secretstripper.download/install.sh | bash
Комбинация по умолчанию: Ctrl+Alt+X.
macOS — требуется однократная настройка глобальной горячей клавиши (skhd или Hammerspoon). См. Настройка macOS для разрешений и устранения неполадок.
brew install koekeishiya/formulae/skhd
curl -sSf https://secretstripper.download/install.sh | bash
# Предоставьте skhd доступ к специальным возможностям: Системные настройки -> Конфиденциальность и безопасность -> Специальные возможности
skhd --restart-service
Комбинация по умолчанию: Cmd+Shift+C.
Windows (PowerShell) — требуется AutoHotkey v2. См. Настройка Windows для полного процесса.
winget install AutoHotkey.AutoHotkey
iwr -useb https://secretstripper.download/install.ps1 | iex
Комбинация по умолчанию: Ctrl+Alt+C.
Из crates.io (Rust) — применяются те же предварительные требования для каждой ОС (skhd на macOS, AutoHotkey на Windows):
cargo install secret-stripper && secret-stripper init
Из исходников (git):
cargo install --git https://github.com/kalix127/secret-stripper.git --locked && secret-stripper init
После установки выделите текст и нажмите комбинацию. В Linux выделение PRIMARY читается напрямую, поэтому можно пропустить Ctrl+C. Вставьте с помощью Ctrl+V (Cmd+V на macOS).
Запустите secret-stripper menu для настройки параметров или secret-stripper --help для всех команд.
| ОС | Статус | Бэкенд горячих клавиш |
|---|---|---|
| Linux | ✅ Поддерживается | gsettings (GNOME / Cinnamon / Unity / Budgie / Pantheon), gsettings (схема MATE), xfconf-query (XFCE), kwriteconfig + qdbus (KDE Plasma 5/6) |
| macOS | ✅ Поддерживается | skhd (~/.skhdrc) или Hammerspoon (~/.hammerspoon/init.lua); ручные инструкции, если ни один не установлен |
| Windows | ✅ Поддерживается | AutoHotkey v2 (%APPDATA%\secret-stripper\secret-stripper.ahk) — установка через winget install AutoHotkey.AutoHotkey |
Не существует способа зарегистрировать настоящую глобальную горячую клавишу на macOS без постоянно запущенного процесса. Secret Stripper сам является одноразовым, поэтому делегирует перехват клавиш одному из двух известных помощников: skhd (лёгкий, рекомендуется) или Hammerspoon (тяжелее, с возможностью скриптов). Если ни один не установлен, init выводит инструкции по ручной настройке.
Установите skhd через Homebrew:
brew install koekeishiya/formulae/skhd
Запустите secret-stripper init. Он создаёт ~/.skhdrc, LaunchAgent для ежедневной проверки обновлений и файл конфигурации. В выводе будет строка "DE binding": OK, если skhd / Hammerspoon обнаружен, FAILED с подсказками по установке, если нет.
Предоставьте skhd доступ к специальным возможностям. skhd требуется это для перехвата глобальных горячих клавиш, иначе он молча ничего не захватывает. Откройте Системные настройки -> Конфиденциальность и безопасность -> Специальные возможности, нажмите +, добавьте /usr/local/bin/skhd и включите тумблер. Если skhd уже запущен, перезапустите его, чтобы новые разрешения вступили в силу:
skhd --restart-service
Проверьте комбинацию:
echo "[email protected]" | pbcopy
# Нажмите свою комбинацию (по умолчанию: Cmd+Shift+C)
pbpaste # ожидаем: [REDACTED]
Альтернатива с Hammerspoon: brew install --cask hammerspoon, откройте его один раз, чтобы предоставить доступ к специальным возможностям, затем запустите secret-stripper init — он запишет привязку в ~/.hammerspoon/init.lua вместо ~/.skhdrc.
Комбинация по умолчанию: Cmd+Shift+C. Приложения macOS часто захватывают комбинации с Cmd, поэтому если она конфликтует с чем-то, что вы используете (DevTools браузера, Finder "Копировать путь" и т.д.), переназначьте через secret-stripper menu -> Rebind Hotkey. Два более безопасных варианта, если хотите спланировать заранее: Cmd+Option+X или Cmd+Ctrl+X.
В Windows нет способа зарегистрировать настоящую глобальную горячую клавишу без установки дополнительного ПО. То же ограничение, что и на macOS — Secret Stripper делегирует перехват клавиш AutoHotkey v2 (аналог skhd для Windows). AutoHotkey использует Win32 API RegisterHotKey и является единственным механизмом, который надёжно обрабатывает комбинацию в сфокусированных окнах, полноэкранных приложениях и процессах с повышенными привилегиями. AutoHotkey обязателен — init завершится с сообщением об установке, если не сможет его найти.
Установите AutoHotkey через winget:
winget install AutoHotkey.AutoHotkey
Пакет устанавливает AutoHotkey v2 в C:\Program Files\AutoHotkey\v2\.
Запустите secret-stripper init. Он создаёт %APPDATA%\secret-stripper\secret-stripper.ahk, добавляет .lnk в автозагрузку, чтобы AHK перезапускал скрипт при каждом входе в систему, и немедленно запускает процесс AHK, чтобы комбинация работала без выхода из системы.
Проверьте комбинацию:
Set-Clipboard "[email protected]"
# Нажмите свою комбинацию (по умолчанию: Ctrl+Alt+C)
Get-Clipboard # ожидаем: [REDACTED]
Ctrl+Alt+<ключ> (опционально с Shift); другие комбинации отвергаются.Ctrl+C, затем ваша комбинация).schtasks каждый день в 11:00..ahk и ярлык автозагрузки .lnk. Другие запущенные скрипты AHK не затрагиваются.| Категория | Примеры |
|---|---|
| 🔴 Облачные секреты | AWS-ключи, ключи Google API, учётные данные Azure, токены OpenAI, ключи Stripe, ключи Heroku API |
| 🔴 Токены аутентификации | Токены GitHub, токены GitLab, токены Slack, токены Discord, JWT, bearer-токены, токены NPM |
| 🔴 Криптографические ключи | Приватные ключи RSA/EC/OpenSSH, приватные ключи PGP, открытые ключи SSH |
| 🔴 Личная информация (PII) | Номера кредитных карт, SSN, номера телефонов, адреса электронной почты, номера паспортов |
| 🟠 Строки подключения | PostgreSQL, MongoDB, Redis, MySQL, JDBC URL с учётными данными |
| 🟡 Эвристика | Необычные строки, файлы .env с секретами, JSON с полями паролей, содержимое в base64 |
| 🟢 Безопасно | Обычный текст, письма, документы — ложных срабатываний нет |
Полный список категорий, уровней серьёзности и шаблонов см. в DETECTION_COVERAGE.md.
Выберите, как заменять обнаруженные секреты, в secret-stripper menu -> Redaction Style:
| Стиль | Вывод для aws=AKIAIOSFODNN7EXAMPLE |
|---|---|
| Mark (по умолчанию) | aws=[REDACTED] — использует настраиваемую строку маркера (восемь предустановок + пользовательская) |
| Drop | aws= — полностью удаляет совпавшие байты |
| Typed | aws=[AWS_ACCESS_KEY_ID] — заменяет каждый фрагмент тегом из имени совпавшего шаблона |
| Placeholder | aws=AKIAIOSFODNN7EXAMPLE — подставляет реалистичное, но фальшивое значение для совпавшего шаблона (email становится [email protected], ключ Stripe — sk_test_4eC39HqLyjWDarjtT1zdp7dc) |
Тот же параметр применяется к триггеру горячей клавиши, подкоманде redact и обёртке paste-guard для AI TUI.
Секреты часто находятся на скриншотах, а не только в тексте — снимок терминала, панель конфигурации, панель API. Когда вы нажимаете горячую клавишу и в буфере обмена оказывается изображение вместо текста, Secret Stripper распознаёт текст на изображении (OCR), запускает тот же детектор, что и для текста, и закрашивает сплошным чёрным прямоугольником только слова, содержащие секрет. Изображение с удалёнными данными записывается обратно в буфер обмена. Чистые части изображения не трогаются — весь скриншот никогда не зачёркивается.
Поддерживается только на Linux — как X11, так и Wayland. На macOS и Windows горячая клавиша всё равно выполняет удаление из текста; изображение в буфере обмена не изменяется.
Когда в буфере обмена находится изображение, горячая клавиша удаляет данные с изображения, даже если вы выделили текст — поэтому скриншот -> горячая клавиша работает просто.
Для этого требуется tesseract CLI для OCR в переменной PATH. Это необязательная зависимость времени выполнения: всё остальное работает без него.
sudo pacman -S tesseract tesseract-data-eng # Arch
sudo apt install tesseract-ocr # Debian / Ubuntu
sudo dnf install tesseract # Fedora
Работает по принципу fail-closed: если tesseract отсутствует, изображение не может быть прочитано или обнаруженный секрет не может быть найден, буфер обмена не изменяется, и вы получаете уведомление — исходное изображение никогда не пропускается незаметно и никогда не стирается. OCR делает этот путь медленнее, чем мгновенный текстовый (примерно от половины секунды до пары секунд для полного скриншота), поэтому дождитесь уведомления перед вставкой.
Удаление с изображений отключено по умолчанию. Включите его в secret-stripper menu -> Detection Settings -> Screenshot redaction или установите enable_image_scan = true в config.toml.
secret-stripper init ищет установленные AI терминальные инструменты (Claude Code, Codex CLI, aider, Gemini CLI, Continue, opencode) и выводит готовый к копированию блок псевдонимов оболочки. Каждый псевдоним направляет инструмент через paste-guard, обёртку PTY, которая перехватывает вставки из буфера обмена и удаляет секреты до того, как они попадут в промпт AI — набор текста и обычный вывод не затрагиваются. Скопируйте этот фрагмент в конфигурацию вашей оболочки (~/.zshrc, ~/.bashrc, ~/.config/fish/config.fish или профиль PowerShell) и откройте новую оболочку:
# ----------------------------------
alias claude='secret-stripper paste-guard -- claude'
alias codex='secret-stripper paste-guard -- codex'
# ----------------------------------
Secret Stripper никогда не записывает в ваш rc-файл самостоятельно. Чтобы перестать направлять через paste-guard, удалите блок между пунктирными комментариями.
Область действия. paste-guard — это обёртка для одного процесса: она фильтрует только вставки в ту одну команду, с которой вы её запустили. Ежедневное использование ssh, psql, vim, kubectl, просто промпта оболочки, GUI-приложений, системного буфера обмена — всё это совершенно не затрагивается. Вы также можете добавить псевдонимы для инструментов, не связанных с AI, вручную (живые демонстрации с psql / mysql, записи экрана) — обёртка вокруг конечных команд допустима, обёртка вокруг целой оболочки обычно нет.
Вы также можете передавать произвольный текст через тот же движок:
cat secrets.log | secret-stripper redact > clean.log
Ограничения. Вставка в скобочном режиме (bracketed paste) должна поддерживаться вашим терминалом (все современные эмуляторы поддерживают, включая встроенный терминал VSCode и проброс tmux); набор секретов никогда не изменяется, только вставленные; полезная нагрузка вставки более 1 МБ передаётся без удаления.
См. CONTRIBUTING.md для правил сборки, тестирования, линтинга и коммитов.