{
  "markdown": "# ContextArmor\n\n![ContextArmor checks sensitive work locally](assets/social-card.png)\n\n**See what reached AI. Protect the next message locally.**\n\nContextArmor is a local-first privacy toolkit for people who use AI with real\nclient work. It separates two jobs that are often confused:\n\n1. **Free exposure audit:** inspect explicitly selected AI conversation records\n   after the fact and show current, daily, and weekly risk trends.\n2. **Local protection:** create sanitized copies before supported work is read\n   by an AI.\n\nRaw transcripts, files, detected values, custom terms, and private mappings stay\non the device. The baseline is risk reduction, not guaranteed anonymization,\ncompliance, or proof of a breach.\n\n## Free AI exposure audit\n\nThe `audit-ai-exposure` Skill works across the packaged Codex, Claude Code, and\nGemini CLI integrations. It scans only transcript paths or exports the user\nexplicitly selects. It never claims background access to every AI client.\n\n```bash\nnode skills/audit-ai-exposure/scripts/audit.mjs scan \\\n  --client codex \\\n  --term \"Example Client\" \\\n  ./synthetic-transcripts\n```\n\nShow the locally recorded trend without rescanning content:\n\n```bash\nnode skills/audit-ai-exposure/scripts/audit.mjs report\n```\n\nThe local event store contains only timestamps, client labels, counts,\ncategories, severities, and skip reasons. Repeated scans may observe the same\noccurrence again, so the report does not call findings unique leaks.\n\nEach report also contains a protection link with a random 128-bit installation\nID, local audit number, client label, and finding-count band. The scanner does\nnot open the link or make a network request. If the user chooses to open it,\nthose aggregate fields can connect first audit, repeat audit, checkout, and paid\nconversion without sending transcript text, detected values, filenames, or\ncustom terms.\n\n## Local safe copy\n\nThe `make-ai-safe-copy` Skill creates a separate `.ai-safe/` copy with stable\nplaceholders before an agent reads supported files.\n\n```bash\nnode skills/make-ai-safe-copy/scripts/safectx.mjs sanitize \\\n  --out-dir .ai-safe \\\n  --term \"Example Client\" \\\n  ./example\n```\n\nOriginals remain untouched. The aggregate report excludes detected values; a\nmode-0600 private mapping remains local for optional restoration.\n\n## Install\n\nAgent Skills CLI:\n\n```bash\nnpx skills add https://github.com/kuhung/contextarmor --skill audit-ai-exposure\nnpx skills add https://github.com/kuhung/contextarmor --skill make-ai-safe-copy\n```\n\nCodex CLI:\n\n```bash\ncodex plugin marketplace add kuhung/contextarmor --ref main\ncodex plugin add contextarmor@contextarmor\n```\n\nClaude Code:\n\n```bash\nclaude plugin marketplace add kuhung/contextarmor\nclaude plugin install contextarmor@contextarmor\n```\n\nGemini CLI:\n\n```bash\ngemini extensions install kuhung/contextarmor --ref v0.4.1\n```\n\n## What stays local\n\n- Selected transcripts and source files\n- Detected values and custom client/project terms\n- Aggregate day/week event history\n- Random local installation ID used only after a user voluntarily opens the protection link\n- Private placeholder mappings\n\nThe bundled scanners make no network requests. They do not silently modify\noriginal files or claim access to AI history the host does not expose.\n\n## Supported baseline\n\nThe exposure audit accepts UTF-8 `.txt`, `.md`, `.log`, `.json`, `.jsonl`,\n`.ndjson`, `.csv`, `.yaml`, `.yml`, and `.xml` files up to 25 MB. The safe-copy\nworkflow supports common text, source, configuration, and data formats listed\nin its Skill instructions.\n\nOffice documents, PDF, images, archives, metadata, comments, attachments, and\nOCR layers are intentionally outside the current baseline. Contextual secrets\nnot provided as custom terms may remain.\n\n## Product and research\n\n- [See the local protection workflow](https://contextarmor.vercel.app/?utm_source=github&utm_medium=repository&utm_campaign=contextarmor-v1&utm_content=readme)\n- [Report a missed category](https://github.com/kuhung/contextarmor/issues/new?template=missed-detection.yml)\n- [Report an incorrect detection](https://github.com/kuhung/contextarmor/issues/new?template=false-positive.yml)\n- [Share workflow feedback](https://github.com/kuhung/contextarmor/issues/new?template=workflow-feedback.yml)\n\nNever paste real secrets, customer data, private transcripts, detected values,\nor internal screenshots into a public issue.\n\n## Development\n\nRequires Node.js 22 or newer.\n\nRelease builds set `CONTEXTARMOR_PROTECTION_URL` to the deployed `/r/audit`\nendpoint. Development and tests can override it without changing the local\nscan or storage boundary.\n\n```bash\nnpm test\n```\n\nSecurity and privacy reports: use the\n[private contact form](https://safectx-ai-privacy.dainty-nova-4389.chatgpt.site/contact).\n",
  "bytes": 4764,
  "sha": "0db1a2dca59cb25d99dab1bb3955d5f78dc873c79cb4c079ff51f39934389e5c",
  "repo_slug": "kuhung/contextarmor",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_kuhung_contextarmor_f7dcf0ab/readme"
}