Weekly AI-context hygiene research
AI coding tools can read everything in your repo
Offsend Radar scanned 495 open-source projects this week. 715 sensitive files — Log Files, .env files, and .npmrc credentials — were committed to 148 of them, in plain sight for any AI assistant with repository access.
Radar #8
Aug 10–16, 2026 · Published Aug 10, 2026, 3:16 PM UTC
Fleet snapshot
Anonymous counts across all complete scans this week. No repository names are shown.
495 repositories were scanned for AI-context hygiene.
715 AI-context risk signals matched 22 sensitive path categories.
1% of scanned repos use a dedicated AI exclude file (2 types in use).
How to read this report
These are not confirmed leaks.
Radar uses path-level checks to detect files and folders that may become visible to AI coding tools if they are not covered by AI-specific ignore rules.
A risk signal is a file committed to the repository whose path matches a sensitive category (for example .env or *.pem). Counts are file matches at the path level — Radar never opens the files.
- No file contents were read.
- No secrets were collected.
- No repository names are published without opt-in.
- Repositories are a manually curated cohort, not a random sample — read these as directional signals, not population-level statistics.
Scanned
AI-context risk signals
Repos with risk signals
AI exclude-file coverage
Scan details
- Targeted
- 500
- Scanned
- 495
- Scan complete
- 495
- Skipped
- 0
- Errors
- 5
- Repos with risk signals
- 148
- Generated
- Aug 10, 2026, 3:16 PM UTC
- Tool version
- 0.21.0–0.21.0
- Ruleset
- e634955c141dcfc6
Main takeaway
30% of scanned repos had AI-context risk signals — mostly lower-severity path categories.
Far fewer repos use a dedicated AI exclude file (1%) than show risk signals (30%). Start by excluding Environment files (.env) and npm credentials (.npmrc) from AI context.
AI-context risk signal categories
Aggregated path pattern counts — not tied to any named repository.
- Environment files (.env)Required
- Key material (.pem, .key)Required
- Key FilesRequired
- Secrets YamlRequired
- Credentials JsonRequired
- Kubernetes configRequired
- npm credentials (.npmrc)Recommended
- Pgp KeysRecommended
- Firebase Client ConfigRecommended
- Aws FilesRecommended
- Android KeystoreRecommended
- Auth JsonRecommended
- Yarn ConfigRecommended
- Pkcs12 P12Recommended
- Docker configRecommended
- Pkcs12 PfxRecommended
- Apple P8 KeysRecommended
- Htpasswd FilesRecommended
- Log FilesInfo
- Backup FilesInfo
- Data ExportsInfo
- Local DatabasesInfo
AI exclude files
1% of repos use a dedicated AI exclude file
These actually keep matching files out of AI context — and they are still rare.
Show 9 more exclude file types (2 in use overall)
AI context files
28% of repos ship an AI context file
Files like AGENTS.md and CLAUDE.md give AI tools project instructions — theyadd context, they do not exclude anything. They are not a substitute for an exclude file.
Fix the top risks
Patterns covering this week's most widespread categories (Environment files (.env), npm credentials (.npmrc), Certificates and PEM keys (.pem), Private keys (.key)). Add them to a dedicated AI exclude file (for example .cursorignore or.claudeignore) — and to .gitignore so the files are never committed.
.env
.env.*
!.env.example
.npmrc
*.pem
*.key
certs/
secrets/Per-category guidance lives in the risk pattern guides.
Compared with previous report
| Metric | Radar #7 | Radar #8 |
|---|---|---|
| Repositories scanned | 498 | 495 |
| AI exclude-file coverage | 1% | 1% |
| Repos with risk signals | 30% | 30% |
| AI-context risk signals (absolute) | 717 | 715 |
| Risk signals per scanned repo | 1.4 | 1.4 |
| Top category | Log Files | Log Files |
Named participants
Per-repository reports for maintainers who opted in. Fleet counts above stay anonymous; each card below is that repo's own scan.
No named listings this week. Maintainers can opt in via radar registry.
Check your own project
148 of 495 repos this week exposed sensitive paths to AI tools. Check yours in seconds:
Run the same local check with Offsend CLI:
brew install --cask offsend/tap/offsend-cli
offsend show
offsend prepare --dry-runEverything runs locally. No file contents are uploaded.