
AIコーディングエージェントの履歴(Claude Code など)からシークレットを検出して秘匿化します。

AIコーディングエージェントのローカル履歴からシークレットを検出して墨消しします。完全オフライン。
予防策: APIキーをクラウドベースのAIエージェントに貼り付けないでください。キーはディスクに到達する前に、プロバイダーのサーバーを通過します。
すでに貼り付けてしまった場合: agentsweepは残されたローカルの攻撃ベクトル、つまりディスクをスキャンして認証情報を探すサプライチェーンマルウェアや侵害されたパッケージを除去します。あなたのファイルがマシンから出ることはありません。
32のエージェントをサポート: Claude Code · Codex · OpenCode · Cursor · Windsurf · Aider · Cline · Kilo Code · Roo Code · PearAI · Trae · Void · Gemini CLI · Qwen Code · Continue · Open Interpreter · GitHub Copilot Chat · OpenClaw · Hermes · Goose · llm (Datasette) · Warp · Crush · Grok Build · Grok CLI · Kiro CLI · Zed · Codebuff · Plandex · Junie · Mentat · JetBrains AI
実験的ソース (Warp, Crush, Kiro CLI, Zed, Codebuff, Plandex, Qwen Code, PearAI, Trae, Void, Junie, Mentat, JetBrains AI) のストレージパスやフォーマットは調査に基づくものですが、実際のインストール環境ではまだ検証されていません。スキャンは安全です。パスが間違っていても何も見つかりません。確認されるまでは過少報告となる可能性があります。ピッカーでは
(experimental)とタグ付けされ、スキャン時に通知が表示されます。Grok Build (xAI) は実際のWindowsインストール環境で検証済みです。
~/.grok/sessions/<cwd>/<session-id>/にあるJSONLトランスクリプト (chat_history.jsonl,updates.jsonl,events.jsonl;$GROK_HOMEで上書き可能)。Grok CLI は superagent-ai/grok-cli で、grok-dev 1.1.7で検証済みです。~/.grok/grok.dbにあるSQLiteで、プロンプトはmessages.message_jsonに格納されています。これは別の製品です。両者は~/.grokを共有していますが、スキャンするファイルは異なります。auth.jsonは決して開かれません。
207の正規表現ルール + シードフレーズ検出: AWS, GitHub, Stripe, OpenAI, Anthropic, Google, Slack, Discord, HuggingFace, Supabaseの機密トークン, JWT, PEMキー, DB URL, BIP-39シードフレーズ, その他多数
アルファ版: すべての破壊的なステップはゲートされ、バックアップされ、1つのコマンドで元に戻せます
Claude Code (および他のすべてのAIコーディングCLI) は、会話履歴全体をプレーンテキストのJSONLとしてディスクに保存します。Claude Codeでは ~/.claude/projects/ 配下、OpenAI Codexでは ~/.codex/sessions/ 配下です。AWSキー、.env ファイル、データベースURLなど、貼り付けたものはすべて無期限にクリアテキストで残ります。一般的な開発者の履歴には、数か月にわたって数十のシークレットが、通常は気づかれないまま蓄積されます。
agentsweep はその履歴をスキャンし、何が漏洩したかを知らせ、JSONL構造をバイト単位で保持したままシークレットの値をその場で墨消しできます。また、各プロバイダーに適した失効URLとともに、どのキーをローテーションすべきかも教えてくれます。
保護の範囲: agentsweepは完全にローカルかつオフラインです。マシン上のファイルのみを読み書きし、ネットワーク呼び出しは一切行いません。これにより、ローカル履歴ファイルに存在するシークレットという1つの攻撃ベクトルを除去します。AIプロバイダーがすでに受け取った内容には影響しません。Claude Code、Cursor、その他のクラウドベースのエージェントにキーを貼り付けると、そのキーはディスクに到達する前にすでにプロバイダーのサーバーを通過しています。それが気になる場合は、何もマシンから出ないローカルホスト型モデル (Ollama, LM Studio, OpenCode) を検討してください。これはagentsweepと相性が良いです。
サプライチェーン攻撃は加速しています。2024年と2025年には、悪意のあるnpmおよびPyPIパッケージの波 (sha256-universal, shailulid, 数百のタイポスクワット) が、インストールしたマシンから開発者の認証情報を窃取しているのが発見されました。彼らは環境変数、.env ファイル、シェル履歴、SSHキー、そして今やAIエージェントの履歴ファイルを標的にしています。
AIコーディングアシスタントは、2年前には存在しなかった新たな認証情報露出のカテゴリーを生み出しました:
~/.claude/projects/*/conversations/*.jsonl に永久に残るpostinstall を実行 → 一般的なパスをスキャン → あなたのJSONL履歴を発見 → 1回のリクエストで50のAPIキーを窃取.env、デバッグのために共有したすべてのDB URL、ワンライナーのために貼り付けたすべてのトークンAIエージェントの履歴は、シェル履歴が保持するコマンドだけでなく、完全なコンテキストを保持します。攻撃者はすでにそれをスキャンしています。agentsweep はそれが起こる前にクリーンアップします。
pip install uv # get uv (skip if you already have it)
uv tool install agentsweep # install — adds `agentsweep` and `asweep` to PATH
asweep # run — interactive menu guides you through everything
仮想環境を有効化する必要も、PATHをいじる必要もありません。uv tool install はコマンドに専用の分離された環境を提供します。
agentsweep は固定された5段階のパイプラインを実行します。scan はステージ3で停止し、fix はリダクションまで続行します。
flowchart LR
A("🔍 DISCOVER\nwalk history dirs\nstream file list") --> B("⚡ SCAN\nAho-Corasick pre-filter\n207 regex rules + BIP-39")
B --> C{"secrets\nfound?"}
C -- "none" --> D("✅ CLEAN\nexit 0")
C -- "found" --> E("📋 FINDINGS\nshow report\nexit 1")
E -. "scan only" .-> F("⚠️ ROTATE\nkeys still live")
E -- "type REDACT" --> G("✏️ REDACT\natomic write · .bak backup\npost-write JSON validation")
G --> H("🔑 ROTATE\nper-provider\nrevocation links")
style A fill:#1e3a5f,color:#fff,stroke:#2d5986
style B fill:#1e3a5f,color:#fff,stroke:#2d5986
style C fill:#4a3728,color:#fff,stroke:#7a5c3f
style D fill:#1a4731,color:#fff,stroke:#2d7a52
style E fill:#4a3a1e,color:#fff,stroke:#7a6030
style F fill:#4a2020,color:#fff,stroke:#8b3a3a
style G fill:#1e3a5f,color:#fff,stroke:#2d5986
style H fill:#2d1e4a,color:#fff,stroke:#5a3a8b
8つの安全不変条件がすべての書き込みを保護します:アトミック置換、必須の .bak バックアップ、シンボリックリンクの拒否、mtime とプロセスのゲート、そして書き込み後の JSONL 検証です。agentsweep undo はバックアップから復元します。
agentsweep はコマンドラインツールなので、専用の分離された環境にインストールしてください。推奨される2つの方法はいずれもそのように設定します。
uv(推奨):
uv tool install agentsweep # install
uv tool upgrade agentsweep # update
uvx agentsweep@latest # or run once without installing
デフォルトのインストールはポータブルで、Python 組み込みの re エンジンを使用します。google-re2 ホイールが利用可能なプラットフォームでは、オプションの fast エクストラをインストールして混合エンジンを使用できます:
uv tool install 'agentsweep[fast]'
# or, in a virtual environment:
pip install 'agentsweep[fast]'
これはアクセラレーションのみです。サポートされていないパターン、非ASCIIのセマンティックエッジケース、短い文字列、および極端に密なマッチは、正確なPythonのreパスを保持します。オプションのwheelが利用できない場合でも、AgentSweepは完全に機能します。詳細はパフォーマンスノートおよび互換性監査を参照してください。
pipx:
pipx install agentsweep
pipx upgrade agentsweep
pip でも動作しますが、仮想環境内で使用してください。最近の Linux と macOS では、システム Python への pip install がブロックされており(PEP 668)、そもそも CLI がそこに置かれるべきではありません:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install agentsweep
condaは不要です。condaは重量級のバイナリや科学技術スタック向けに存在しており、agentsweepは小さな依存関係を3つだけ持つ純粋なPythonです。
Android (Termux):
pkg install python clang
pip install agentsweep
clang パッケージにより、唯一のネイティブ依存関係が Android の libc に対してビルドされます。
uvがない場合は、pip install uvを実行するか、astral.sh/uv を参照してください。Python 3.11+ が必要です。
リポジトリのルートからイメージをビルドします:
docker build -t agentsweep .
agentsweep はソースの履歴ルート(例: ~/.claude)配下のファイルをスキャンするため、
実際のホームディレクトリ(または該当するエージェントフォルダのみ)を
コンテナにマウントし、--root をそこに向けてください。-u $(id -u):$(id -g) は、
マウントに書き戻されるファイル(.bak バックアップなど)が root ではなく
あなたの所有になるようにします:
docker run --rm -it -u $(id -u):$(id -g) \
-v "$HOME/.claude:/home/sweeper/.claude:rw" \
agentsweep scan --source claude-code