{"_id":"secretless-ai","_rev":"58-285a3868b6c4ebe513b56452d4066fea","name":"secretless-ai","dist-tags":{"latest":"0.23.0"},"versions":{"0.3.0":{"name":"secretless-ai","version":"0.3.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp"],"license":"Apache-2.0","_id":"secretless-ai@0.3.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless","bugs":{"url":"https://github.com/opena2a-org/secretless/issues"},"bin":{"secretless-ai":"dist/cli.js"},"dist":{"shasum":"0c4114932cadef7c850a46de5c443086245fe427","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.3.0.tgz","fileCount":35,"integrity":"sha512-aRQhQYY9dWi/SAAnSrgWqW47jK8c9YmS3YLMXr/wzZll1f+KqFo7RBDqwfsUTEaRZmKwCKKdlSTHh/Y0/x5F8A==","signatures":[{"sig":"MEUCIAXsckmg8R5cSyVz83mlof3k33d5iLHxiwl7ATag7igSAiEA1syE49XdY4Ln9xESfUCUI43ByLFACS/Axv9oMlad51U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101461},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"88ca7d7c5cf055b3444114735f014736b1b265c5","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless.git","type":"git"},"_npmVersion":"10.9.3","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.3.0_1770658833586_0.8805164829113326","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"secretless-ai","version":"0.3.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp"],"license":"Apache-2.0","_id":"secretless-ai@0.3.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js"},"dist":{"shasum":"d1eb902473c88eca04c028e1219d883bc3f5af02","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.3.1.tgz","fileCount":43,"integrity":"sha512-HLDfJFQDmzYH7hGw600ZHyJ4XZD9UIEfrrvZjmXgTMVH/tibC5hzdHjBmPWArkHcwSdARNYRYiP4HjoAAmErdw==","signatures":[{"sig":"MEUCIQCWyJcK66nv367Hr1spFIarqVZCPGZqDSP6RROTdSAyZQIgUCAClaRFNiuMVlS96fUWLQbM0RISYKEgwQZFSs9i2kY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138614},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"eb3b66cd9cc4f2e8454f9641624f64995198c67e","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"10.9.3","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.3.1_1770694643524_0.11921939205575693","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"secretless-ai","version":"0.4.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp"],"license":"Apache-2.0","_id":"secretless-ai@0.4.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js"},"dist":{"shasum":"232f84c5d0057885d09bfd5bab5278c814e8fcd5","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.4.0.tgz","fileCount":43,"integrity":"sha512-/p+ufLh5PjjLmTUGvwohtkN48rln/vLbfRZdv/9Ggjcg0B2pqydwxScnLCFha6gPPufqYQ//aZCjrKRI+xHOQg==","signatures":[{"sig":"MEQCIB97afops0u7GMSsx8hQn2/voP2pW+1wOTMwRHzOi6j7AiBnwz+vCk8e3XbQ6Lo+fOmpbdx83AHPlATOGsF9jydUJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162649},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c9555602ab5ff452227150a31d9186372846b5f4","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"10.9.3","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.4.0_1770742437452_0.9193591082924302","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"secretless-ai","version":"0.5.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp"],"license":"Apache-2.0","_id":"secretless-ai@0.5.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js"},"dist":{"shasum":"cdebe8512f68f1b76e64d89a78172b73304d9420","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.5.0.tgz","fileCount":59,"integrity":"sha512-O/Q2RtkweY+x3ctkUaOFn1vBgDC9b6QlQMpJkPbjOIRtFhPE1wjU+Ah/0LvDRSxuwYsIMxslNlBHy7p2oLsBxw==","signatures":[{"sig":"MEQCIBsFw69edMqmQsqx49xF1IohNa66UJq2BpYboNEXt2ajAiAS8gu98ZD1m5hmRMUK07CWnu0ggplXtnf3h9IbvkAnZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209937},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f1a67f15bb9bb315f491f801759fcd0aa8f0aca2","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"10.9.3","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.5.0_1770745655014_0.6099729830676395","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"secretless-ai","version":"0.6.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.6.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"dd337f3af590644a0f5498ed6d915915f901104c","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.6.0.tgz","fileCount":119,"integrity":"sha512-pjGL0T0onAHCdQhViXNxKmrw5D8I/a1BDFKDWXRRv+4/AzyeOWQ2t73BdrZwSuhgfZe+VQoxi9ri1ciM/kR72Q==","signatures":[{"sig":"MEQCH38UqTKYdZVeBDK6ajqz/ClcHqsN/Z4h9b4uUIQoywQCIQCdWg1Cf7jkfxkRQHypOH8ckLtplPR9Q9SW1i3jXFh0XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":370507},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"42808a4958e9f7be509883aedd23987d609ca05c","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"10.9.3","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.6.0_1770752651222_0.4997768532222113","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"secretless-ai","version":"0.6.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.6.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"0c3bddb812267f687ddadb51587ae98ee46ff729","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.6.1.tgz","fileCount":119,"integrity":"sha512-PTYwE/RaqD7l5W3CLfDW2c+Tr+8GhfKXdfZqSTrpsAekxvy+Qytnq+ONoCqbBn6lvXOhng16DkShntVuKcP5Jg==","signatures":[{"sig":"MEQCIBb+0wt0yHrzMytnNg+xWR2sPvCLUgnYxiOTBlTnj7wXAiAIhjBXLX/ioY3v32fvnG/x/Z4qZj9PNrEdOxTPbFDlYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":371162},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"dba2d8527bfa84d59843fa3b4b30218cbeb99626","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"10.9.3","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.6.1_1770765719234_0.5789403593385458","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"secretless-ai","version":"0.6.2","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.6.2","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"60d29cd217cb770f810586a3fb8f3464ead597f7","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.6.2.tgz","fileCount":83,"integrity":"sha512-lENMqiVE0FhyMJKu6nn3HGATOdYdCenhHJzwt4h6eF/qVsfNGCy0lNJ8LSskzZXzfsCShzTu+U2leVV3DMxxoQ==","signatures":[{"sig":"MEUCIQCLSgcFpWysGA5SUqHSDtBvZ0JrilGjDZvMZKw5m6u3rgIgNLCzpVmeSqHR5wpM+I0f/8BJyN5PdGb1LRR386Obmpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285759},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"694462e327484f00f7b812e8aaf313014b0c1250","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.8.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.13.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.6.2_1771390991196_0.9917481493487843","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"secretless-ai","version":"0.7.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.7.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"c3cf6995d78d6f17af6e273dd306e0f2d6a845e3","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.7.0.tgz","fileCount":87,"integrity":"sha512-CVrelV+MKQFRcxABC9b0yb3tOfv/Mqp6rI63B/7UmKpf/TLsUuve59XeTdsRozhLoXQz9DLUDhmKf+3L1Vw+LQ==","signatures":[{"sig":"MEUCICcnLdJERF1R9nIsTfHYw+lsOfVtTnSDGxonyyUhCTetAiEAgdbocd5B7Mk9/UbdzFSwTP5tnF1wHDFcnkToAPI1m04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323949},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"fcb1ee33f3f6f9cdc673705d0d956c24a6f9cb5f","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.7.0_1771447524581_0.918543363679466","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"secretless-ai","version":"0.7.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.7.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"c86247dfadb5612f172940aabc0a5d10698df8ab","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.7.1.tgz","fileCount":87,"integrity":"sha512-4SvU6vc9Yy0/Nr1pg6bC41U8NkWTzKHGk++7t25xzppbC7MQ+6QHGAfQa8DY5VSUksL+SW5FRIvCMD8WridEqw==","signatures":[{"sig":"MEYCIQDeDcoEVsFZMr6nzMYDOyDxUjIxxNlbJz5f5oY67ujgBQIhANkyF4DCOIKqpazVsHgl0EGKKWRQnnto7+g5eh1LcJoR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335618},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"087d7c6955771b45189ba01cfebc4f5c50b376a8","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.7.1_1771447936876_0.10841366562293264","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"secretless-ai","version":"0.8.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.8.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"df9059fd64ee31597a3131db26382bd226381eb9","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.8.0.tgz","fileCount":143,"integrity":"sha512-U2yiRN/PDgjdAQP2MfyK9ece7gAK4psE/f6x789KbHIzD1x8UGW7hqml5hOI1YlCdJY4kCoOCXrIOCVqh3tSWw==","signatures":[{"sig":"MEUCIQC+itJ44i2BMjGQscux8GeI+vdm/z5rsI4mTpdIYdTe6gIgJP3djsZEoY7v4rgJ4WiE6wgJdyDmHeRENFyYS1jBwA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514477},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1658422d5a7419b08dfc1d22d5f1b4428646befe","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.8.0_1771865240009_0.6313057844932983","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"secretless-ai","version":"0.8.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.8.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"dcfe02f30f51f018845f8f70718247cad3ce7da8","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.8.1.tgz","fileCount":143,"integrity":"sha512-27NXNiYnKsJINSpji67r6TElNm8m8J9iIiwQ/6UaH8ETcQ/k3NlwHWqrW50u+TU1vEkVhqvKd6aeCQoUHRRayA==","signatures":[{"sig":"MEQCIEPNZONPJTEZtBmRBtEL9bZVxxVKW94IZ2PtV3tGFy6OAiBuZdGRP+VSHbyii1Z7MjaTY+F+jFFUJPw+5lBZWckiyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514782},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9b0c4059018942b81f3f218d85f3cdd2812ecaaf","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.8.1_1772143725780_0.07831091371407761","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"secretless-ai","version":"0.8.2","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.8.2","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"98c65dc17727f613e927ba94d8c3b26eb78e7ad9","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.8.2.tgz","fileCount":143,"integrity":"sha512-k9U2+btjHYJ8B53Y58SDY7pO16/on9QnxVf6yM1c6xV0CuEnku+YEzcRpUljLucKBNdZMA6hLhaChZqCsMOduQ==","signatures":[{"sig":"MEQCIEFBm+2rgWgeBjCxXfsCygbg/edu233xAiDtKuI5qrKXAiB4pScREizjI4e6xcVfhtjmBPQMEwgnkKsYSeFHgPRJTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":516700},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"01f3c07cebe0bb581888e8b71d0bd4ef1145a96f","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.8.2_1772206297245_0.5500564962523764","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"secretless-ai","version":"0.9.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.9.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"4a7cadeedcb0e7ea31fd95b3b5bee1b1d83f1774","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.9.0.tgz","fileCount":183,"integrity":"sha512-se4s0ZfLCermGL2fjiRa2aBVt5eFVlhu8h810iTrWXHPrZq1cZBdP8NaWjER31nMC1DSTMcouiP92BxO9MyPjw==","signatures":[{"sig":"MEUCIQCiyyBtE5HM1eKAEeQSq0lIuxtIT79kglgGKbD8z3bbOgIgdBlpNej7CGhNEScqk05PnmiXdjflrBjjaoFkTWCOHaU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":637294},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"517e20b8f76a0bd7c35840f660b711eb1f022ef1","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.9.0_1772460144083_0.11758989221473781","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"secretless-ai","version":"0.9.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.9.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"70b115757ac73be83f7aabff0433982bc809fafe","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.9.1.tgz","fileCount":187,"integrity":"sha512-+sMka+IJ63PHqIE075icNjfqoQfZNurgKdoJlTwM8+EaYVh1HMINp8+KJa129p1JPtmkmS7IgaBG0vnWrxrG3A==","signatures":[{"sig":"MEYCIQCUMV3uu/FjZR1h0gghnAd4QpueS8NGAuhL+kMxfVVLUAIhAKlSL6V6O3oQ5f04Aq0FZkt7u3G2LK//stWAJ9dUAkd8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":669842},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"780a465194cbd3170ac19a5058a1ca54bf208fdb","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.9.1_1772461542178_0.5139104479047605","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"secretless-ai","version":"0.9.2","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.9.2","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"9b355759d1afdab2785f681ca1c22672534d7127","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.9.2.tgz","fileCount":187,"integrity":"sha512-54Soht5SBRIfkk9+xmkBD7Qo3eu9h1MRR+JO4FfWnycJhn8xyd//6520D6bDOHzia4efNHYf48YnPk9NmYqDvQ==","signatures":[{"sig":"MEYCIQCJhbrAOjycBJuJr1/ia33tNRAIc6A1gKknf3n2UVmy2gIhAMSSucE81FFZPlZNlQMxJ46LhATGG42cmQ8GTxzHriB1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":681410},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"09ed6f45bb07d34d8e6587ed15d974ec4e12262b","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.9.2_1772485469331_0.28231861953923554","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"secretless-ai","version":"0.10.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.10.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"03cb2c8ef6fac14c01c04905d773f8423f6d7f9d","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.10.0.tgz","fileCount":211,"integrity":"sha512-tP7BCqjS+4AtrjE+ZYBM76jGVAfbxE+fYBK9U8qyZO8FoOvIIk94fDJYMUfYJBqKrita8nLh+2eVi3jWoRfkyA==","signatures":[{"sig":"MEUCIQCz7WliNPssNpDfsu4tVfHj9omNK5mhiRxkHtPIMD8vDAIgHtpl6ABpwVZ13TEE28GrZfkq/AMyBnSF/WwEKQ1N0x0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":769506},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"6d7b54f74263d0ced1b8e413e370c481363ea2cd","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.10.0_1772491294203_0.23156511535979618","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"secretless-ai","version":"0.10.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.10.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"786a93d01c4fa79e26176ce2030a0272264d8f70","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.10.1.tgz","fileCount":219,"integrity":"sha512-QzGRnIMRGEqcPBrG0cSKwZjJnYE7UCK9vTdr9RXn0jjQcYxQFEoJjsKUX5dXb6P/MjtOx8MxBUHv/BuZKmYatg==","signatures":[{"sig":"MEUCIBuZujC1XhmOlCsMxBznCRvxv7ULr6BNseYsxpKFI407AiEAh7MQwM8IEbdoe7qdK00E8q1D0GqyNmnr1XTO8EXiFUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":835052},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"774538c6e4d9720d4e3868bc011292251e5d3dc1","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.10.1_1772594223465_0.36705022869553994","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"secretless-ai","version":"0.10.2","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.10.2","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"74267e917101e5053e26493ea94c382cf2e634ff","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.10.2.tgz","fileCount":219,"integrity":"sha512-h12Gxh79rx7kgGoe2kSNvOy0kdk5wXeY9/lu/w98FrAn3sluCTyzxTSYUXAPTr8OE5s237PwC665SGFGJPyXiw==","signatures":[{"sig":"MEYCIQC85GcYz1PuDzUgw0/tcieSN98VR7cgnmAIExifwBCE3wIhAPg677pDTf39OdteRQh6xCJWiUlDN6LgIeDWCXblfgzw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":835077},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"588d6eed9fb8f4b74dd90051875168617f9bbac1","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.10.2_1772596936912_0.04466329785251433","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"secretless-ai","version":"0.11.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.11.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"a32069d1cf925c2583900fb240b7b270f1765ff8","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.11.0.tgz","fileCount":259,"integrity":"sha512-gBR0YHrGojGP+eXLfIh6bkLPripT1z7SfK/XOW5OKE1VckOxZ9Ed36TgrmeFIcHVgxuu8AvqT5ZJxF3VOCscaA==","signatures":[{"sig":"MEYCIQCAothCvZIXbmkPaOwlETpyRBXG6nPE2nAwnh3nU/NrlgIhAMutD0Tii8/p7fyWGhMlOoJFDWHogicxY5/53W/PyNst","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":964887},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"aff19b253f80e697e745b66bd6d78ee8b1ed3695","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.11.0_1772644279646_0.11364424456342537","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"secretless-ai","version":"0.11.2","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.11.2","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"44dcd476231352a38269e4effec3d109983aba98","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.11.2.tgz","fileCount":259,"integrity":"sha512-55TKyEm0I7vi/29bIRCwWdFN8zOB/jqDDoIZ0+upXjgiRY28DRGCnGCAOZleEwRoMZ8JOCFmLgTX+RiSl3jseA==","signatures":[{"sig":"MEUCIQDzSyjWbCmcvNR8KPUfstzgeRyo3LlpSPz1TPfSxcNp+wIgNhyPKbBWlMoX8456zX6khEGut/sTtZG3uHa1Ubc5cgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":966360},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c3ba4ca81b13b305e0ed1e21f903c15d006003f8","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.11.2_1772722470744_0.02663871402373319","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"secretless-ai","version":"0.11.3","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.11.3","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"a772353473cc9e49ef485bba991230f5497e6900","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.11.3.tgz","fileCount":259,"integrity":"sha512-8Qjedb4ugI4VLI16FD+WuPq2AwKxlPUGuihLH5QuoHOUlspJI9PqI6f7gK9WShUMW+mqrl2SCLW+XkkTfskTvQ==","signatures":[{"sig":"MEQCIHJdKkWP1D4GYy/GERwFh0301f0OJvMaw3AVCx/l14PAAiBwl89rKn3NxUxeBbs5hPGIY4s9UXJpc3Z+BfQcfjaMIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":967375},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"75679e1845f51315265029b6f36fe98c0effb619","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.11.3_1772723116394_0.5904888142497295","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"name":"secretless-ai","version":"0.11.4","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.11.4","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"1ef0d6a8abd3fea3bbabda7c50b08d9fd60a0ebd","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.11.4.tgz","fileCount":259,"integrity":"sha512-+G/ExDWqmnrdS1R15ZjefeooaqCaEGdYblieHWZFIm97nmHi+gc9gxBObCPtxK8GHQbnya69rYAUV4KL+3Sg1Q==","signatures":[{"sig":"MEQCIEdRh6nwF9Fwuyat0Pa47CxUCwxcCs34i9zrHWOWnsvDAiBS2kuX2FkM8IVe4hg08kr4EizV60h9074DRuTDJgkxTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":969527},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"48d3c2c8f04b618e4d63790bcec7ad45b4de63f4","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.11.4_1772724216593_0.161561387730784","host":"s3://npm-registry-packages-npm-production"}},"0.11.5":{"name":"secretless-ai","version":"0.11.5","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.11.5","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"7fa4a82983859afa6362435d98aed563b23c5cf7","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.11.5.tgz","fileCount":263,"integrity":"sha512-ldWQW2yHUiMA/Tdi1bve7h6F98P+V40d2Kf9F1MP3sqr7fpDVcLCoZuGQkH3jKmNW2oFD5vGw31PmHH0rspVlw==","signatures":[{"sig":"MEUCIQCG6DG9umuS35BjnZRUz06140pHoT4u2n7Tnab7sFI+tQIgQnVYq4MpRhySi62Wzoq2Y2tRgpTqSHv/w/is39yaUBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1020207},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"15e2674ec896cbfe6971bc64b0c411b1298840f5","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.11.5_1773284222700_0.9218090919376802","host":"s3://npm-registry-packages-npm-production"}},"0.11.6":{"name":"secretless-ai","version":"0.11.6","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.11.6","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"b2f61001ba439eba8525ca4642158de37e306e79","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.11.6.tgz","fileCount":263,"integrity":"sha512-GlqFc51sU55mFoazKWrf95L5AgYJyM2hieW52rPrFvalsjxZo09+jIGgTUNjOrjYboxT6Ne+ZE18yPTxidHhUg==","signatures":[{"sig":"MEQCIBihh31WCpz1TLK+dXtumfpnxo6xQbrJMajmmd/aMEuNAiAdma4jXj2UEIg69HvKI39L4XFVu8UXRQolJVg9IOTkoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1020423},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"eeded5bce98d41d18074a1319907be3e5f71ea10","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.11.6_1773287132350_0.882297545742504","host":"s3://npm-registry-packages-npm-production"}},"0.11.7":{"name":"secretless-ai","version":"0.11.7","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.11.7","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"63ee50643a04bb313588c894a733e5cf1fb6b7f1","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.11.7.tgz","fileCount":263,"integrity":"sha512-8kAudI4sAUdBzOEi7N1f9petA83q2erkymwa0vnoFnV4piXB064DSZJbmSwR8qIJM6uW+TG4M3vPtIBJNdp0bQ==","signatures":[{"sig":"MEYCIQDswa9pHgDMpS30gg5cII38yRnbw4eolj8CGQewQ8PQEAIhALHfXEWlyRqvWCUt/OlrD2Lb/HslpWaQXrBrsQQHBay0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1025358},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"101627034742817a9ae9bc10580e4a379d3c2096","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.11.7_1773289790612_0.9705942709802673","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"secretless-ai","version":"0.12.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.12.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"1fc23b7453cd5f71490cd2a0c41da6e227575bed","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.12.0.tgz","fileCount":267,"integrity":"sha512-FUDs0vtli1d3W+ndyv9CLgWrHJ0sUKp/ktAWou/Q6u5btZXP8dlKDuYUz/yi/MmMVCZC0g9qsURvn/rljcTp+A==","signatures":[{"sig":"MEUCIF0rnrOzB2uYUuhKUneIREL2QynmGtHQ3PPAbxAQqSr7AiEAyO1WqjAqt1OpkIqNZh3N9z1anTuoofbuouvg0eu/Sbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1056663},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8416f2212765193df7adf6ce72f1b33803b873c7","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.12.0_1773290468212_0.9131642130140711","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"secretless-ai","version":"0.12.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.12.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"6f5dd2293e47efe243a4a9e680d3bac928b6337b","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.12.1.tgz","fileCount":267,"integrity":"sha512-09DdjQjpWW0s0FgQNngSxlz0gVmMqbK+cjd+PHYp4Xv+CBg14EYalCnFmtc4ZfTRoR3038KTN7+Z73hhsbdjLA==","signatures":[{"sig":"MEUCICISwJuDT/VAi8Upi8+LOaad9CY5FUbpkPvlsrjt8B40AiEA7bL/mkD+UNayVW+NcsnHE4kmyFmTGjNtDlBfeQLIcI4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1059930},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1604a897d844515ee7962a6b45f49acfce3a1f62","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.12.1_1773291397716_0.0016566871433116859","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"secretless-ai","version":"0.12.2","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.12.2","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"46bb78e8c367922a8cd7537f8ddd3c7195ae174d","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.12.2.tgz","fileCount":267,"integrity":"sha512-dYHQfm9algzLP6N2vDeo8kCtRYGuT/Kgi028dYyLCRYOS9DKNDYu/6fI6BSICLXJ5cWeu1W10E+WYNkLibp/Zg==","signatures":[{"sig":"MEUCIDy9HMn51Ea3H59GD846DPZVHk9nc0JRAg1vcJhuXIniAiEA2poiTuiP75ZOUGc6vcTbFFMz4nwPfxLR73boPB0CysA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1063748},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bc435d1e16b952d67b4e9089816258ed1bcf25ab","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.12.2_1773293127246_0.2294309903290428","host":"s3://npm-registry-packages-npm-production"}},"0.12.3":{"name":"secretless-ai","version":"0.12.3","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.12.3","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"d69af55f96cbdf71f7db6ecc57836df271d3b9f0","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.12.3.tgz","fileCount":267,"integrity":"sha512-JEqvNU0tpIq8m3CzDnJIN/D22MhMDcqbedMV5GWMgoStlKICIRp0YAU0yjan398V8jWaAdf6sapyJnbyrrj6BQ==","signatures":[{"sig":"MEUCIFiPnLGlvPoMLkfvL2KxVL8g3Q/ofBZGie3VE3q7JMffAiEA5nvHCO3obLOlcbcuyRvWBVVIOM44HE6imzMMsET3ebg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1093537},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"5abea23ed8d482ccfc08d01e7544a9b9b900328e","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.12.3_1773297465703_0.3714648519311279","host":"s3://npm-registry-packages-npm-production"}},"0.12.4":{"name":"secretless-ai","version":"0.12.4","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.12.4","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"53e077a7883ad340827280473ee75285b1f01daa","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.12.4.tgz","fileCount":267,"integrity":"sha512-MT2irRJ+nGuFUlPgAekacFJ/qqON17Dbjw6MTysRHR1QaYTSbVe+XZJX+r2D9HhxwsA+tKa/AikFF5s72z4JHQ==","signatures":[{"sig":"MEQCIDMbxVr+CNw9I2fhGYR9zp4pnv9f+kRGUvmE2TBOsagVAiBvioojZyycr9TG7Y4johLLkkMNwBWhvNPPa6LZROHH9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1093786},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ef91d4917179144b181a8490f92c0a5cabb54c1e","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.12.4_1773502167428_0.836132407598627","host":"s3://npm-registry-packages-npm-production"}},"0.12.5":{"name":"secretless-ai","version":"0.12.5","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.12.5","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"2852de4ffa76fe9f14d1a15cf1b3491e2a496a74","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.12.5.tgz","fileCount":267,"integrity":"sha512-zDSFxF6v3biGAU8qgkfn8cNxJSEaJrTYu5XwLvIO3SJQzJSYghimU0WA46lMqLKrOe4oLxt3TODZjKIDLB2Ayw==","signatures":[{"sig":"MEYCIQDnGB3teqS+w5uE7IUujJMXe2r95WJsRfk5xsQQYtkgKQIhAK3Ep+noD/VPg0NxlnS4u35/raWml6u9MeOETTq8gxNF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1083537},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"aa2ca774a29032516bb908192e347dd355a6fc39","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.12.5_1773849471582_0.9326825272838024","host":"s3://npm-registry-packages-npm-production"}},"0.12.6":{"name":"secretless-ai","version":"0.12.6","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.12.6","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"6a84a91278c802deddc510f89f21ca9128555aac","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.12.6.tgz","fileCount":267,"integrity":"sha512-tx3c/vOo8IH3ETLeIARNMudFBtBCdHqzsdotwgxxtPMuBETjUnTloIZSPQ5R2zGrp2Ymk7axqn9v2SMHnla6KA==","signatures":[{"sig":"MEQCIFxpJfUP5bRTwpvtYyerIvtbm63cLM2O3norl9b3ShDlAiB+0pYWDWzMKG4sM0wZfIHHuz4XP8clQcdsF0iDIpNXeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1071323},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9ac8c91cab9048bf20295a8d3ebd338dd3231567","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^25.2.3"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.12.6_1774460740277_0.12829146085811693","host":"s3://npm-registry-packages-npm-production"}},"0.12.7":{"name":"secretless-ai","version":"0.12.7","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.12.7","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"7473acb50e28c0490b688d6ff73d4e0d4f13be0d","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.12.7.tgz","fileCount":315,"integrity":"sha512-jddQ0nw2b8ZrLo/6kdbhVLMDQ5LNelrGdofbeOOPU+qgOLQHEYIhiep3xTiDX8cZtiLw8YhnH96znduQs5xYUw==","signatures":[{"sig":"MEUCIFiuixUIWFG+xxtWmkT44XepANclZ3TADpOmP22amkMfAiEA6xbKuYJTHG+jcf90jMGLKAmZPCXqATN4RNTDDeIUSnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1100244},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"0fe32fb9c22b61d56001bf49e00f4bf40f92121d","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.9","typescript":"^5.9.3","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.12.7_1775069114346_0.7022407691214778","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"secretless-ai","version":"0.13.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.13.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"3a75cfac6424f49981b97ff7f6e0fb43e30d5c6b","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.13.0.tgz","fileCount":319,"integrity":"sha512-dk0+wwYVzssRylfH9SJ/ubED54yaFjA2ehZ103PpahGxCWeDVbAEpmCuEYf/Z15bG1/xx96wIQODFtwQU75p+Q==","signatures":[{"sig":"MEQCIDoJTqbuLyc17kSQDTlXCrKQ/mEcGAG3AcSUe7GCHM5oAiBP7kFCHiazXk+dE9xgwZAnGRsz/uJBucxd9cgzUcmATw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1108757},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c1e9ca7d6bfcd4c671aa0a66d24a4756be04370f","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.13.0_1775069773199_0.18256935347589365","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"secretless-ai","version":"0.14.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.14.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"5ea70838c09cd4be32f2ba1236b2461c9a903666","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.14.0.tgz","fileCount":323,"integrity":"sha512-XWG8U1VecLN6EFBkfdwj2J1fMLtYFCf+JEHEaazJirypb9EH84K1k+/fypoehRBXr3lX38b4UKRHyYymNGUcWw==","signatures":[{"sig":"MEQCIGlkbRdOo2AwFPLw09Mz+46hxtecNqUzzeh1cudeNagyAiBN9ENNfGUqITWHGeCOXukXTrjj7FTykVMx43yrxfysCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1125917},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c971180a3a96b9984b8a763845968833a4dc04cd","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.9.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.14.0_1775071954700_0.6145980550434491","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"secretless-ai","version":"0.14.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.14.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"763b4958f1447acc35a191033d7a9a9d7c766549","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.14.1.tgz","fileCount":327,"integrity":"sha512-4cMxYe3z5VdhLmsTAitCVmymzq3mA10qtIhe2UB2ke1zI9r0+cISBV1S1ILtSNooXJnAJFi9pf6sQ293kueMZA==","signatures":[{"sig":"MEYCIQC2g2nhFRZeBk8S+NMWg7mXq6L6UuwxadtHLyqFn6jUWQIhALBcgNpnVoJ9ypYodMRlsdE60LLfsG8CzKJHkxf+8xaU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1134075},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d477734f95ed9c957bc10035d7666d7516b3d3fe","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.11.1","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.14.1_1775973156935_0.4384076617911761","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"secretless-ai","version":"0.15.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.15.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"bdc4fe5ca78093fba9ce22b661e0bb5ab60b0883","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.15.0.tgz","fileCount":335,"integrity":"sha512-yrMP6PzAUYch/zo+JxBttysIvlPn7QjtuaVsVr9WJ9FpU/TLnKtRwwYsDgVGLS7K6mRerN1vQwTNVeK8p6HJdQ==","signatures":[{"sig":"MEQCIA00bgRpyzbptZq3eweU9cm6qSlIHEXcMGripNnTV8SCAiA7no6FrLMk+A8xCpNaC/zAIXhzqAR0zNLuQp4HJ0R7sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1231041},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8f8c2b81419bd4560f65aa89e36f1459078df463","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ecolibria","email":"abdelsyfane@gmail.com"},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.11.1","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.15.0_1776215162024_0.33538903210351245","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"secretless-ai","version":"0.15.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.15.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"3e5f0fe31245c34742f766b209cf9d24a82a11ae","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.15.1.tgz","fileCount":335,"integrity":"sha512-sqh9VK/7mRdV/TNwlQcZkIIjeUTjFaHHPMZRKSmfhmDu/GdTCKfryq43bdMuO8jO53pKj98HEQBb5gRHm2SH2A==","signatures":[{"sig":"MEUCIAZ8FWhuI0+NOtermXw9RUSUEa8pFncC2HtrWn97vlMyAiEAnPeB5Ieyl52KZW1EW8EGaxeV4hzLTtsFMrLC79uTFsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1231041},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"13c6bbce8655602ce093543fae5d47031272a84a","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.12.1","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.15.1_1776890018515_0.1303612794971536","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"secretless-ai","version":"0.16.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.16.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"f3612a10b7bc2df987c5fedb16110b455e974faa","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.16.1.tgz","fileCount":335,"integrity":"sha512-ChUhT0CXByCzYDWhRYzll6Zh41f0+ZqBcXqhyPIaX2fdIC4ngZ44ghAeTMdjWcJEOCvEdXk/OpNnvhPZHr9i/w==","signatures":[{"sig":"MEUCIEIzCe8Kxfw5D6F/qdzjvWGPKibAIn40rg7gz9MqCgXiAiEA9BWeNqHXjtI4DT0oid41wVanFFIkf+t4AhsPUG4SxBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1234054},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e719a92b74c60dfdfebcfb1c1e58269245d1744a","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.11.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.16.1_1777415918321_0.263614607568071","host":"s3://npm-registry-packages-npm-production"}},"0.16.2":{"name":"secretless-ai","version":"0.16.2","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.16.2","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"2c5913fa167e46813a8f1fcb4cff212f29515e4f","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.16.2.tgz","fileCount":335,"integrity":"sha512-WsiR5uHg2dL9pNH6EA4pHCNR/MMnfZOmhWi7Qgwl4gYIsGDuiBs3KKIV7VGQKTPceb+B7f1DsszIUtAMQpJPMA==","signatures":[{"sig":"MEUCIQCu3HjBcU47nv5FPqbJMdhiZLtkq7edlK5ZItHB3PdeugIgdqaXCGca7bXu6LBWRm08U8GrEa+ZAVnBYu0/cgajoKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.16.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1243685},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"460e1d646c48198940b7ed1ea3503d61113cbf18","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.11.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.16.2_1777417232720_0.3633151444207745","host":"s3://npm-registry-packages-npm-production"}},"0.16.3":{"name":"secretless-ai","version":"0.16.3","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.16.3","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"0fcbd91e99f12fdc4fe5963ab9619ec3a52458e2","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.16.3.tgz","fileCount":335,"integrity":"sha512-kIjdwK35ZJ8zPJ0KNKdVXGgyDSvOM+hZ4pq4QXdNH7QrN2QJ4VKd11hGj06IplLaVFcLIHVGGIHSO+zFQ0hsSg==","signatures":[{"sig":"MEYCIQDyxynal4AJnaWYX8JgTlajehIrdzz9OPlT8QuHpEm8YQIhAOAV112+NUM+dmY2wn3Zjvr4d0yG459lBuKi4SBdFKWo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.16.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1243730},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"dd4dc52f86b44d03d4bcdaf11042f2a27928a699","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.11.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/credential-patterns":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.16.3_1777478272289_0.13648487931297693","host":"s3://npm-registry-packages-npm-production"}},"0.16.4":{"name":"secretless-ai","version":"0.16.4","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.16.4","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"f549fdf7eea4877d08357ee415dadbc876e52ae2","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.16.4.tgz","fileCount":343,"integrity":"sha512-Vi4ChEITVAtDdR7/b3KzetXivz9TADjirYxKFK8BrVgpShbCVIPBNpMekXPphdBBPuwHkYh+Hc/gw82pkawXzw==","signatures":[{"sig":"MEUCIBJuiVAj0XoEoy8PBkBh3ohjKfa01AeDGkWFXmdq8A18AiEAlQlVE192p2KMf0YVR3S/RPeFdGhna4BJXbEZvUXYARE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.16.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1283813},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1b48d6b2fd10e9dbc765e1bb7b8be4a785182af6","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.11.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/credential-patterns":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.16.4_1777495132956_0.6906804169635683","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"secretless-ai","version":"0.17.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.17.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"57cecad89bd98c767af2d34b2b37b1bc1c84bd76","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.17.0.tgz","fileCount":355,"integrity":"sha512-6kU/FcdUTZP9J1L0mjMkozZFkHZw3W/JwKwHf/YX/Sj2QvrAXdqrEQ3QhOx6WCBJO5zsQEDeYRWuZq16dWFXcA==","signatures":[{"sig":"MEUCIQDbOQkU6Db/3waJbIf2/jlpaIthPEFkxFosMX/BS6zcJAIge44ZO9/lZaLT3kwg0rSnQlXM7Fzb3BsmFZBmTQO8woE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1347819},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"179b7a74d38cae155a22a14e762d44a9fbe28f13","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.11.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/credential-patterns":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.17.0_1777585423322_0.6670851756698704","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"secretless-ai","version":"0.17.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.17.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"62b1f8f9dbb45435979e3d73c4d466284d35ccc9","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.17.1.tgz","fileCount":355,"integrity":"sha512-ChiGfmWl9Ib+KidT/e9aawEwrue8l06oQeGlI3V58/exfXkfmUUvbMb5Goge8w4RyDN37CRKUK+bpXSZA8i8oA==","signatures":[{"sig":"MEQCIEaNzuOmlK7nsy9H0Tl42qF7RCpG1FhuHOrBHXXPn8uYAiAGm+JOQ5DMnj9fTvWRPe7VNzyPQFu70OC4sCxEXKpiPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1350714},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c3fbd2735ed7ffbf3377233f857deabe209d2774","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.11.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/credential-patterns":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.17.1_1778592939274_0.8050587454628995","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"secretless-ai","version":"0.18.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.18.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"fc383826ba88848bbde46e6641b3f0020c6ebb0d","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.18.0.tgz","fileCount":411,"integrity":"sha512-oq3fPbLjcBnv5jLIgkrX2uAEjaFIDxPLvZBvsRisIUniQgDlKHsgPi3xHoBXc8VGJKpSElu4LXN/+BKHHZ+eHw==","signatures":[{"sig":"MEQCIA4wGcm1HhbE2RcqhI6eC96Qi9dZZ1qpzQ7h5DX67oK+AiAzDiSfuXfGV2D1lqwjV5kImGDad94FjyfRspRboz7PzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1519070},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"898b015ffdfecd2f7165a2107db4431727b4deda","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.13.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"canonicalize":"2.1.0","@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/credential-patterns":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.18.0_1780368365405_0.13659453341994054","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"secretless-ai","version":"0.18.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.18.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"9355752c36a1dcc736ee7041ef15df82f9b09638","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.18.1.tgz","fileCount":411,"integrity":"sha512-xc0vaInf7hmp/g8tO3JQMz17rBIb7y/nsMzVXqvcPWwgA+qPFw+k3UFOmz94QdjTDA8r22iFyfJ6q67qY4DlYA==","signatures":[{"sig":"MEUCIQDyKKLaqwoqLj0JEz6XxMvDlt4QzjMTihChTvVY/6Y05wIgC3b5eol+qfm/5lGb3smGS004gbMnScpUcLFU9eB8OMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1523422},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"cb446007938545cf331db3f57ea8894d58a85359","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.13.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"canonicalize":"2.1.0","@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/credential-patterns":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.18.1_1780371619983_0.6124452009558081","host":"s3://npm-registry-packages-npm-production"}},"0.18.2":{"name":"secretless-ai","version":"0.18.2","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.18.2","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"da28f7c5f75e425275538a3c5529b7b861282838","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.18.2.tgz","fileCount":411,"integrity":"sha512-mMPLgpSLwIQkrQMTYtXxytBfHJ1m6SIXsIvFfiaikH4ZHCjuAaCMDTnr6FKYiEZq+SZMy1Mhq9yBpiri5i8G2Q==","signatures":[{"sig":"MEQCIFpQ8C/my11cinv59mCzI/+JZlr++Hr6D9gJRQPPsWveAiATKSX7BB0Ba56ty7BswS2NYksd/nAGH3KRuVqB0sYxnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.18.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1532274},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a957df4ca83f13547493fa941e090702d578f0b4","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.13.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"canonicalize":"2.1.0","@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/credential-patterns":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.18.2_1780379537736_0.0483566622323337","host":"s3://npm-registry-packages-npm-production"}},"0.18.3":{"name":"secretless-ai","version":"0.18.3","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.18.3","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"3a09a0162823d7a5e641aa9a0f34ad62f9e30b2e","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.18.3.tgz","fileCount":411,"integrity":"sha512-ScWaL2y5fwhWUwqhC4xsVDObbwepwCWgu4Uf+z1fCKOgyxjjvSzZM/DRen3p48a1fXgWLFKTYtr4coDFCe/lwQ==","signatures":[{"sig":"MEUCIBoFELEKJNCUwTRXvSms4PIxOGRFOy2DTTdNP2g3jqO8AiEA5QBqE52cM7fKo7jYZNlaCgkWEe/8I09vu7PbXVQYGFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.18.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1533955},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3133003834c38ad1bfc249633d78baaf62593120","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.13.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"canonicalize":"2.1.0","@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/credential-patterns":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.18.3_1780928855023_0.6858467389773442","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"secretless-ai","version":"0.19.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.19.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"3d747e24eec0e3ac848f88984981c10e16ae0b27","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.19.0.tgz","fileCount":407,"integrity":"sha512-FBKT4kUR7zhvYQnMPp/NRK5aYym91wbu9in9+9FQ+gJ4JAGBZm9W7GW//y6+Z3gjqBzOgBWpsIdLljGXaFhK5g==","signatures":[{"sig":"MEYCIQDhWD2kYnuoVkM5bspEmwXlXu3GAiC5dqp5UbM3OMCFFAIhALcnHsdeclXB/V6DP+HcM5JpWpnleugGWG4UwgxuvB9f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1524066},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d78a8e52c49d74e54fd7d93dc299e1f94e1988f1","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.16.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/atx-verify":"0.3.0","@opena2a/credential-patterns":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.19.0_1784226668692_0.40113034628168487","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"secretless-ai","version":"0.19.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.19.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"ef9b8b03439c271e871bb5aaf72eb179b5430a7c","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.19.1.tgz","fileCount":407,"integrity":"sha512-XtbpNqbgJWKJh1BGyj2izxJDZKM8BE1q92sWyh2tUMEevbssyYY3oqV7ylC0bvj/GmVR157978MA7oc0XkLWVw==","signatures":[{"sig":"MEYCIQDwzipDjRolGteXSe4KRD8LIxIEV68i8R50Ua+wCuEwGQIhAIMz0jdJzPDsiUsYsb5HlI81TdQ9GcwGtXhZVsQmM4Ad","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1526779},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d380aca57f06d0f2f5fdccc57764af95a75e85c6","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.16.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@opena2a/atx-verify":"0.3.0","@opena2a/credential-patterns":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.19.1_1784243159736_0.9136622799733469","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"secretless-ai","version":"0.20.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.20.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"d1402b3e315013d4de4131faaa8805642c9e431a","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.20.0.tgz","fileCount":407,"integrity":"sha512-yVS7Xnwn1x/DAglaM9AfGIUlsD5Bx36dPJuVBTJP1w5Yloos3sydJ6cOtz7GHqfQhq4DSGif6dwq0t5orJZLyA==","signatures":[{"sig":"MEQCIBQMerv0MXGhhClmbd9sgBuy96lZM6TRcAuL4xycHNX/AiBQSa275vmtnPp03aCLX7Km0YOSrqgjxD/pJvXt40EoEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1545832},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"b8d6e4a4c43b143d8f4ffcb2dd9e3a3c8d4705ff","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.16.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@noble/post-quantum":"0.6.1","@opena2a/atx-verify":"0.3.0","@opena2a/credential-patterns":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.20.0_1784755369171_0.2726215577806108","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"secretless-ai","version":"0.21.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.21.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"3c2b0404a9f98e0488061f015804fe7a03ed77ee","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.21.0.tgz","fileCount":407,"integrity":"sha512-qh/jrxGlpKvmDC5l5RE1YUu5zeCL4EgsuJzkU6ORV8kmUMpJ0g6svvS/fQOxkN86y5kqCYnI6dJik/DYDDRkAw==","signatures":[{"sig":"MEQCIES8rMxYUnBfk/hwlSNgOiLlXhBLE1JBMFy7zEs2D1poAiAUSQM6fs6W2VU4xRkKFlz+HiABcmw3Sk7msidxpbRfqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1582738},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"1f353ebb252f8aba048c44ff5a5c6cc240c9e6fe","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.16.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@noble/post-quantum":"0.6.1","@opena2a/atx-verify":"0.3.0","@opena2a/credential-patterns":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.21.0_1786016451853_0.7508736431813896","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"secretless-ai","version":"0.21.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.21.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"c865991336c60bb1ebb82d0239ce61b9886d05fc","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.21.1.tgz","fileCount":407,"integrity":"sha512-uBAU7pYk/nlgNC30Od9ohP/p9w9aN4lgtLb3RIYQ6s80Qa3fhPv2QdGv+U8SIGDjgHI7h2vMPOuagrM8FSVO8g==","signatures":[{"sig":"MEUCIFg2WNMPmolqb2c+AFZl54sjLph+rIkDhkehhlPgNvrHAiEAx4HEHlYDD0yNks5xp1iPCLSvRG+RCEf2K/QzTdfp0nQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.21.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1643686},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"2e1bc952a9042a932f62ffb7cb141d7ea80f9a42","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.16.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@noble/post-quantum":"0.6.1","@opena2a/atx-verify":"0.3.0","@opena2a/credential-patterns":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.21.1_1786026235490_0.14590541389587353","host":"s3://npm-registry-packages-npm-production"}},"0.21.2":{"name":"secretless-ai","version":"0.21.2","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.21.2","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"f41b4312011b0eec69e8024acbda273e1eb08f4c","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.21.2.tgz","fileCount":407,"integrity":"sha512-5tUlj5ywMZ/SoJkf9p46ufNwhVjApPaz1AVSjt+uUoEGqsOFF7NIq0wL9u6IeG7cZn+POEqexTKbzcmp/8POPg==","signatures":[{"sig":"MEYCIQCALd7SY0zH98kziLV3y1MXzMjyave7PfHNziRf4m7PwAIhAPRhuJnPP+u18wcmYIkrHT9ByD3AtjGLdWFYZ62+ZA8v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.21.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1686176},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"2d053ab8e6748daf6fdb951603f4d3ed7d5a2181","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.17.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@noble/post-quantum":"0.6.1","@opena2a/atx-verify":"0.3.0","@opena2a/credential-patterns":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.21.2_1786062413312_0.029924272626069115","host":"s3://npm-registry-packages-npm-production"}},"0.21.3":{"name":"secretless-ai","version":"0.21.3","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.21.3","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"35cada1631c0e6a9ae1ec69ec4a949d451893ae9","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.21.3.tgz","fileCount":407,"integrity":"sha512-Sr1peUTBVG5YGb0l62RqUVsOKIGtLtXHnf6ZzWXNZ419Vf/rZ6r+pwjk6FIACwhtLjuzqB4oJ+FPljpqfX4J7A==","signatures":[{"sig":"MEYCIQCs4qTn/4HvdYQxV7giTkdybNGDS8WuzOSeQ8dxzHmovgIhAO4RKWnALaEsfHUIS1E/KJijE4sVAZ0Qmr1gkxT4/ZHZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.21.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1719211},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"db565e92af5357a8c2d5651f8da79b506a86c915","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.17.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@noble/post-quantum":"0.6.1","@opena2a/atx-verify":"0.3.0","@opena2a/credential-patterns":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.21.3_1786482609641_0.17682773948857","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"secretless-ai","version":"0.22.0","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.22.0","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"753e302d526426c6982b96235d0600e68f4f782f","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.22.0.tgz","fileCount":419,"integrity":"sha512-b+aac+81q3D+qCtQB6JYJ3ZeFbo3f3zthONCe1vvOyREm/Yk0vHnwsoTcxEheiMkPhUv0rr7S68VCLcuofFglQ==","signatures":[{"sig":"MEUCIQC9rkMUoj81AxKtqYr8gKxifnEYKWWW2dAklKa4RdCCwwIgIvTKlOxuvjJxXYhd7xlqVNy3Ln2dR4DT8Q7e9zFxjnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1773146},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"204037270ef17d4c512f6dedd5ec2e80040509e3","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.17.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@noble/post-quantum":"0.6.1","@opena2a/atx-verify":"0.3.0","@opena2a/credential-patterns":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.22.0_1786552751724_0.8960731928694197","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"secretless-ai","version":"0.22.1","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"license":"Apache-2.0","_id":"secretless-ai@0.22.1","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"homepage":"https://github.com/opena2a-org/secretless-ai","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"dist":{"shasum":"5e2a63930498eef86fd0d3fc7cb77f874b4e17c0","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.22.1.tgz","fileCount":427,"integrity":"sha512-vQZlYjMifzzjdAWfke5a2OFJL2vvAZ73T3cWVPtsHJ3aLt66ISkXZtFzNPzx7aGN4kQm+J2yoUDKo5BRwRuFvw==","signatures":[{"sig":"MEUCIQCjmxdPgHotf/A1gxp/ug3KtsYuLyxFQyyN2thtyuCHkgIgUnXYVeWf0qAJCVwyGK3HsynbIri374H40HfrJrOVdYQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.22.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1842470},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"c33a635b06b17cd50d13b6cf23fca6ff86d31b17","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"repository":{"url":"git+https://github.com/opena2a-org/secretless-ai.git","type":"git"},"_npmVersion":"11.16.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opena2a/cli-ui":"0.4.0","@opena2a/telemetry":"0.1.2","@noble/post-quantum":"0.6.1","@opena2a/atx-verify":"0.3.0","@opena2a/credential-patterns":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"optionalDependencies":{"@nanomind/guard":"^0.1.1","@nanomind/engine":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/secretless-ai_0.22.1_1786589615156_0.41839262200118266","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"secretless-ai","version":"0.23.0","description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","license":"Apache-2.0","type":"commonjs","main":"dist/index.js","types":"dist/index.d.ts","bin":{"secretless-ai":"dist/cli.js","secretless-mcp":"dist/mcp-wrapper.js"},"scripts":{"build":"tsc","test":"vitest run","dev":"tsc --watch","clean":"rm -rf dist","prepublishOnly":"npm run build && npm test"},"keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"repository":{"type":"git","url":"git+https://github.com/opena2a-org/secretless-ai.git"},"homepage":"https://github.com/opena2a-org/secretless-ai","engines":{"node":">=20.19.0"},"devDependencies":{"@types/node":"^25.5.0","typescript":"^6.0.2","vitest":"^4.1.2"},"optionalDependencies":{"@nanomind/engine":"^0.1.1","@nanomind/guard":"^0.1.1","@opena2a/aim-core":">=0.2.0"},"dependencies":{"@noble/post-quantum":"0.6.1","@opena2a/atx-verify":"0.3.0","@opena2a/cli-ui":"0.4.0","@opena2a/credential-patterns":"0.1.3","@opena2a/telemetry":"0.1.2"},"gitHead":"6e3de1babf49d797e20dcd3cffb2433ff5fe3fb4","_id":"secretless-ai@0.23.0","bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-YDvhMgPqBXAGxOo4n43WdUmBPPTp4zMGgxHwaq/tdtj3jomUYCelYkwdXABjDNe/uInjqH7MODioMImRRxJn+w==","shasum":"bf7903f53de55610aa2a241ae7658fb17624871f","tarball":"https://registry.npmjs.org/secretless-ai/-/secretless-ai-0.23.0.tgz","fileCount":427,"unpackedSize":1887293,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/secretless-ai@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDh/M7KbM7BMSsl3/Bpner6c3gKeCOD8BHA76uexDpwqAIhAKnr74IgrOwbef6N6N8KQyZYYknbT/RkK4al52K7xj4U"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6886c6ed-88f8-43bb-bb62-f9a0c9bfed3f"}},"directories":{},"maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secretless-ai_0.23.0_1787177757909_0.11767116907914787"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-09T17:40:33.585Z","modified":"2026-08-19T22:15:58.425Z","0.3.0":"2026-02-09T17:40:33.744Z","0.3.1":"2026-02-10T03:37:23.694Z","0.4.0":"2026-02-10T16:53:57.588Z","0.5.0":"2026-02-10T17:47:35.197Z","0.6.0":"2026-02-10T19:44:11.382Z","0.6.1":"2026-02-10T23:21:59.456Z","0.6.2":"2026-02-18T05:03:11.347Z","0.7.0":"2026-02-18T20:45:24.798Z","0.7.1":"2026-02-18T20:52:17.072Z","0.8.0":"2026-02-23T16:47:20.164Z","0.8.1":"2026-02-26T22:08:45.954Z","0.8.2":"2026-02-27T15:31:37.405Z","0.9.0":"2026-03-02T14:02:24.246Z","0.9.1":"2026-03-02T14:25:42.424Z","0.9.2":"2026-03-02T21:04:29.556Z","0.10.0":"2026-03-02T22:41:34.367Z","0.10.1":"2026-03-04T03:17:03.673Z","0.10.2":"2026-03-04T04:02:17.099Z","0.11.0":"2026-03-04T17:11:19.928Z","0.11.2":"2026-03-05T14:54:30.922Z","0.11.3":"2026-03-05T15:05:16.642Z","0.11.4":"2026-03-05T15:23:36.748Z","0.11.5":"2026-03-12T02:57:02.956Z","0.11.6":"2026-03-12T03:45:32.500Z","0.11.7":"2026-03-12T04:29:50.827Z","0.12.0":"2026-03-12T04:41:08.442Z","0.12.1":"2026-03-12T04:56:37.892Z","0.12.2":"2026-03-12T05:25:27.415Z","0.12.3":"2026-03-12T06:37:45.888Z","0.12.4":"2026-03-14T15:29:27.590Z","0.12.5":"2026-03-18T15:57:51.732Z","0.12.6":"2026-03-25T17:45:40.491Z","0.12.7":"2026-04-01T18:45:14.564Z","0.13.0":"2026-04-01T18:56:13.487Z","0.14.0":"2026-04-01T19:32:34.915Z","0.14.1":"2026-04-12T05:52:37.102Z","0.15.0":"2026-04-15T01:06:02.213Z","0.15.1":"2026-04-22T20:33:38.722Z","0.16.1":"2026-04-28T22:38:38.535Z","0.16.2":"2026-04-28T23:00:32.890Z","0.16.3":"2026-04-29T15:57:52.458Z","0.16.4":"2026-04-29T20:38:53.144Z","0.17.0":"2026-04-30T21:43:43.495Z","0.17.1":"2026-05-12T13:35:39.524Z","0.18.0":"2026-06-02T02:46:05.722Z","0.18.1":"2026-06-02T03:40:20.137Z","0.18.2":"2026-06-02T05:52:17.896Z","0.18.3":"2026-06-08T14:27:35.252Z","0.19.0":"2026-07-16T18:31:08.905Z","0.19.1":"2026-07-16T23:05:59.914Z","0.20.0":"2026-07-22T21:22:49.395Z","0.21.0":"2026-08-06T11:40:52.047Z","0.21.1":"2026-08-06T14:23:55.647Z","0.21.2":"2026-08-07T00:26:53.496Z","0.21.3":"2026-08-11T21:10:09.869Z","0.22.0":"2026-08-12T16:39:11.887Z","0.22.1":"2026-08-13T02:53:35.338Z","0.23.0":"2026-08-19T22:15:58.097Z"},"bugs":{"url":"https://github.com/opena2a-org/secretless-ai/issues"},"license":"Apache-2.0","homepage":"https://github.com/opena2a-org/secretless-ai","keywords":["ai","secrets","credentials","security","claude","cursor","copilot","windsurf","cline","aider","mcp","mcp-security","mcp-secrets"],"repository":{"type":"git","url":"git+https://github.com/opena2a-org/secretless-ai.git"},"description":"One command to keep secrets out of AI. Works with Claude Code, Cursor, Copilot, Windsurf, and any AI coding tool.","maintainers":[{"name":"ecolibria","email":"abdelsyfane@gmail.com"}],"readme":"# secretless-ai\n\n[![Status: stable](https://img.shields.io/badge/status-stable-green)](./STATUS.md)\n\n> **[OpenA2A](https://github.com/opena2a-org/opena2a)**: [CLI](https://github.com/opena2a-org/opena2a) · [HackMyAgent](https://github.com/opena2a-org/hackmyagent) · [Secretless](https://github.com/opena2a-org/secretless-ai) · [AIM](https://github.com/opena2a-org/agent-identity-management) · [Browser Guard](https://github.com/opena2a-org/AI-BrowserGuard) · [DVAA](https://github.com/opena2a-org/damn-vulnerable-ai-agent)\n\nKeep API keys and other secrets invisible to AI coding tools. Works with Claude Code, Cursor, GitHub Copilot, Windsurf, Cline, and Aider. Apache 2.0.\n\n[![npm version](https://img.shields.io/npm/v/secretless-ai.svg)](https://www.npmjs.com/package/secretless-ai)\n[![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![CI](https://github.com/opena2a-org/secretless-ai/actions/workflows/ci.yml/badge.svg)](https://github.com/opena2a-org/secretless-ai/actions/workflows/ci.yml)\n\n[Website](https://opena2a.org/secretless) · [Demos](https://opena2a.org/demos) · [Discord](https://discord.gg/uRZa3KXgEn)\n\n## Quick start\n\n```bash\nnpx secretless-ai init\n```\n\n```\n  Secretless v0.23.0\n  Keeping secrets out of AI\n\n  Configured: Claude Code (1 of 1 detected)\n\n  Created:\n    + .claude/hooks/secretless-guard.sh\n    + CLAUDE.md\n\n  Modified:\n    ~ .claude/settings.json (added 96 deny patterns)\n\n  Next steps:\n    Verify: secretless-ai verify\n    Scan:   secretless-ai scan\n    Status: secretless-ai status\n```\n\n![Secretless AI Demo](docs/secretless-ai-demo.gif)\n\n## Install\n\n### npm\n\n```bash\nnpx secretless-ai init          # run once, no install\nnpm install -g secretless-ai    # install globally\n```\n\nRequires Node.js 20.19 or later.\n\n### Homebrew\n\n```bash\nbrew install opena2a-org/tap/secretless-ai\n```\n\n### From source\n\n```bash\ngit clone https://github.com/opena2a-org/secretless-ai.git\ncd secretless-ai\nnpm install\nnpm run build && npm test\nnode dist/cli.js verify\n```\n\n### Verifying what was installed\n\nEvery release publishes via npm Trusted Publishing with SLSA v1 provenance. No long-lived `NPM_TOKEN`. GitHub Actions exchanges its OIDC token with npm at publish time.\n\n```bash\nnpm view secretless-ai dist.attestations --json\n# Expects non-empty result with predicateType \"https://slsa.dev/provenance/v1\"\n```\n\nSecretless never reads or transmits credential values it manages. Backends (OS keychain, 1Password, HashiCorp Vault, GCP Secret Manager, AES-256-GCM encrypted file) decrypt on demand at subprocess spawn time. `secretless-ai verify` runs an integrity check of your local install.\n\n## How it works\n\n1. **Scans** your project for hardcoded credentials in config files and source code. 57 credential patterns from [`@opena2a/credential-patterns@0.1.3`](https://www.npmjs.com/package/@opena2a/credential-patterns), lockstep-asserted, across `.js`, `.ts`, `.py`, `.go`, `.java`, `.rb`, and more. Suppresses fixture-path false positives via `.secretlessignore` defaults (`test/`, `__tests__/`, `examples/`, `e2e/`, `docs/vhs/`, `node_modules/`, etc.).\n2. **Migrates** them to secure storage: OS keychain, 1Password, HashiCorp Vault, GCP Secret Manager, or AES-256-GCM encrypted file.\n3. **Blocks** AI tools from reading credential files. 18 file patterns enforced at the AI-tool hook layer.\n4. **Brokers** access through environment variables. Secrets never enter AI context.\n\n## Store secrets and use them in AI sessions\n\nMove keys out of files and into a storage backend, then use them by name. Values never enter AI context, transcripts, or shell history.\n\n```bash\nnpx secretless-ai secret set STRIPE_SECRET_KEY   # value read from stdin, never echoed\nnpx secretless-ai import .env                    # or migrate an existing .env in one step\nnpx secretless-ai secret list                    # names only, values are never printed\n```\n\n`secret set` also installs a shell hook (`eval \"$(secretless-ai env)\"` in `~/.zshenv` or `~/.bashrc`), so new terminals export stored secrets as environment variables automatically. To inject into a single command instead of the whole shell:\n\n```bash\nnpx secretless-ai run --only STRIPE_SECRET_KEY -- node charge.js\n```\n\nReading a value back is TTY-gated: `secret get NAME` prints it in an interactive terminal, but is blocked in piped or AI-driven contexts unless `--force` is passed — and `init` installs deny rules so AI tools cannot run the `--force` form or dump an injected environment (`run -- env`).\n\n### Ask your AI assistant to use a secret\n\nAfter `init`, the assistant's instruction file (`CLAUDE.md`, `.cursorrules`, ...) lists which keys are available as environment variables and tells the tool to reference them as `$VAR_NAME` without reading values. So this works in Claude Code:\n\n> Call the Stripe API and list the last 5 charges.\n\nClaude writes the command with a variable reference. The shell substitutes the value inside the subprocess; nothing enters the model's context:\n\n```bash\ncurl -s \"https://api.stripe.com/v1/charges?limit=5\" -H \"Authorization: Bearer $STRIPE_SECRET_KEY\"\n```\n\nFor a key stored after `init`, or one `init` doesn't recognize, name the variable in your prompt (\"use `$GAMMA_API_KEY` for auth\") or add a row to the key table in `CLAUDE.md`. To keep the assistant away from raw values entirely, ask it to run commands under the injector:\n\n> Run the deploy script with `secretless-ai run --only DEPLOY_TOKEN -- ./deploy.sh`.\n\n## MCP server protection\n\nEvery MCP server config has plaintext API keys in JSON files on your machine. The LLM sees them. Secretless encrypts them.\n\n```bash\nnpx secretless-ai protect-mcp\n```\n\n```\n  Scanned 1 client(s)\n\n  + claude-desktop/browserbase\n      BROWSERBASE_API_KEY (encrypted)\n  + claude-desktop/github\n      GITHUB_PERSONAL_ACCESS_TOKEN (encrypted)\n  + claude-desktop/stripe\n      STRIPE_SECRET_KEY (encrypted)\n\n  3 secret(s) encrypted across 3 server(s).\n  MCP servers start normally. No workflow changes needed.\n```\n\nScans configs across Claude Desktop, Cursor, Claude Code, VS Code, and Windsurf. Secrets move to your configured backend. Non-secret env vars (URLs, regions) stay untouched.\n\n```bash\nnpx secretless-ai protect-mcp --backend 1password   # store MCP secrets in 1Password\nnpx secretless-ai mcp-status                        # show which servers are protected\nnpx secretless-ai mcp-unprotect                     # restore original configs from backup\n```\n\n## Triage helpers\n\n```bash\nnpx secretless-ai scan --min-confidence 0.85   # high-confidence findings only\nnpx secretless-ai scan --max-files 20000       # raise the per-walk file cap (default 5000)\nnpx secretless-ai ignore docs/migration.md     # append a path to .secretlessignore\nnpx secretless-ai ignore --pattern '*.golden.txt'\nnpx secretless-ai diff main                    # audit secretless-managed file changes vs a git ref\nnpx secretless-ai scan --json                  # machine-readable findings for CI\nnpx secretless-ai status --json                # protection state for CI (gate on summary.verdict)\n```\n\n`scan` renders a `Confidence: high (0.92)` line under every finding. The score combines pattern specificity, value entropy, value length, and path tier. With `--no-ignore`, findings whose path matches the default-ignore list are tagged `(looks like a test fixture)` so they stay visible without being re-suppressed.\n\n### Incomplete scans do not report clean\n\nA scan that could not read everything is not a passing scan. If the walk stops at the file cap, or a path cannot be opened, `scan` prints what it missed, exits 1, and says `No credentials found in the files scanned` rather than `No hardcoded credentials found`. In `--json`, `summary.truncated` and `summary.unreadable` carry the same signal, so CI can tell \"clean\" from \"unfinished\".\n\n**Two kinds of gap, and only one of them gates.** A gap against a claim the scanner made -- it said it would read something and did not -- sets exit 1: `truncated`, `unreadable`, `oversize`. A boundary the scanner declared and never claimed to cross does not: `outOfRoot`, `skippedUnsupported` (files enumerated but not opened, such as a `.png` or a `.md`), and `notEntered` (directories not descended into, such as `node_modules/` or any dot-directory). The second group is reported, sampled and given the command that scans it, but it does not fail your build -- every repository contains at least one of them, so gating on it would fail every build. If you want a declared boundary to gate, test it yourself: `jq -e '.summary.notEntered == 0'`.\n\nDot-directories are among the `notEntered` group, and that includes `.claude/`. Config files and key files inside them are still scanned; source files inside them are not. See issue #144.\n\nSymlinks are followed inside the scan root. A link whose target resolves outside it is not followed -- otherwise a repo containing `link -> $HOME` would pull the whole home directory into the scan -- and each one is listed with the command to scan its target directly, so the boundary is never silent. These do not affect the exit code.\n\n### A flag never widens scope\n\nA command line the tool cannot bind is refused with exit 2 before anything runs, rather than partly ignored. That covers an unrecognised flag, a flag given a value it cannot use, and a value-taking flag given no value at all. `--only=NAME`, `--path=DIR` and every other `--flag=value` spelling binds the same way as the spaced form.\n\n`scan`, `scan-staged` and `scan-history` refuse an unrecognised flag rather than warning and continuing, because their output is the answer: a typo in a coverage flag used to produce `No hardcoded credentials found.` at exit 0 over a narrower scan than the one you asked for. `feedback` and `diff` still warn, since they report no verdict.\n\n`--json` is implemented by `scan` and `status`. Passing it to any other command exits 2 and names those two, rather than printing human text and exiting 0 -- the caller of `--json` is a machine, and a machine reading exit 0 beside prose cannot tell it was ignored.\n\nExit codes: `0` clean, `1` credentials found (or an incomplete scan), `2` the command line was refused and nothing ran. Gate CI on `2` separately -- it means the tool did not answer the question, not that the answer was clean.\n\n```bash\nnpx secretless-ai clean --dryrun --path ./transcripts\n#   Unknown option: --dryrun (did you mean --dry-run?)\n#   `clean` was not run. Nothing was changed.\n#   Supported: --dry-run, --help, --last, --path <value>\n#   Run `secretless-ai clean --help` for usage.\n```\n\n```bash\nnpx secretless-ai scan --json | jq '.summary'\n# { \"total\": 0, \"critical\": 0, \"high\": 0, \"placeholdersSuppressed\": 0,\n#   \"truncated\": false, \"maxFiles\": 5000, \"unreadable\": 0, \"outOfRoot\": 0,\n#   \"oversize\": 0, \"skippedUnsupported\": 0, \"notEntered\": 0 }\n```\n\n## Architecture\n\nThree layers. Use one, two, or all three. Each works against any supported backend.\n\n**Tier 1: In-process SDK.** Credentials resolved in the call stack and zeroized after use. Available in the Python and TypeScript AIM SDKs. Sub-millisecond overhead.\n\n**Tier 2: Vault Exec.** A subprocess primitive that injects a credential into a child process's environment without exposing it to the parent. The agent running under an AI assistant never sees the secret.\n\n```bash\nnpx secretless-ai vault exec github -- curl https://api.github.com/user\n```\n\nThe child process receives `$GITHUB`. The parent shell, the AI tool's context, and any process listing see nothing. Language-agnostic. Wraps any command.\n\n**Tier 3: Broker with identity policy.** A local daemon that mediates credential access across multiple agents. Policy rules allow or deny access by agent ID, credential name, time window, and rate limit. Optional AIM integration adds trust-score and capability constraints.\n\n```bash\nnpx secretless-ai broker start\n```\n\nSee [Run the Broker](docs/use-cases/run-broker.md) for when to use the daemon and how to configure it.\n\nAIM is optional. Tier 1 and Tier 2 work against any of the five [storage backends](#storage-backends) with no AIM involvement. Tier 3 adds identity-bound policy when an AIM server is reachable. Default-deny still enforces locally without one.\n\n## Supported tools\n\n| Tool | Protection method |\n|---|---|\n| Claude Code | PreToolUse hook (blocks reads before they happen) + deny rules + CLAUDE.md |\n| Cursor | `.cursorrules` instructions |\n| GitHub Copilot | `.github/copilot-instructions.md` instructions |\n| Windsurf | `.windsurfrules` instructions |\n| Cline | `.clinerules` instructions |\n| Aider | `.aiderignore` file patterns |\n\nClaude Code gets the strongest protection because it supports [hooks](https://docs.anthropic.com/en/docs/claude-code/hooks). A shell script runs before every file read and blocks access at the tool level.\n\n## Storage backends\n\n| Backend | Storage | Best for |\n|---|---|---|\n| `local` | AES-256-GCM encrypted file | Quick start, single machine |\n| `keychain` | macOS Keychain or Linux Secret Service | Native OS integration |\n| `1password` | 1Password vault | Teams, CI/CD, multi-device |\n| `vault` | HashiCorp Vault KV v2 | Enterprise, self-hosted |\n| `gcp-sm` | GCP Secret Manager | GCP-native workloads |\n\n```bash\nnpx secretless-ai backend set 1password               # switch backend\nnpx secretless-ai migrate --from local --to 1password # migrate existing secrets\n```\n\n## NanoMind integration\n\nOptional integration with [NanoMind](https://github.com/opena2a-org/nanomind) for enhanced security analysis:\n\n```bash\nnpm install @nanomind/guard @nanomind/engine  # optional\n```\n\n- **MCP injection screening.** `protect-mcp` screens env-var values for prompt-injection patterns and warns when suspicious content is detected.\n- **Generated scan context.** `scan --explain` can add a model-written note beside each finding, off by default and enabled with `SECRETLESS_NANOMIND_EXPLAIN=1`. It is off because the local engine does not yet produce explanations worth showing: over 30 measured runs, none were usable and several asserted things about the credential that were not true. Verified remediation always comes from the finding itself, never from the model.\n\nBoth features gracefully degrade when NanoMind packages are not installed.\n\n## Using with opena2a-cli\n\n[`opena2a-cli`](https://github.com/opena2a-org/opena2a) is the unified CLI for the OpenA2A security toolchain. Secretless powers `opena2a secrets`.\n\n```bash\nnpm install -g opena2a-cli\nopena2a review          # full security dashboard\nopena2a secrets init    # initialize secretless protection\n```\n\n## Telemetry\n\nSecretless sends anonymous tier-1 usage data to the OpenA2A Registry: tool name (`secretless-ai`), version, command name (`scan`, `protect`, etc.), success, duration, platform, Node major version, and a stable per-machine `install_id`. No content is collected. No scanned secrets, no file paths, no env-var values, no rule contents, no IPs.\n\n- Policy: [opena2a.org/telemetry](https://opena2a.org/telemetry).\n- Status: `secretless-ai telemetry status`.\n- Disable per-invocation: `OPENA2A_TELEMETRY=off secretless-ai <anything>`.\n- Disable persistently: `secretless-ai telemetry off`.\n- Audit every payload: `OPENA2A_TELEMETRY_DEBUG=print secretless-ai <anything>` echoes each event to stderr as JSON.\n\nFire-and-forget with a 2-second timeout. Telemetry never blocks Secretless.\n\n## Use cases\n\n| Guide | Time |\n|---|---|\n| [Protect My Credentials](docs/use-cases/protect-my-credentials.md) | 2 min |\n| [Secure MCP Configs](docs/use-cases/secure-mcp-configs.md) | 3 min |\n| [Bring Your Own Vault](docs/use-cases/bring-your-own-vault.md) | 3 min |\n| [Run the Broker](docs/use-cases/run-broker.md) | 3 min |\n| [Team Setup](docs/use-cases/team-setup.md) | 5 min |\n| [Migrate from .env](docs/use-cases/migrate-from-dotenv.md) | 3 min |\n\nFull index: [docs/USE-CASES.md](docs/USE-CASES.md).\n\n## Contributing\n\nApache 2.0. PRs from outside the org welcome.\n\n```bash\ngit clone https://github.com/opena2a-org/secretless-ai.git\ncd secretless-ai && npm install && npm run build && npm test\n```\n\nSecurity issues: `info@opena2a.org` (coordinated disclosure, response within 24 hours).\n\n## Links\n\n- [Website](https://opena2a.org/secretless)\n- [Documentation](https://opena2a.org/docs/secretless)\n- [Demos](https://opena2a.org/demos)\n- [OpenA2A CLI](https://github.com/opena2a-org/opena2a)\n- [Credential patterns library](https://www.npmjs.com/package/@opena2a/credential-patterns)\n- [aicomply](https://github.com/opena2a-org/aicomply) — inline PII and credential classification for agent I/O at runtime, the complement to protecting credentials at rest\n\nPart of the [OpenA2A](https://opena2a.org) security platform.\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}