
요청 시 클립보드에서 비밀 정보를 제거하는 작은 Rust CLI입니다.
요청 시 클립보드에서 비밀 정보를 제거하는 작은 Rust CLI입니다. 단축키를 바인딩하고, 텍스트를 강조 표시한 후 키 조합을 누르면 클립보드에 편집된 버전이 저장됩니다. 일반적인 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) - OS별 사전 요구사항 동일(macOS는 skhd, Windows는 AutoHotkey):
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 (macOS는 Cmd+V)로 붙여넣습니다.
설정을 조정하려면 secret-stripper menu를 실행하고, 모든 명령어는 secret-stripper --help를 참조하세요.
macOS에서 상주 프로세스 없이 진정한 전역 단축키를 등록하는 방법은 없습니다. Secret Stripper 자체는 일회성으로 유지되므로 단축키 캡처를 두 가지 잘 알려진 도우미 중 하나에 위임합니다: skhd (가볍고 권장) 또는 Hammerspoon (더 무겁고 스크립트 가능). 둘 다 설치되지 않은 경우 init은 수동 바인딩 지침을 출력하는 것으로 대체됩니다.
Homebrew로 skhd 설치:
brew install koekeishiya/formulae/skhd
secret-stripper init 실행. 이 명령은 ~/.skhdrc, 일일 업데이트 확인을 위한 launchd LaunchAgent, 설정 파일을 작성합니다. 출력에는 "DE binding" 줄이 포함됩니다: skhd / Hammerspoon이 감지되면 OK, 그렇지 않으면 설치 힌트와 함께 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 실행 - ~/.skhdrc 대신 ~/.hammerspoon/init.lua에 바인딩을 작성합니다.
기본 키 조합: Cmd+Shift+C. macOS 앱은 종종 Cmd-수정자 조합을 사용하므로, 사용 중인 것(브라우저 DevTools, Finder "경로 복사" 등)과 충돌하면 secret-stripper menu -> 단축키 다시 바인딩에서 다시 바인딩합니다. 미리 계획한다면 더 안전한 두 가지 옵션: Cmd+Option+X 또는 Cmd+Ctrl+X.
Windows에서는 진정한 전역 단축키를 등록하는 제로-인스톨 방법이 없습니다. macOS와 동일한 제약 - Secret Stripper는 단축키 캡처를 AutoHotkey v2 (skhd의 Windows 버전)에 위임합니다. AutoHotkey는 내부적으로 Win32 RegisterHotKey API를 사용하며, 포커스된 창, 전체 화면 앱, 상승된 프로세스 전반에서 안정적으로 키 조합을 전달하는 유일한 메커니즘입니다. AutoHotkey가 필요합니다 - init은 찾을 수 없으면 설치 힌트와 함께 중단됩니다.
winget으로 AutoHotkey 설치:
winget install AutoHotkey.AutoHotkey
패키지는 AutoHotkey v2를 C:\Program Files\AutoHotkey\v2\에 설치합니다.
secret-stripper init 실행. 이 명령은 %APPDATA%\secret-stripper\secret-stripper.ahk를 작성하고, 로그인 시 AHK가 스크립트를 다시 시작하도록 시작 .lnk를 생성하며, 즉시 AHK 프로세스를 시작하여 로그아웃 없이 키 조합이 활성화됩니다.
단축키 테스트:
Set-Clipboard "[email protected]"
# 키 조합 누르기 (기본: Ctrl+Alt+C)
Get-Clipboard # 예상: [REDACTED]
Ctrl+Alt+<키> (선택적으로 Shift 포함)로 제한됩니다. 다른 조합은 거부됩니다.Ctrl+C 후 키 조합)입니다.schtasks 일일 작업으로 실행됩니다..ahk 파일과 시작 .lnk를 제거합니다. 실행 중인 다른 AHK 스크립트는 영향을 받지 않습니다.전체 버킷 목록, 심각도 계층 및 패턴은 DETECTION_COVERAGE.md를 참조하세요.
secret-stripper menu -> 편집 스타일에서 감지된 비밀 정보를 어떻게 대체할지 선택:
동일한 설정이 단축키 트리거, redact 파이프라인 하위 명령, paste-guard AI-TUI 래퍼에 적용됩니다.
비밀 정보는 종종 텍스트뿐만 아니라 스크린샷(터미널 캡처, 설정 창, API 대시보드)에도 존재합니다. 단축키를 트리거했을 때 클립보드에 텍스트 대신 이미지가 있으면 Secret Stripper는 이미지에 OCR을 적용하고, 텍스트에 사용하는 것과 동일한 감지기를 실행하여 비밀 정보를 포함하는 단어만 단색 검정 사각형으로 덮습니다. 편집된 이미지는 클립보드에 다시 기록됩니다. 이미지의 깨끗한 부분은 그대로 남습니다 - 전체 스크린샷이 검게 칠해지지 않습니다.
Linux에서만 지원됩니다 - X11 및 Wayland 모두. macOS 및 Windows에서는 단축키가 여전히 텍스트 편집만 수행합니다. 클립보드 이미지는 그대로 둡니다.
클립보드에 이미지가 있을 때 단축키는 텍스트를 강조 표시했더라도 이미지를 편집합니다 - 따라서 스크린샷 -> 단축키가 그냥 작동합니다.
PATH에 tesseract OCR CLI가 필요합니다. 선택적 런타임 종속성입니다. 이것 없이도 다른 모든 기능은 작동합니다.
sudo pacman -S tesseract tesseract-data-eng # Arch
sudo apt install tesseract-ocr # Debian / Ubuntu
sudo dnf install tesseract # Fedora
장애 시 폐쇄적으로 작동합니다: tesseract가 없거나, 이미지를 읽을 수 없거나, 감지된 비밀 정보를 찾을 수 없으면 클립보드는 그대로 두고 알림이 표시됩니다 - 원본 이미지가 조용히 전달되거나 지워지지 않습니다. OCR은 이 경로를 즉각적인 텍스트 경로보다 느리게 만듭니다(전체 스크린샷의 경우 약 0.5초에서 몇 초). 따라서 붙여넣기 전에 알림을 기다리십시오.
이미지 편집은 기본적으로 비활성화되어 있습니다. secret-stripper menu -> 감지 설정 -> 스크린샷 편집에서 켜거나 config.toml에서 enable_image_scan = true를 설정하세요.
secret-stripper init는 설치된 AI 터미널 도구(Claude Code, Codex CLI, aider, Gemini CLI, Continue, opencode)를 찾아 복사하여 붙여넣을 수 있는 셸 별칭 블록을 출력합니다. 각 별칭은 도구를 paste-guard를 통해 라우팅합니다. paste-guard는 클립보드 붙여넣기를 가로채서 AI 프롬프트에 도달하기 전에 비밀 정보를 편집하는 PTY 래퍼입니다. 타이핑 및 일반 출력은 건드리지 않습니다. 코드 조각을 셸 설정(~/.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
제한 사항. 터미널이 대괄호 붙여넣기를 지원해야 합니다 (모든 최신 에뮬레이터, VSCode 통합 터미널 및 tmux 패스스루 포함); 입력된 비밀 정보는 절대 수정되지 않으며, 붙여넣기만 수정됩니다; 1MiB 이상의 붙여넣기 페이로드는 편집되지 않고 통과됩니다.
빌드, 테스트, 린트 및 커밋 규칙은 CONTRIBUTING.md를 참조하세요.
| OS | 상태 | 단축키 백엔드 |
|---|
| 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로 설치 |
| 카테고리 | 예시 |
|---|
| 🔴 클라우드 시크릿 | AWS 키, Google API 키, Azure 자격 증명, OpenAI 토큰, Stripe 키, Heroku API 키 |
| 🔴 인증 토큰 | GitHub 토큰, GitLab 토큰, Slack 토큰, Discord 토큰, JWT, Bearer 토큰, NPM 토큰 |
| 🔴 암호화 키 | RSA/EC/OpenSSH 개인 키, PGP 개인 키, SSH 공개 키 |
| 🔴 개인 식별 정보 (PII) | 신용카드 번호, 주민등록번호, 전화번호, 이메일 주소, 여권 번호 |
| 🟠 연결 문자열 | PostgreSQL, MongoDB, Redis, MySQL, 자격 증명이 포함된 JDBC URL |
| 🟡 휴리스틱 | 비정상적인 문자열, 비밀이 포함된 env 파일, 비밀번호 필드가 있는 JSON, Base64 인코딩 콘텐츠 |
| 🟢 안전 | 일반 텍스트, 이메일, 문서 - 오정보 없음 |
| 스타일 | aws=AKIAIOSFODNN7EXAMPLE의 출력 |
|---|
| 마커 (기본값) | aws=[REDACTED] - 설정 가능한 마커 문자열 사용 (8가지 프리셋 + 사용자 정의) |
| 제거 | aws= - 일치하는 바이트를 완전히 제거 |
| 유형 | aws=[AWS_ACCESS_KEY_ID] - 각 구간을 일치된 패턴 이름에서 파생된 태그로 대체 |
| 자리표시자 | aws=AKIAIOSFODNN7EXAMPLE - 일치된 패턴에 대해 실제 같지만 가짜 샘플 값으로 교체 (이메일은 [email protected], Stripe 키는 sk_test_4eC39HqLyjWDarjtT1zdp7dc) |