
クリップボードからシークレットをオンデマンドで除去する小さな Rust 製 CLI です。ホットキーをバインドし、テキストをハイライトして、そのキーを押すと、クリップボードには秘匿化されたバージョンが保持されます。通常の Ctrl+C / Ctrl+V が横取りされることはありません。
Linux - 追加セットアップ不要の1コマンド:
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
# Grant skhd Accessibility: System Settings -> Privacy & Security -> Accessibility
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 自体はワンショットで終了するため、ホットキー取得はよく知られた2つのヘルパーのいずれかに委任します: skhd(軽量、推奨)または Hammerspoon(高機能、スクリプト可能)。どちらもインストールされていない場合、init は手動バインドの手順を表示します。
Homebrew で skhd をインストール:
brew install koekeishiya/formulae/skhd
secret-stripper init を実行。 ~/.skhdrc、日次更新チェック用の launchd LaunchAgent、設定ファイルを書き込みます。出力には「DE binding」行が含まれます: skhd / Hammerspoon が検出された場合は OK、未検出の場合はインストールのヒント付きで FAILED。
skhd にアクセシビリティ(Accessibility)権限を付与。 skhd がグローバルホットキーを横取りするにはこれが必要です。ない場合は何も捕捉されずに黙って終わります。システム設定 -> プライバシーとセキュリティ -> アクセシビリティ を開き、+ をクリックして /usr/local/bin/skhd を追加し、オンに切り替えます。skhd がすでに起動している場合は、新しい権限を反映するために再起動します:
skhd --restart-service
ホットキーをテスト:
echo "[email protected]" | pbcopy
# Press your chord (default: Cmd+Shift+C)
pbpaste # expect: [REDACTED]
Hammerspoon の代替方法: brew install --cask hammerspoon を実行して一度起動し、アクセシビリティ権限を付与してから secret-stripper init を実行します - バインドは ~/.skhdrc ではなく ~/.hammerspoon/init.lua に書き込まれます。
デフォルトのホットキー: Cmd+Shift+C。macOS アプリは Cmd 修飾キーのホットキーをよく使用するため、使用中の機能(ブラウザの DevTools、Finder の「パスをコピー」など)と競合する場合は、secret-stripper menu -> Rebind Hotkey からバインドし直してください。あらかじめ計画しておくなら、より安全な2つの選択肢があります: 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]"
# Press your chord (default: Ctrl+Alt+C)
Get-Clipboard # expect: [REDACTED]
Ctrl+Alt+<キー> に限定されます(Shift との組み合わせも可能)。その他のホットキーは拒否されます。Ctrl+C、その後にホットキー)。schtasks の日次タスクとして 11:00 に実行されます。.ahk ファイルとスタートアップ .lnk を削除します。実行中の他の AHK スクリプトには影響しません。バケットの全一覧、重大度レベル、パターンについては、DETECTION_COVERAGE.md を参照してください。
検出されたシークレットの置き換え方は、secret-stripper menu -> Redaction Style から選択します:
同じ設定が、ホットキートリガー、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 -> Detection Settings -> Screenshot redaction からオンにするか、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 はプロセス単位のラッパーです - 実行した その1つの コマンドへの貼り付けだけをフィルタリングします。ssh、psql、vim、kubectl の日常的な使用、素のシェルプロンプト、GUI アプリ、システムクリップボード - すべて完全に影響を受けません。AI 以外のツールのエイリアスを手動で追加することもできます(psql / mysql でのライブデモ、画面収録など)- リーフコマンドをラップするのは問題ありませんが、シェル全体をラップするのは通常推奨されません。
任意のテキストを同じエンジンにパイプで渡すこともできます:
cat secrets.log | secret-stripper redact > clean.log
制限事項。 ブラケットペーストがターミナルでサポートされている必要があります(VSCode 統合ターミナルや tmux パススルーを含む、すべての最新エミュレータがサポートしています)。タイピングによるシークレットは変更されず、貼り付けられたものだけが変更されます。1 MiB を超える貼り付けペイロードは秘匿化されずにそのまま通過します。
ビルド、テスト、lint、コミットの規約については CONTRIBUTING.md を参照してください。
| OS | ステータス | ホットキーバックエンド |
|---|
| Linux | ✅ 対応 | gsettings (GNOME / Cinnamon / Unity / Budgie / Pantheon)、gsettings (MATE schema)、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、ベアラートークン、NPM トークン |
| 🔴 暗号鍵 | RSA/EC/OpenSSH 秘密鍵、PGP 秘密鍵、SSH 公開鍵 |
| 🔴 個人情報(PII) | クレジットカード番号、SSN、電話番号、メールアドレス、パスポート番号 |
| 🟠 接続文字列 | 認証情報付きの PostgreSQL、MongoDB、Redis、MySQL、JDBC URL |
| 🟡 ヒューリスティック | 異常な文字列、シークレットを含む env ファイル、パスワードフィールドを含む JSON、base64 エンコードされたコンテンツ |
| 🟢 安全 | 通常のテキスト、メール、ドキュメント - 誤検知なし |
| スタイル | aws=AKIAIOSFODNN7EXAMPLE の出力 |
|---|
| Marker(デフォルト) | aws=[REDACTED] - 設定可能なマーカー文字列を使用(8つのプリセット + カスタム) |
| Drop | aws= - 一致したバイトを完全に削除 |
| Typed | aws=[AWS_ACCESS_KEY_ID] - 一致したパターン名から派生したタグで各スパンを置換 |
| Placeholder | aws=AKIAIOSFODNN7EXAMPLE - 一致したパターンに対して現実的だが偽のサンプル値に置き換え(メールは [email protected]、Stripe キーは sk_test_4eC39HqLyjWDarjtT1zdp7dc になります) |