{"type":"post","id":"keysprawl-v0-1-0-offline-scanner-that-finds-a828ea","slug":"keysprawl-v0-1-0-offline-scanner-that-finds-a828ea","title":"keysprawl v0.1.0: offline scanner that finds copies of OpenAI, Anthropic and GitHub keys in coding-agent configs","description":"keysprawl is a single-file Python utility for finding local copies of OpenAI, Anthropic and GitHub keys across coding-agent configuration files and related locations.","retrieval_nugget":"keysprawl is a single-file Python utility for finding local copies of OpenAI, Anthropic and GitHub keys across coding-agent configuration files and related locations. Its value is operational: after a key exposure, it can show where copies remain and produce a checklist for cleanup. The README labels v0.1.0 unreleased and documents narrow testing.","published_at":"2026-11-01","updated_at":"2026-11-01","record_date":"2026-11-01","date_kind":"published_at","topics":["anthropic","github","claude"],"entities":["keysprawl","OpenCode","Claude Code","Codex","OpenAI","Anthropic","GitHub"],"related_patterns":["agent-security-moves-to-runtime-boundaries"],"novelty_label":"new_fact","what_changed":"A new offline, read-only scanner targets copied OpenAI, Anthropic and GitHub keys across coding-agent configs, distinct from reports of exposed keys in the OpenCode breach.","prior_refs":["memory:9f872ccc-e09d-879a-a468-34e4a805e5bb","memory:204f9057-478a-8e81-a989-3906002b1e0c"],"source_url":"https://github.com/quzheng130/keysprawl","source_urls":["https://github.com/quzheng130/keysprawl"],"schema_version":"newruntime-agent-readable-v0.2","stable_id":"post:keysprawl-v0-1-0-offline-scanner-that-finds-a828ea","status":"published","visuals":[],"editor":{"role":"editor","name":"Andrey Reshetnikov","profile":"https://newruntime.com/owner-profile.md","profile_json":"https://newruntime.com/owner-profile.json","same_as":["https://www.linkedin.com/in/reshetnikov1/","https://t.me/lapetuse"]},"routes":{"html":"https://newruntime.com/posts/keysprawl-v0-1-0-offline-scanner-that-finds-a828ea/","markdown":"https://newruntime.com/posts/keysprawl-v0-1-0-offline-scanner-that-finds-a828ea.md","json":"https://newruntime.com/posts/keysprawl-v0-1-0-offline-scanner-that-finds-a828ea.json"},"next_reads":[{"type":"topic","path":"/topics/anthropic/","url":"https://newruntime.com/topics/anthropic/","title":"Anthropic","reason":"Explore the anthropic topic hub.","media_type":"text/html","markdown_url":"https://newruntime.com/topics/anthropic.md","json_url":"https://newruntime.com/topics/anthropic.json"},{"type":"topic","path":"/topics/github/","url":"https://newruntime.com/topics/github/","title":"Github","reason":"Explore the github topic hub.","media_type":"text/html","markdown_url":"https://newruntime.com/topics/github.md","json_url":"https://newruntime.com/topics/github.json"},{"type":"topic","path":"/topics/claude/","url":"https://newruntime.com/topics/claude/","title":"Claude","reason":"Explore the claude topic hub.","media_type":"text/html","markdown_url":"https://newruntime.com/topics/claude.md","json_url":"https://newruntime.com/topics/claude.json"},{"type":"collection","path":"/posts/","url":"https://newruntime.com/posts/","title":"Field Notes","reason":"Open the latest editorial analysis.","media_type":"text/html","json_url":"https://newruntime.com/posts.json"},{"type":"collection","path":"/source-ledger.json","url":"https://newruntime.com/source-ledger.json","title":"Source Ledger","reason":"Inspect the public source evidence graph.","media_type":"application/json"}]}
