{"_id":"@curatedmcp/tokenshield","_rev":"11-01dd7a5b4ef82f7c4f993354405b9214","name":"@curatedmcp/tokenshield","dist-tags":{"latest":"1.4.0"},"versions":{"0.2.0":{"name":"@curatedmcp/tokenshield","version":"0.2.0","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@0.2.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"c21f1f55d0726b3c8d34925413cd40c196d62cae","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-0.2.0.tgz","fileCount":55,"integrity":"sha512-bxOfiku466KFUPk7PYBHb+G6bwxyB+Pf5/LpMLCtcoWHsee2GkfoJdA7+twMuav/Tduz2yksSFHmEpg2zGtDhw==","signatures":[{"sig":"MEQCIHav0GCMxcde+ieGZ3yD5Ly3OM0RP4/hlptewD7H9ScYAiAiYfSUKtJB7+lxVbCb29cPhEsFuGr+8VfbpEo714sU5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205562},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"4423e3753a0b99bdec2f659dcb759efb011b689b","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_0.2.0_1779024298763_0.5155948772517873","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@curatedmcp/tokenshield","version":"0.2.1","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@0.2.1","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"979e99321c3fbb8d8017952f700763eb10b84065","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-0.2.1.tgz","fileCount":59,"integrity":"sha512-GAx0/gVd26SaP63xqrMEXp03+SVyOo5OA7TbUjpUScT6bNM5vuodhbd4dWnoeGjfFOGF4SnKcEX3LxQjdM/hZA==","signatures":[{"sig":"MEUCICpe2hh2sHPtX6UdTnR2DWiPJilgYYdn37rdA+Sz7umMAiEA4aBylZPNsTTdoItxitFU70XaWGVC5tdefO77wHbQhJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":300031},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"5d951d161f6b9a6fee8caaac08d59ed504f802a4","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_0.2.1_1779029528698_0.9962908648888174","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@curatedmcp/tokenshield","version":"0.3.0","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@0.3.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"94efe267a0a181292c5078af40a9072544c1b196","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-0.3.0.tgz","fileCount":62,"integrity":"sha512-9U0FsZs3vDDMpO97XGt7K8WoRsvacrHLRFmq1di5vNJ0zVnWpb7yXY5l/lK1UGn+qnssTT1Jws2V6EiqOoGGTQ==","signatures":[{"sig":"MEQCICmu6D6Z5Y06QiUiVXzEK2I/xrmOKlkQC9IaNmESRTj0AiAv/7rRjlCagtC5Z9b+2ZTJdLCBOLpUvxpUAbOdwI53nA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":307510},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"f0b979efbf297e3e621b29a3f325c7b20a267217","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^0.3.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_0.3.0_1779038499762_0.6480542057662881","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@curatedmcp/tokenshield","version":"1.0.0","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@1.0.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"3b4b730f8fe23d7af5878805a71a5bd1929ca59d","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-1.0.0.tgz","fileCount":65,"integrity":"sha512-5Lbj55K4Y+fsnO08NIeaTDOlG+5IJhdprZ7ktqwcrbk6I7paD2nzPABhWT2ejZydtM1n4OuXAlySkW/0jgn9fQ==","signatures":[{"sig":"MEYCIQCPyV2OD7kTvr39+ganezZfgJjonYs+9GToBhjjfWzpOQIhALkHcdSKV51XysO1n0qKeqWhcxjegwt+W2I7M+yqNBtS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":311675},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"4cf54335c2593d74f366cda69abc2c5010a35018","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_1.0.0_1779042246146_0.18279849886452415","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@curatedmcp/tokenshield","version":"1.0.1","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@1.0.1","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"92cf3528991eaea69888307b7086c84cee15ff8c","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-1.0.1.tgz","fileCount":68,"integrity":"sha512-/39XVypfxMFkA5FMKnygsJr1FH6GJkc6+6hCg/+wtCBzxA/vWt/2VSNFaaMJSKmfNVy+knfuu0B1l9osoSHGTw==","signatures":[{"sig":"MEUCIQD5y172x2FRICcwMWWfR4Y4M+ICfOCR3FgZwtvHPusOeQIgJ8tOUsR12cIHys6t+d66ZoEU/2ZAro4M15EpkBep1hw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":314906},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"9925ad5ff2f7062648c12e1d2a322a6fca72838c","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_1.0.1_1779053266488_0.5720740642140458","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@curatedmcp/tokenshield","version":"1.0.2","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@1.0.2","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"a3903354b2906f06cf0c49e73d88db59253365e9","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-1.0.2.tgz","fileCount":68,"integrity":"sha512-qqcLuQSWCAuZnIFmgkq27CwakhXDmyZ0fJe9RRrsCofnj9htVgNQvs5BmLUeJsdM1ysjdx9FDkGDVMHc4og3JA==","signatures":[{"sig":"MEYCIQD2WtqcuetLdH/IayJ8XjdvS/XYpo4bSxwFbSuaVeio9wIhAJtFNd8J5ClFI6bwwjGSEeMQakOW2z5QfztOzbngDi13","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":321559},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"9249899fd1ec5d969445590ba96166a69e779da3","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_1.0.2_1779058549664_0.28682071508057105","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@curatedmcp/tokenshield","version":"1.2.0","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@1.2.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"d98d2de8a7e9a5d47520234d437844729c113d96","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-1.2.0.tgz","fileCount":74,"integrity":"sha512-5cGI0X6CS4Nle6o5ocWHpucvgDjvc6aidUPdMMI540Yt+uWWiEbXzAjgf4xbW98+QPNcZ2eybShLQBMZNMD3IA==","signatures":[{"sig":"MEUCIQDb3bqutq58hRsrlK5tmGDh8YsxRuAYn6aWWILOg7ga1wIgP4kmKbGMDXiXrmmnM+44ByDOmgoEvocdw3FpMR6/CI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":350416},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"3ada32ad04651626b246214faf339b8fde4cb1e6","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_1.2.0_1779070756549_0.4148794704873935","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@curatedmcp/tokenshield","version":"1.3.0","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@1.3.0","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"be712a631b18d3de9ec5694b1db9cb30c3905af5","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-1.3.0.tgz","fileCount":77,"integrity":"sha512-CvT4D8TzNWbZ5bEcQ3Zev6DApciZklEYz0CfGcd5hc/lrHxHgFK9GiNikzAjrm0x1QWPS0ou7CCcDsW7sibUsw==","signatures":[{"sig":"MEUCIC2nrtfEuhY1EBv4nRzWmogoa0JSsijWG/k/FcOim24jAiEAjmpm/+J93A4UwDCs9VRAdpIcbtkvaf3MU6+M6I9GIaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365739},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"a156ca54a84cf247af31e5314ede9461f0f34ea4","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_1.3.0_1779072371184_0.0665381452183691","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@curatedmcp/tokenshield","version":"1.3.1","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@1.3.1","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"775e2c13af649a725cbd432e3454b39aed4134d4","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-1.3.1.tgz","fileCount":77,"integrity":"sha512-wllyFLg29Y5cSZuhq0hPxrpF6Tf7GioEMBiqfKNsQDe8QGfQUd6SpSYyeuxjeqcRA6MQlK2lY69gWXecAv25gQ==","signatures":[{"sig":"MEQCIEaKDds8PtUFSfXVzpuVWD5MvBYQMxX4J3nSWP0uh5DbAiA5xrxyKCGbXq21JTrIQSIMrOylYXKj87P4PmTBqpRbgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":368762},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"1276cccdc2e9bd1bd104760aba3ba7720971a339","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^1.3.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_1.3.1_1779106867073_0.5069650134754295","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@curatedmcp/tokenshield","version":"1.3.2","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"license":"MIT","_id":"@curatedmcp/tokenshield@1.3.2","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"bin":{"tokenshield":"dist/cli.js"},"dist":{"shasum":"0b99099dfca126b145028365596211d52363700f","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-1.3.2.tgz","fileCount":77,"integrity":"sha512-6p0132Srm4jlXD9QqMJr1SPSEPxefl6vG3F+r1wYTmswbNghLMKCnHu6KAKjGiOW4uaATOw/kHNBh5fNrzngaw==","signatures":[{"sig":"MEUCIBu6VhaHjnTlUWtDwYkX+gVSfRp0GGSUmjCbSaAknnJiAiEAnc9GKLa0q7DfrUN6TjqnxxqmTZvSEuTVGS0ysH4pj3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369069},"main":"./dist/cli.js","type":"module","types":"./dist/cli.d.ts","engines":{"node":">=22.0.0"},"gitHead":"56e86a26da32d7da2a651a7c49e4f6eff2d97f85","scripts":{"dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"repository":{"url":"git+https://github.com/oneprofile-dev/tokenshield.git","type":"git"},"_npmVersion":"10.9.7","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"commander":"^12.0.0","@curatedmcp/tokenshield-core":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tokenshield_1.3.2_1779108429172_0.7301654574360192","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@curatedmcp/tokenshield","version":"1.4.0","description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","type":"module","bin":{"tokenshield":"dist/cli.js"},"main":"./dist/cli.js","scripts":{"build":"tsc","dev":"tsc --watch","test":"tsc -p tsconfig.test.json && node --enable-source-maps --test $(find dist-test/test -name '*.test.js')","prepublishOnly":"npm run build"},"keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"repository":{"type":"git","url":"git+https://github.com/oneprofile-dev/tokenshield.git"},"license":"MIT","dependencies":{"@curatedmcp/tokenshield-core":"^1.4.0","commander":"^12.0.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.5.0"},"engines":{"node":">=22.0.0"},"_id":"@curatedmcp/tokenshield@1.4.0","gitHead":"78a2471b82c1900b7ca47865ed358515010097e7","types":"./dist/cli.d.ts","bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"homepage":"https://github.com/oneprofile-dev/tokenshield#readme","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-LFZ+eqvkd9A0GGSx6vh2fN0i4lEGWSetVxX70MPv87+y6kXFO0NCqaWUk6b4VJqxxlLWZRp/dBCT90Hw+6tbjg==","shasum":"4f5ed21b097834841bd22e6841c13a008e6e9009","tarball":"https://registry.npmjs.org/@curatedmcp/tokenshield/-/tokenshield-1.4.0.tgz","fileCount":77,"unpackedSize":372571,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@curatedmcp%2ftokenshield@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAKNgqE6MLtDLRlCsI6rkiDhovaIhRoeSFamM15V8mVdAiAx5kCG01aKy24So78FzVc4rQoBlbyjHlbDUM0fxKhHsw=="}]},"_npmUser":{"name":"curatedmcp","email":"curatedmcp@gmail.com"},"directories":{},"maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tokenshield_1.4.0_1784658960200_0.9309347730201369"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-17T13:24:58.700Z","modified":"2026-07-21T18:36:00.751Z","0.2.0":"2026-05-17T13:24:58.906Z","0.2.1":"2026-05-17T14:52:08.845Z","0.3.0":"2026-05-17T17:21:39.899Z","1.0.0":"2026-05-17T18:24:06.279Z","1.0.1":"2026-05-17T21:27:46.640Z","1.0.2":"2026-05-17T22:55:49.807Z","1.2.0":"2026-05-18T02:19:16.692Z","1.3.0":"2026-05-18T02:46:11.335Z","1.3.1":"2026-05-18T12:21:07.243Z","1.3.2":"2026-05-18T12:47:09.397Z","1.4.0":"2026-07-21T18:36:00.343Z"},"bugs":{"url":"https://github.com/oneprofile-dev/tokenshield/issues"},"license":"MIT","homepage":"https://github.com/oneprofile-dev/tokenshield#readme","keywords":["claude","claude-code","anthropic","proxy","token-cost","savings","curatedmcp"],"repository":{"type":"git","url":"git+https://github.com/oneprofile-dev/tokenshield.git"},"description":"TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.","maintainers":[{"name":"curatedmcp","email":"curatedmcp@gmail.com"}],"readme":"# TokenShield\n\n**Cut Claude Code and Codex/OpenAI token spend.** Local proxy. Your API keys never leave your machine.\n\n[![npm version](https://img.shields.io/npm/v/@curatedmcp/tokenshield.svg)](https://www.npmjs.com/package/@curatedmcp/tokenshield)\n[![license](https://img.shields.io/npm/l/@curatedmcp/tokenshield.svg)](https://github.com/oneprofile-dev/tokenshield/blob/main/LICENSE)\n[![node](https://img.shields.io/node/v/@curatedmcp/tokenshield.svg)](https://nodejs.org)\n[![provenance](https://img.shields.io/badge/npm-provenance-blue.svg)](https://docs.npmjs.com/generating-provenance-statements)\n\n```bash\nnpm install -g @curatedmcp/tokenshield\ntokenshield setup\n```\n\nThat's it. Your existing API keys and agentic workflow — now with local measurement and token-saving processors.\n\n---\n\n## Why TokenShield exists\n\nClaude Code is great. Claude Code is also expensive. A 25-turn agentic session that re-reads the same `auth.ts` five times and re-runs `gh pr list` three times burns ~$1.60 in tokens — even though 60% of the bytes flowing to Anthropic are exact duplicates.\n\nTokenShield sits between your AI tool (Claude Code, Codex, Cursor, Windsurf, Aider, and compatible SDK clients) and the matching upstream API. It deduplicates repeated tool results inside the conversation and caches deterministic responses. **Everything runs on your machine.** Your prompts never touch our servers.\n\n---\n\n## Measured savings (v0.2, real numbers)\n\nThese come from `tokenshield bench`, which replays three recorded sessions through the pipeline:\n\n| Workload | What it looks like | Savings |\n|----------|-------------------|---------|\n| **Light** | 5-turn Q&A, no tool use | **0%** (dedup correctly doesn't trigger) |\n| **Medium** | 12-turn coding session, 2 file re-reads | **27.7%** |\n| **Heavy** | 25-turn agentic loop, 5 file re-reads + 3 `gh pr list` repeats | **62.1%** |\n| **Aggregate** | All three above | **54.2%** |\n\n**These four numbers are CI-asserted.** Every commit on `main` runs the bench and fails the build if any savings regress. We are not making this up — clone the repo and run `tokenshield bench` on your laptop.\n\n---\n\n## 60-second quickstart\n\n```bash\n# 1. Install\nnpm install -g @curatedmcp/tokenshield\n\n# 2. Start the proxy + local dashboard\ntokenshield up\n#  ▸ Proxy:     http://127.0.0.1:7777\n#  ▸ Dashboard: http://127.0.0.1:7778\n\n# 3. In a fresh shell, point Claude Code at the proxy:\nexport ANTHROPIC_BASE_URL=http://127.0.0.1:7777\nclaude        # your normal workflow — savings tick up in the dashboard\n```\n\nFor Codex/OpenAI, set the user-level Codex base URL:\n\n```toml\n# ~/.codex/config.toml\nopenai_base_url = \"http://127.0.0.1:7777\"\n```\n\nOr let TokenShield write that `export` line into your `~/.zshrc` for you:\n\n```bash\ntokenshield integrations enable claude-code\n```\n\n---\n\n## Works with Anthropic and OpenAI-compatible traffic\n\n| Tool | Status |\n|------|--------|\n| Claude Code | ✅ live |\n| Codex / OpenAI Responses API | ✅ live |\n| OpenAI Chat Completions API | ✅ live |\n| Cursor (Anthropic mode) | ✅ live |\n| Windsurf (Anthropic mode) | ✅ live |\n| Zed (Anthropic mode) | ✅ live |\n| Aider (Anthropic mode) | ✅ live |\n| Continue.dev, Cline, Roo, anything using `@anthropic-ai/sdk` | ✅ live |\n| Google Gemini | 🕒 v1.2 — [join the waitlist](https://curatedmcp.com/tokenshield#waitlist) |\n\n---\n\n## How it works in 5 bullets\n\n1. **Transparent HTTP proxy** with byte-faithful SSE streaming preservation. Your client never knows it's not talking to Anthropic directly.\n2. **Conversation dedup** — every `tool_result` is content-hashed (SHA-256). Second and subsequent occurrences inside a conversation are replaced with a deterministic pointer. First occurrence is always kept verbatim.\n3. **Response cache** — conservative LRU+TTL cache for `temperature === 0 && stream === false` requests. Cache hits short-circuit without invoking Anthropic.\n4. **Fail-open middleware** — if any processor throws, the request goes through untouched. Per-processor circuit breaker disables flaky processors after 3 failures in 60s.\n5. **SQLite ledger** using Node 22's built-in `node:sqlite`. **Zero native dependencies.** No compile toolchain pain. No `node-gyp`. No `npm rebuild`.\n\nFull architecture in 60 seconds:\n\n```\n   Claude Code ─┐\n   Codex      ──┼▶  TokenShield proxy  ─▶  api.anthropic.com / api.openai.com\n   Cursor     ──┘       127.0.0.1:7777\n                         (your machine)    │\n                          ▼\n                  ~/.tokenshield/ledger.db\n                  http://127.0.0.1:7778\n                  (live local dashboard)\n```\n\n---\n\n## CLI surface\n\n```text\ntokenshield setup              60-second guided install\ntokenshield up                 start in foreground (Ctrl-C to stop)\ntokenshield up --daemon        start in background\ntokenshield status             daemon state + last-24h spend\ntokenshield logs --limit 20    recent requests with savings %\ntokenshield bench              replay built-in fixtures and report savings\ntokenshield demo               canned 8-turn savings replay (no network)\ntokenshield doctor             health check (Node, key, network, ports)\ntokenshield stop               stop the background daemon\ntokenshield integrations list  detect Claude Code / Codex / Cursor / Windsurf / Zed / Aider\ntokenshield integrations enable claude-code   # write managed block to shell rc\ntokenshield telemetry status   # show telemetry state + anonId\ntokenshield telemetry off      # opt out of anonymous usage stats\ntokenshield telemetry show     # show the exact privacy contract\n```\n\nEvery command supports `--json`, `--quiet`, and `--debug`. Exit codes are category-specific so scripts can react: `10` port-in-use, `11` daemon-not-running, `20` missing API key, `30` upstream unreachable, etc.\n\n---\n\n## Privacy — what actually leaves your machine\n\n- **Your provider API keys** stay with your local AI client and upstream provider. Never written by TokenShield. Never sent to CuratedMCP.\n- **Your prompts** stay between your machine and the upstream provider. The proxy is transparent.\n- **Optional cloud telemetry** (off by default) is aggregate-only: token counts and dollar savings. Schema-validated locally to reject any field whose name suggests content (`prompt`, `message`, `content`, `text`, `body`).\n- **Default localhost binding** (`127.0.0.1`). Opt-in `--bind 0.0.0.0` for team deployments behind a VPN.\n\nRead the full threat model: [docs/whitepaper.md](https://github.com/oneprofile-dev/tokenshield/blob/main/docs/whitepaper.md)\n\n---\n\n## Pricing\n\n| Plan | Price | What you get |\n|------|-------|--------------|\n| **Free (local)** | $0 forever | Full proxy + dashboard + dedup + cache. Everything on this README works. Anonymous usage stats (token counts and $ saved — **never** prompt content) ship to CuratedMCP by default. Disable with `tokenshield telemetry off`. |\n| **Solo Dev** | $19/mo | Cloud dashboard synced across machines, savings history, monthly PDF expense reports |\n| **Team Standard** | $29/seat/mo | All of Solo Dev + governance + MCP audit logs |\n| **Team Pro** | $59/seat/mo | All of Team Standard + Sentinel anomaly detection + priority routing |\n\n> The free local version is a real product — it's not a teaser. If you never upgrade, you'll still save 40–70% on your Claude bill. We make money when you want savings visible to your finance team, or when you need governance across an engineering org.\n\n### What gets tracked\n\n```bash\ntokenshield telemetry show     # see the exact contract\ntokenshield telemetry status   # is it on or off right now?\ntokenshield telemetry off      # disable — no data leaves your machine\n```\n\n**Sent (aggregate, batched every 50 requests or 5 min):** request count, total token counts, total $ saved estimate, CLI/Node version, OS, provider (anthropic/openai/gemini), most-used model.\n\n**Never sent:** prompt content, responses, file contents, file paths, API keys, IP address, hostname, username, project names, command arguments. The server-side ingest validates this and rejects any payload containing fields named `prompt`, `message`, `content`, `text`, `body`, `args`, etc.\n\n**Anonymous ID:** a deterministic SHA-256 of `hostname + username` — it's stable across runs on the same machine but **cannot** be reversed to identify a person or cross-correlated with other CuratedMCP products.\n\n**Honors all standard kill switches:** `TOKENSHIELD_TELEMETRY=0`, `DO_NOT_TRACK=1`, `CI=true`.\n\nPricing & checkout: **[curatedmcp.com/tokenshield](https://curatedmcp.com/tokenshield)**\n\n---\n\n## Part of the CuratedMCP control plane\n\nTokenShield is one of three products at **[curatedmcp.com](https://curatedmcp.com)** — the MCP governance control plane for engineering organizations:\n\n- **🛡️ TokenShield** — cut your Claude Code bill 40–70% (you're reading the README)\n- **🔍 [MCP Auditor](https://curatedmcp.com/auditor)** — static analysis for MCP server security, dependency drift, supply-chain risk\n- **📊 [Sentinel](https://curatedmcp.com/sentinel)** — runtime anomaly detection for MCP server behavior in production\n\nIf you're an engineering leader trying to answer \"what MCP servers are running across my org, what are they costing me, and what's the security posture?\" — **[start a CuratedMCP pilot](https://curatedmcp.com/enterprise/pilot)**.\n\n---\n\n## Status\n\n- **today**: conversation-dedup + response-cache + production-grade CLI. Anthropic and OpenAI/Codex providers live.\n- **planned**: diff-based file reads + streaming early-stop. Heavy workloads → 70%+ savings.\n- **planned**: context auto-summarize + Stripe checkout + GA.\n- **planned**: Google Gemini provider live.\n\n---\n\n## Links\n\n- **Website:** [curatedmcp.com/tokenshield](https://curatedmcp.com/tokenshield)\n- **Whitepaper** (CC BY 4.0): [docs/whitepaper.md](https://github.com/oneprofile-dev/tokenshield/blob/main/docs/whitepaper.md)\n- **Source:** [github.com/oneprofile-dev/tokenshield](https://github.com/oneprofile-dev/tokenshield)\n- **Issues:** [github.com/oneprofile-dev/tokenshield/issues](https://github.com/oneprofile-dev/tokenshield/issues)\n- **npm:** [`@curatedmcp/tokenshield`](https://www.npmjs.com/package/@curatedmcp/tokenshield) · [`@curatedmcp/tokenshield-core`](https://www.npmjs.com/package/@curatedmcp/tokenshield-core)\n- **Enterprise pilots:** [curatedmcp.com/enterprise/pilot](https://curatedmcp.com/enterprise/pilot)\n\n## License\n\nMIT — see [LICENSE](https://github.com/oneprofile-dev/tokenshield/blob/main/LICENSE).\n\n---\n\n<sub>Built by [CuratedMCP](https://curatedmcp.com) — the MCP governance control plane for engineering orgs.</sub>\n","readmeFilename":"README.md"}