
AI 코딩 에이전트 기록(Claude Code 등)에서 비밀을 찾아 수정합니다.

AI 코딩 에이전트의 로컬 기록에서 비밀 정보를 찾아 수정합니다. 완전히 오프라인에서 작동합니다.
예방: 클라우드 기반 AI 에이전트에 API 키를 붙여넣지 마십시오. 키가 디스크에 도달하기 전에 제공자의 서버를 거치게 됩니다.
이미 했다면: agentsweep은 남아 있는 로컬 공격 벡터(디스크에서 자격 증명을 스캔하는 공급망 악성코드 및 손상된 패키지)를 제거합니다. 파일은 절대 사용자의 머신을 떠나지 않습니다.
29개 에이전트 지원: 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 · Warp · Grok CLI · Kiro CLI · Zed · Codebuff · Plandex · Junie · Mentat · JetBrains AI
실험적 소스 (Warp, Grok CLI, Kiro CLI, Zed, Codebuff, Plandex, Qwen Code, PearAI, Trae, Void, Junie, Mentat, JetBrains AI)의 저장 경로/형식은 연구를 기반으로 파생되었지만 실제 설치를 통해 검증되지 않았습니다. 스캔은 안전합니다. 잘못된 경로는 아무것도 찾지 못할 뿐이지만, 확인될 때까지 과소 보고될 수 있습니다. 선택기에서
(실험적)으로 표시되며 스캔 시 알림이 출력됩니다.
191개 탐지 규칙 — AWS, GitHub, Stripe, OpenAI, Anthropic, Google, Slack, Discord, HuggingFace, JWT, PEM 키, DB URL, BIP-39 시드 문구 등 더 많음
알파 버전 — 모든 파괴적인 단계는 게이트가 있고, 백업이 되며, 하나의 명령으로 되돌릴 수 있습니다.
Claude Code(및 다른 모든 AI 코딩 CLI)는 전체 대화 기록을 일반 텍스트 JSONL로 디스크에 저장합니다. Claude Code의 경우 ~/.claude/projects/, OpenAI Codex의 경우 ~/.codex/sessions/에 저장합니다. 붙여넣은 모든 것(AWS 키, .env 파일, 데이터베이스 URL)이 명확한 텍스트로 무기한 남아 있습니다. 일반적인 개발자의 기록에는 수개월 동안 수십 개의 비밀 정보가 종종 인지하지 못한 상태로 축적됩니다.
agentsweep은 해당 기록을 스캔하고 무엇이 유출되었는지 알려주며, JSONL 구조를 바이트 단위로 유지하면서 비밀 값을 제자리에서 수정할 수 있습니다. 또한 각 제공자에 대한 올바른 취소 URL과 함께 어떤 키를 교체해야 하는지 알려줍니다.
보호 범위: agentsweep 자체는 완전히 로컬 및 오프라인입니다. 사용자 머신의 파일만 읽고 쓰며 네트워크 호출을 전혀 하지 않습니다. 이는 하나의 공격 벡터(로컬 기록 파일에 저장된 비밀 정보)를 제거합니다. 이미 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 기록을 찾습니다. → 한 번의 요청으로 50개의 API 키를 유출합니다..env, 디버깅을 위해 공유한 모든 DB URL, 한 줄 명령을 위해 붙여넣은 모든 토큰.AI 에이전트 기록은 새로운 .bash_history입니다. 단, 명령어뿐만 아니라 전체 컨텍스트를 포함합니다. 공격 도구는 이미 이를 알고 있습니다. agentsweep은 악용되기 전에 정리하기 위해 존재합니다.
pip install uv # uv 설치 (이미 있다면 건너뜀)
uv tool install agentsweep # 설치 — `agentsweep` 및 `asweep`을 PATH에 추가
asweep # 실행 — 대화형 메뉴가 모든 것을 안내
이것으로 끝입니다. 가상 환경을 활성화하거나 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\n191 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는 백업에서 복원합니다.
권장 — 격리, venv 충돌 없음:
uv tool install agentsweep # 일회성 설치
uv tool upgrade agentsweep # 최신 버전으로 업데이트
설치 없이 시도 (항상 최신 버전 실행):
uvx agentsweep@latest
클래식 pip:
pip install agentsweep
pip install --upgrade agentsweep
uv가 없습니까?pip install uv또는 astral.sh/uv를 참조하십시오. Python 3.11+가 필요합니다.
터미널에서 인수 없이 실행하면 전체 경험이 제공됩니다. 배너, 번호가 매겨진 메뉴, 파괴적인 작업 전에 입력 확인, 한 키로 취소(.bak 백업 복원). 비밀 정보를 찾은 모든 대화형 스캔은 즉시 수정하겠다는 제안으로 끝납니다(REDACT 입력하여 확인).
agentsweep
스크립팅은 영향을 받지 않습니다. 모든 플래그 또는 파이프/리디렉션된 스트림은 메뉴를 완전히 건너뛰고 아래에 문서화된 대로 정확히 작동합니다.
| 명령어 | 기능 |
|---|---|
agentsweep scan | 스캔만 수행 — 읽기 전용, 파일 수정 없음 (동사가 주어지지 않았을 때 기본값) |
agentsweep fix | 스캔 후 발견된 항목을 제자리에서 수정하도록 제안 (REDACT 입력하여 확인) |
agentsweep undo | 모든 .bak 백업 복원, 이전 수정 내용 되돌림 |
agentsweep purge | 유출된 키가 교체된 후 모든 .bak 백업 삭제 (영구적 — undo 작동 중단) |
agentsweep list-sources | 지원되는 모든 에이전트 나열 및 이 머신에 기록이 있는 에이전트 표시 (읽기 전용) |
agentsweep --version / -V | 설치된 버전 출력 |
agentsweep --update | PyPI에서 최신 릴리스 확인 |
레거시 플래그 형식 agentsweep --fix도 계속 허용되며 agentsweep fix와 동일하게 작동합니다.
--source로 대상 에이전트의 기록을 선택합니다. 기본값은 claude-code입니다.
agentsweep scan --source claude-code # ~/.claude/projects/ (기본값)
agentsweep scan --source codex # ~/.codex/sessions/
agentsweep scan --source opencode # OpenCode SQLite 저장소
agentsweep scan --source cursor # Cursor 기록
agentsweep scan --source windsurf # Windsurf 기록
agentsweep scan --source aider # ~/.aider/
agentsweep scan --source cline # Cline 기록
agentsweep scan --source gemini-cli # Gemini CLI 기록
agentsweep scan --source continue-vscode # Continue (VS Code) 기록
agentsweep scan --source github-copilot-chat # GitHub Copilot Chat 기록
agentsweep scan --source openclaw # OpenClaw ~/.openclaw/
agentsweep scan --source hermes # Hermes Agent ~/.hermes/state.db
agentsweep scan --source goose # Goose ~/.local/share/goose/
어떤 에이전트가 설치되어 있는지 모르시겠습니까? list-sources는 지원되는 모든 소스, 해당 기록 위치, 그리고 이 머신에 해당 기록이 존재하는지 여부를 출력합니다. 따라서 어떤 --source 값을 스캔할 가치가 있는지 알 수 있습니다. 읽기만 하고 쓰지는 않습니다.
agentsweep list-sources # 29개 모든 소스 + 디스크에 있는 것
agentsweep list-sources --detected # 이 머신에서 발견된 것만
agentsweep list-sources --json # 기계 판독 가능 (스크립트/CI용)
한 번에 모든 등록된 에이전트를 스캔합니다 (통합된 결과, 수정은 소스별로 유지됨):
agentsweep scan --all # 모든 등록된 소스
agentsweep scan --all --detected # 디스크에 기록 루트가 있는 소스만
agentsweep scan --all --json # 통합 JSON (각 결과에는 "source" 포함)
agentsweep scan --all --json -o out.json
임의의 폴더를 스캔하기 위해 기본 루트 디렉터리를 재정의합니다: