
AI कोडिंग एजेंट इतिहास (Claude Code, और अन्य) में गोपनीय जानकारियाँ खोजें और हटाएँ।

अपने AI कोडिंग एजेंट के स्थानीय इतिहास में सीक्रेट खोजें और रिडैक्ट करें। पूरी तरह ऑफ़लाइन।
रोकथाम: API कुंजियों को क्लाउड-समर्थित AI एजेंटों में बिल्कुल न चिपकाएँ — कुंजी आपकी डिस्क पर पहुँचने से पहले ही प्रदाता के सर्वर से गुज़रती है।
अगर आप पहले ही चिपका चुके हैं: 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) के स्टोरेज पथ/प्रारूप शोध से प्राप्त किए गए हैं लेकिन अभी तक वास्तविक इंस्टॉल के विरुद्ध सत्यापित नहीं हैं। स्कैनिंग सुरक्षित है — गलत पथ का अर्थ केवल कुछ न मिलना है — लेकिन पुष्टि होने तक वे कम-रिपोर्ट कर सकते हैं। पिकर में उन्हें
(experimental)टैग किया गया है और स्कैन पर एक सूचना प्रिंट होती है।
191 डिटेक्शन नियम — AWS, GitHub, Stripe, OpenAI, Anthropic, Google, Slack, Discord, HuggingFace, JWT, PEM कुंजियाँ, DB URLs, 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, सैकड़ों typosquats — एक ही काम करते हुए पकड़ी गई: उस मशीन से डेवलपर क्रेडेंशियल्स को बाहर निकालना जिसने उन्हें इंस्टॉल किया था। वे पर्यावरण चर, .env फ़ाइलें, शेल इतिहास, SSH कुंजियाँ और अब AI एजेंट इतिहास फ़ाइलों को निशाना बनाते हैं।
AI कोडिंग सहायकों ने क्रेडेंशियल एक्सपोज़र की एक नई श्रेणी बनाई है जो दो साल पहले अस्तित्व में नहीं थी:
~/.claude/projects/*/conversations/*.jsonl में हैpostinstall चलाता है → सामान्य पथों को स्कैन करता है → आपका JSONL इतिहास ढूँढता है → एक अनुरोध में 50 API कुंजियाँ बाहर निकालता है.env जिसमें आपने AI से मदद माँगी, हर DB URL जो आपने डीबगिंग के लिए साझा किया, हर टोकन जो आपने एक-लाइनर के लिए चिपकायाAI एजेंट इतिहास नया .bash_history है — सिवाय इसके कि इसमें पूर्ण संदर्भ होता है, केवल कमांड नहीं। हमला करने वाले उपकरण यह पहले से जानते हैं। 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
बस इतना ही। कोई virtualenv सक्रिय करने की ज़रूरत नहीं, कोई 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 # one-time install
uv tool upgrade agentsweep # update to latest
बिना इंस्टॉल किए आज़माएँ (हमेशा नवीनतम चलता है):
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 --fix अभी भी स्वीकार किया जाता है और agentsweep fix के समान व्यवहार करता है।
--source के साथ चुनें कि किस एजेंट के इतिहास को लक्षित करना है। डिफ़ॉल्ट claude-code है।
agentsweep scan --source claude-code # ~/.claude/projects/ (default)
agentsweep scan --source codex # ~/.codex/sessions/
agentsweep scan --source opencode # OpenCode SQLite store
agentsweep scan --source cursor # Cursor history
agentsweep scan --source windsurf # Windsurf history
agentsweep scan --source aider # ~/.aider/
agentsweep scan --source cline # Cline history
agentsweep scan --source gemini-cli # Gemini CLI history
agentsweep scan --source continue-vscode # Continue (VS Code) history
agentsweep scan --source github-copilot-chat # GitHub Copilot Chat history
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 # all 29 sources + which are on disk
agentsweep list-sources --detected # only the ones found on this machine
agentsweep list-sources --json # machine-readable (for scripts/CI)
एक ही पास में हर पंजीकृत एजेंट को स्कैन करें (एकत्रित निष्कर्ष; रिडक्शन प्रति-स्रोत रहता है):
agentsweep scan --all # all registered sources
agentsweep scan --all --detected # only sources with a history root on disk
agentsweep scan --all --json # aggregated JSON (each finding has "source")
agentsweep scan --all --json -o out.json
किसी भी मनमाने फ़ोल्डर को स्कैन करने के लिए डिफ़ॉल्ट रूट निर्देशिका को ओवरराइड करें:
agentsweep scan --root ~/backups/claude-history
agentsweep fix --root /tmp/history-copy --allow-production
# Machine-readable JSON to stdout (exit 0 = clean, 1 = findings found, 2 = error)
agentsweep scan --json
# Write findings JSON to a file instead of stdout
agentsweep scan --json -o findings.json
agentsweep scan --json --output /tmp/report.json
# Skip .agentsweepignore files
agentsweep scan --no-ignore
# Redact Claude Code history in place (--allow-production required for default roots during alpha)
agentsweep fix --allow-production
# Skip creating .bak backups (not recommended)
agentsweep fix --allow-production --no-backup
# Bypass soft safety checks: mtime gate (files modified <60 s ago) and running-process gate
agentsweep fix --allow-production --force
# Combine: non-interactive JSON-mode redaction against a custom root
agentsweep fix --root ~/history-copy --json
# Undo redactions for a specific source
agentsweep undo --source codex
# Undo against a custom root
agentsweep undo --root ~/history-copy
एक रिडैक्टर जो आपके इतिहास को भ्रष्ट करता है, वह जिस लीक को ठीक कर रहा है उससे सख्ती से बदतर है। agentsweep हर --fix पर इन इनवेरिएंट को लागू करता है:
fsync() → मूल पर os.replace()। किसी भी क्षण क्रैश या तो पूरी पुरानी फ़ाइल या पूरी नई फ़ाइल छोड़ता है — कभी भी टूटा हुआ लेखन नहीं।PRAGMA integrity_check पास करती है। यदि जाँच विफल होती है, तो लेखन रद्द हो जाता है और मूल अछूता रहता है।.bak बैकअप। केवल स्वामी-पठनीय (मोड 0600) बनाया जाता है क्योंकि इसमें रिडक्शन-पूर्व सीक्रेट होते हैं; यदि .bak पहले से मौजूद है तो चलने से इनकार करता है (ताकि पिछले बैकअप मिटाए न जा सकें)।~/.codeium/windsurf/memories/)।--force ओवरराइड करता है।प्रत्येक रिडैक्ट की गई फ़ाइल में मूल बाइट्स के साथ एक सहोदर *.bak होता है। किसी स्रोत के सभी रिडक्शन को पूर्ववत करने का सबसे आसान तरीका:
agentsweep undo # undo Claude Code (default)
agentsweep undo --source codex # undo a specific source
agentsweep undo --root ~/history-copy # undo against a custom root
यदि आपको किसी एक फ़ाइल को मैन्युअल रूप से पुनर्स्थापित करने की आवश्यकता है (जैसे आपने पूर्ववत कमांड का स्रोत हटा दिया):
mv session.jsonl.bak session.jsonl
बैकअप रिडक्शन-पूर्व मूल — सादा-पाठ सीक्रेट रखते हैं, इसलिए एक स्वीप तब तक समाप्त नहीं होती जब तक लीक हुई कुंजियाँ घुमाई नहीं जातीं और बैकअप हटा नहीं दिए जाते। एक बार घुमा लेने के बाद:
agentsweep purge # delete Claude Code backups (asks first)
agentsweep purge --source windsurf # delete a specific source's backups
agentsweep purge --yes # non-interactive (scripts / CI)
191 उच्च-विश्वास पैटर्न और एक चेकसम-सत्यापित क्रिप्टो सीड-वाक्यांश डिटेक्टर — BIP-39 mnemonics (12/15/18/21/24 शब्द; BTC, ETH, SOL, BNB, ADA, DOGE, LTC, DOT, AVAX और लगभग हर प्रमुख श्रृंखला के पीछे का वॉलेट प्रारूप) और Electrum सीड क्रिप्टोग्राफिक रूप से पुष्टि किए जाते हैं (BIP-39 चेकसम / Electrum संस्करण टैग), इसलिए अंग्रेज़ी गद्य जो संयोगवश वॉलेट शब्दों का उपयोग करता है, कभी गलत-सकारात्मक नहीं होता।
पैटर्न: AWS एक्सेस कुंजियाँ, GitHub टोकन (PAT/OAuth/App/fine-grained), Stripe live/test, OpenAI, Anthropic, Google API, Slack bot/user/webhook, Hugging Face, JWT, PEM निजी कुंजियाँ, एम्बेडेड पासवर्ड वाले DB URLs, npm/PyPI/SendGrid/Twilio टोकन — साथ ही gitleaks पैक से पोर्ट किए गए 167 नियम जिनमें GitLab, Grafana, HashiCorp Vault/Terraform, DigitalOcean, Shopify, PlanetScale, Databricks, Atlassian, Azure AD, 1Password, Sentry, New Relic, Mailgun, Datadog, Twilio, Twitter/X, Twitch, Yandex, JFrog, Snyk, Mailchimp, कमांड लाइन पर curl क्रेडेंशियल और बहुत कुछ शामिल हैं। पैटर्न उच्च-परिशुद्धता वाले हैं — गलत-सकारात्मक दुर्लभ हैं, और प्रदाता-संदर्भ नियम कीवर्ड-गेटेड हैं ताकि बड़े पेस्ट तेज़ रहें।
गहन पहचान के लिए, agentsweep के साथ gitleaks या trufflehog चलाएँ — उनके नियम पैक अधिक विस्तृत हैं। agentsweep का मूल्य एजेंट-इतिहास-विशिष्ट सतह है, पहचान इंजन नहीं।
uvx agentsweep पुराना संस्करण क्यों दिखाता है?
uvx उपकरणों को स्थानीय रूप से कैश करता है। हमेशा नवीनतम संस्करण चलाने के लिए uvx agentsweep@latest का उपयोग करें (अनुशंसित), या uvx --reinstall agentsweep के साथ कैश रीफ़्रेश करें।
मेनू में OpenCode कहाँ है?
OpenCode समर्थन v0.1.1 में जोड़ा गया था। इसे पाने के लिए pip install --upgrade agentsweep या uvx agentsweep@latest चलाएँ।
क्या agentsweep मेरा डेटा कहीं भेजता है? नहीं। यह पूरी तरह ऑफ़लाइन है — स्कैनिंग या रिडक्शन के दौरान शून्य नेटवर्क कॉल। एकमात्र वैकल्पिक नेटवर्क कॉल पृष्ठभूमि अपडेट जाँच है, जो केवल PyPI से नवीनतम संस्करण संख्या प्राप्त करती है।
कोड, बग रिपोर्ट और विचार योगदान देने वाले सभी को धन्यवाद।
MIT. LICENSE देखें।
| कमांड | यह क्या करता है |
|---|
agentsweep scan | केवल स्कैन — पढ़ने-मात्र, कोई फ़ाइल संशोधित नहीं (जब कोई क्रिया न दी जाए तो डिफ़ॉल्ट) |
agentsweep fix | स्कैन करें, फिर निष्कर्षों को जगह में रिडैक्ट करने की पेशकश करें (पुष्टि के लिए REDACT टाइप करें) |
agentsweep undo | सभी .bak बैकअप को पुनर्स्थापित करें, किसी भी पिछले रिडक्शन को पूर्ववत करें |
agentsweep purge | लीक हुई कुंजियाँ घुमाए जाने के बाद सभी .bak बैकअप हटाएँ (स्थायी — undo काम करना बंद कर देता है) |
agentsweep list-sources | हर समर्थित एजेंट की सूची दें और दिखाएँ कि इस मशीन पर किसके पास इतिहास है (पढ़ने-मात्र) |
agentsweep --version / -V | इंस्टॉल किया गया संस्करण प्रिंट करें |
agentsweep --update | नए रिलीज़ के लिए PyPI जाँचें |
--force ओवरराइड करता है।~/.claude/projects/ रूट के विरुद्ध --fix के लिए v1.0 तक --allow-production आवश्यक है।~/.agentsweep/audit.jsonl में जोड़ता है।