{"_id":"sprag-cli","_rev":"26-3f9832e4ff178a85f8d954c0fa98d3af","name":"sprag-cli","dist-tags":{"latest":"3.53.0"},"versions":{"3.40.0":{"name":"sprag-cli","version":"3.40.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.40.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"f439f7ab22d11f7847f55509155f4fcca06f5499","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.40.0.tgz","fileCount":79,"integrity":"sha512-Lul7QuPejCs194psnku1rYXC70RY6mQ2hWUhGJ3kWbeOozhgH3bGlYgWLPmRXPimf1vB2zA1aWL8JI9nSsL0FA==","signatures":[{"sig":"MEUCIQCxMDr8yAFDZEAQGo0ziyAcLLStEKoNaeqR4489vKr2GAIgK77i7L2HGqEBbGmfkjiakO7bRjWKu3NOCa7Ig6vro0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":842235},"type":"module","engines":{"node":">=18"},"scripts":{"test":"node --test","postinstall":"node bin/cli.js install || true","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.40.0_1789307318834_0.5276205572360559","host":"s3://npm-registry-packages-npm-production"}},"3.40.1":{"name":"sprag-cli","version":"3.40.1","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.40.1","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"0bcdbbbfcfe198ced4b4691709f26fc67e4dcb9a","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.40.1.tgz","fileCount":79,"integrity":"sha512-6csT7uGYwzVY+lloBWXRQzKGfuZUL8wHgOwEW16SGGud08e1u7eDc1XGDE7ZXNDeoUJ9W0Q20Oib6A6KigNSmg==","signatures":[{"sig":"MEYCIQCzC36Hs30rdBd+gBrSL+p1d4VeSOlpEJ4MUXEeso74agIhAMdTe6S97X2TtBlW7ErZxON+QjW3hE7hA2c/4kfNBbag","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843450},"type":"module","engines":{"node":">=18"},"scripts":{"test":"node --test","postinstall":"node bin/cli.js install || true","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.40.1_1789307774094_0.31646729008158236","host":"s3://npm-registry-packages-npm-production"}},"3.41.0":{"name":"sprag-cli","version":"3.41.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.41.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"d8a7e5182af73cfe1f1da5864f54ed97b2c43594","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.41.0.tgz","fileCount":79,"integrity":"sha512-QzNtHR6j86bu9dDZTWXBXJKr1mmJIvyDC5l3khyqbLkNSB/Be1cSrvLDUQ6Ho7KnBGxtlU7AX3178ySg8kPPnQ==","signatures":[{"sig":"MEQCIDLFiBjWmaaolCsOjJgHtGgekSjU3gjC0IjiXWqJ+woNAiAwjF9TDjqbU3dyxYl/khtVoy8sJ1VvH6a+yWRYAC9s3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843733},"type":"module","engines":{"node":">=18"},"gitHead":"5c694cf1edf7e7d6e8e4c626bb08d373eef9b520","scripts":{"test":"node --test","postinstall":"node bin/cli.js install || true","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.41.0_1789307979073_0.5624941794088656","host":"s3://npm-registry-packages-npm-production"}},"3.42.0":{"name":"sprag-cli","version":"3.42.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.42.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"81768dc0983e83665b087e3d84781b4eacdea536","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.42.0.tgz","fileCount":79,"integrity":"sha512-sxM0Fpr7rpk7d4xMh8d8WGZxcmJH8nfhsKMnIi/Cu0VTxHg2axHA2Arc5hIkx87O06AqiBIRwR703D0Ma83yxg==","signatures":[{"sig":"MEUCIQD+gsBPmw9S40tB/ATGZpX62zRrmYOtJfaB2NAwFgBzZwIgPJZGUVJ1jh/3GQSSUjdOEeTqqf7/V6Q/eRMuHj/uxBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":841614},"type":"module","engines":{"node":">=18"},"gitHead":"ad5c6cb4e3055634fbf2fea4f88ad5ee5a0a2384","scripts":{"test":"node --test","postinstall":"node bin/cli.js install || true","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.42.0_1789310213816_0.9614293086513457","host":"s3://npm-registry-packages-npm-production"}},"3.42.1":{"name":"sprag-cli","version":"3.42.1","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.42.1","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"95183689e8c7d7b49082c1f94a8259814e6d6903","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.42.1.tgz","fileCount":79,"integrity":"sha512-FSwSZptH1wBgoJpbAfom6OlJ+3EScD/6qeoGzUjkaT3SshEgvXYIHRWnnwolLeBCDTFFqtikz/5dmCuBhy3t6g==","signatures":[{"sig":"MEUCIQDIT2GSG10KsFAUCbb8zEEDYzG7Av3vWUCP8cwE0+e5mgIgTajP45G5ns6IoUDYataeLVPzQJipMLIwzPho4TCnjcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":838120},"type":"module","engines":{"node":">=18"},"gitHead":"664b18596c8a2c562b99f174f6a297686a8cd30e","scripts":{"test":"node --test","postinstall":"node bin/cli.js install || true","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.42.1_1789310671769_0.1206438951718718","host":"s3://npm-registry-packages-npm-production"}},"3.42.2":{"name":"sprag-cli","version":"3.42.2","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.42.2","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"160851fde894a18f1450238abbc71d1f53dea169","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.42.2.tgz","fileCount":79,"integrity":"sha512-r79nVq+/0HsR5ej+1Zb8avZKfWUi5dWYAhrn/tvXJvuWtadhgYRhM0qB6/UT7VXt3YteRkT3XDp6rYDv2fBLrw==","signatures":[{"sig":"MEYCIQDkGCPHDeHqcd2azN+I9KrDglwxAqi7pIEmFdPEe6IQIQIhAOulhQsK1kzF0QogTJ9wB2e8mPTtOlh4UO4PlI+tFCwH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":838398},"type":"module","engines":{"node":">=18"},"gitHead":"92c75088837cb2da3ef76f230c27d029694a101d","scripts":{"test":"node --test","postinstall":"node bin/cli.js install || true","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.42.2_1789310851617_0.5688183469483106","host":"s3://npm-registry-packages-npm-production"}},"3.42.3":{"name":"sprag-cli","version":"3.42.3","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.42.3","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"46f66302bbdf3c667daaf1e3ae016d29a16da78a","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.42.3.tgz","fileCount":79,"integrity":"sha512-4p9Q7SKtWAolxND8HswKgmEvkiu4hvrbnIXi+hKavFgT5VLqKoRVzHVY0kRz2bc91vlZy7jLjjJuKZ2b3vi6wg==","signatures":[{"sig":"MEYCIQCzQ8nx4GuNEzn/8CEbZEnImkDv8dwYUyXXqJ6GkbyT9wIhALl9mRVRDlC5w353ffWzI9X1WkdrCKkWeR4ZdeMhbROu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":838164},"type":"module","engines":{"node":">=18"},"gitHead":"06f1a50b970b9933333291d39755ab70ea17e06c","scripts":{"test":"node --test","postinstall":"node bin/cli.js install || true","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.42.3_1789311011614_0.5219415934275229","host":"s3://npm-registry-packages-npm-production"}},"3.42.4":{"name":"sprag-cli","version":"3.42.4","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.42.4","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"6f56184dba7b8a22162a463f2609f09be2bb72ba","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.42.4.tgz","fileCount":79,"integrity":"sha512-Qt7qMGA2bS4RN6Fu7Bu+h3R+3Sis3dkVPmLEtbQMct2Wuaf9Se7ZCbSmyYO7krGfeOvfFj68tjREAOaNIRbMXA==","signatures":[{"sig":"MEYCIQCHukwKyMdfDFzYHPLN/KJ2lPxtPKrPmSbcxTkQigSAHAIhAMskCh3t1odI5sfLOCw1SfsYOC5U0kWN4ZAK7a+EzWdN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843318},"type":"module","engines":{"node":">=18"},"gitHead":"0fd20b72e5319d0df71247b8013d184133bc25d6","scripts":{"test":"node --test","postinstall":"node bin/cli.js install || true","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.42.4_1789311682415_0.41529378134405315","host":"s3://npm-registry-packages-npm-production"}},"3.42.5":{"name":"sprag-cli","version":"3.42.5","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.42.5","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"d4e5a84332913ab584b4e2bf6b90d6244e9c6e88","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.42.5.tgz","fileCount":79,"integrity":"sha512-vJyGgvgDpl13M6QHyUEfvLO1zgeJIucGkhGm+bJqO2eDVEBBSCAtCYlf39TslxrAkN1GuAcOaN7kTfq8+XcYYQ==","signatures":[{"sig":"MEUCIQCSCNfaBgRq+yDxG+r6DGeGmOYf36qsTSpk6ApPGLNrtwIgbbftnDXkEBzkls6vLD85BE3sASsxqpFx2A+oANUCgOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843702},"type":"module","engines":{"node":">=18"},"gitHead":"945b19ef6e5d1c1eb3148c7213f7f8f2423ed6d4","scripts":{"test":"node --test","postinstall":"node bin/cli.js install || true","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.42.5_1789312017535_0.15740141988744116","host":"s3://npm-registry-packages-npm-production"}},"3.42.6":{"name":"sprag-cli","version":"3.42.6","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.42.6","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"a477cbb8f4916978882ae07de42295aea7954459","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.42.6.tgz","fileCount":79,"integrity":"sha512-UHNTLRdEvJZQ3lGquiKuA6+9a1fO71hWcIyUYRSuuBNhDi39CDdpPybRtYvjRewbsQHe6GYl65rCoxn6jwsVfw==","signatures":[{"sig":"MEQCIBiGOdpHFuczLV5ChUELu0oFzwGppy2VvA1+SZgtyu9gAiA//SHt8PgQFC7ZZQDE7XvtSwnozcKh3zcPVQKimhg/Hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":910490},"type":"module","engines":{"node":">=18"},"gitHead":"c7a0c98c29ac250b18ae4fc8182a70f5c1f219b0","scripts":{"test":"node --test","sync:ko":"node scripts/sync-readme-ko.mjs","postinstall":"node bin/cli.js install || true","prepublishOnly":"node scripts/sync-readme-ko.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.42.6_1789312876407_0.6286434595053212","host":"s3://npm-registry-packages-npm-production"}},"3.42.7":{"name":"sprag-cli","version":"3.42.7","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.42.7","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"f85774854593ff8884c6a8d9988b1c201b3375a2","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.42.7.tgz","fileCount":79,"integrity":"sha512-j9RuXYmgdB9cUhdT9dCKSMEz82LbXYpWmAOItCYcvznwbYStWkL4okfmQ063mOQXWHo8JjwllocdUrGe7XxdwQ==","signatures":[{"sig":"MEUCIEEuAY6d8FYZEt+7yL9x56ALqhYQkkoyocq1Ak+YBua/AiEA+wHdWCjX3Uy7l1UTezkDWNqvp4qpulUEuWQKF3TZ5f8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":923439},"type":"module","engines":{"node":">=18"},"gitHead":"dce726ad02788d120d9fd59a6a262f02064477c7","scripts":{"test":"node --test","sync:ko":"node scripts/sync-readme-ko.mjs","postinstall":"node bin/cli.js install || true","prepublishOnly":"node scripts/sync-readme-ko.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.42.7_1789343400619_0.5411169035619119","host":"s3://npm-registry-packages-npm-production"}},"3.42.8":{"name":"sprag-cli","version":"3.42.8","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.42.8","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"9ef56a5c37df3af505e2e12b14f0d5b8089ff62e","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.42.8.tgz","fileCount":79,"integrity":"sha512-6uOMU1lXNTMwKCVfhwyt/DXpHPRNaJJm+vxGTrT5bWMwjyD5XGbvA1o+UhbTXRRrpqDECrZAVDcMfuhOECMagA==","signatures":[{"sig":"MEUCIQC4cVwnortqiVnlpSmgexA7WXXxrVuSLbkrRCPuGW5MVQIgRgpRwJe+3qkrwsoyfFN5v7vH8A/BUpux9WotvaIxmJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":923597},"type":"module","engines":{"node":">=18"},"gitHead":"ea4fe818a597bb89ed570d9e5d532771a2aaaf5a","scripts":{"test":"node --test","sync:ko":"node scripts/sync-readme-ko.mjs","postinstall":"node bin/cli.js install || true","prepublishOnly":"node scripts/sync-readme-ko.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.42.8_1789354109598_0.26047865460439645","host":"s3://npm-registry-packages-npm-production"}},"3.43.0":{"name":"sprag-cli","version":"3.43.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.43.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"de1df6cd3b05edf3530724023accc0a88b8234e9","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.43.0.tgz","fileCount":79,"integrity":"sha512-azATgZyyVY6fqwPJZDdBl9v/YfTPcwTvGWpViX7yP1cBDPJldry9p/Aq0/n1WcN9rWRtObciIiPzznMx42moJA==","signatures":[{"sig":"MEYCIQCgY+/jm1UTT88N/1yTKTvvL58bczdhki0CeUIAQsnHJgIhAPCgNdhoKg4ntiJqo6xPqwJwONfO+euDIo+1emwAE3Nd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":932683},"type":"module","engines":{"node":">=18"},"gitHead":"578d13129c1548cffa91340cbbf0e71b2000b637","scripts":{"test":"node --test","sync:ko":"node scripts/sync-readme-ko.mjs","postinstall":"node bin/cli.js install || true","prepublishOnly":"node scripts/sync-readme-ko.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.43.0_1789390695124_0.22082408641370233","host":"s3://npm-registry-packages-npm-production"}},"3.44.0":{"name":"sprag-cli","version":"3.44.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.44.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"cffae55b0b874ddb99fdf1c22505d1790d4a95e2","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.44.0.tgz","fileCount":79,"integrity":"sha512-rrxEEkwnU8ubUYIv2zcFC5TUmiY7gVekxfxN8nETaQ4qi9WYabXHBF9dP3ZhKfGSLBA10OHAYG9De871T58m1A==","signatures":[{"sig":"MEUCIQDzUoPLKpPc4cv5LcOslIHBqQwHnrLI76ZlaubHCY17UgIgf5h3/bgnyTqlRcP/wE4W4A3pnFFfAn9bWMFpofibJVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765403},"type":"module","engines":{"node":">=18"},"gitHead":"a5e3901b5aeb30ea898abc0d5c469ccc153b5d16","scripts":{"test":"node --test","sync:ko":"node scripts/sync-readme-ko.mjs","postinstall":"node bin/cli.js install || true","prepublishOnly":"node scripts/sync-readme-ko.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.44.0_1789431862778_0.9513456064400365","host":"s3://npm-registry-packages-npm-production"}},"3.45.0":{"name":"sprag-cli","version":"3.45.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.45.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"b024b283a61e2ce7269d342be51f1fbf5f1147e5","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.45.0.tgz","fileCount":82,"integrity":"sha512-paRX+YrDPqvGDagrlimlG0bf6gnRsGrLGHBdt6anJUAIXD9oF01GXa4ioO/kFJhl1cAKk2AVqyPrb3ZbvAL/sQ==","signatures":[{"sig":"MEUCIQDaGdCtH053jHwVELnxwsf2vrC5LW7Ap/5sMGb8ONnDJQIgTY/sK6bvopDPgyFUdbvIpNYreqcAQi4BxoY+7yzgmoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":791660},"type":"module","engines":{"node":">=18"},"gitHead":"6a3a8db38abeb7c4155732e6a6c8f21e22273bbb","scripts":{"test":"node --test","sync:ko":"node scripts/sync-readme-ko.mjs","postinstall":"node bin/cli.js install || true","prepublishOnly":"node scripts/sync-readme-ko.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.45.0_1789480457189_0.230962181417665","host":"s3://npm-registry-packages-npm-production"}},"3.46.0":{"name":"sprag-cli","version":"3.46.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.46.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"7889dfbab3873e7d4ec4f4c5d8bfedf6c46cd038","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.46.0.tgz","fileCount":83,"integrity":"sha512-NBCgrWRfT9OO065gIDgxpJtf9pKK/WxedJA5HokgHXm/ugww9KB+pLMJIaxyNhImKCrnUK85ovLuRS4Z+jSvEA==","signatures":[{"sig":"MEUCIQDU+D6mGMGp+519vRGXGPf+hecEIiH56BVamcJKH4BBxgIgZsyU8nS+SYFzp51g6formaukpExIYpU9T9P5kyRmxew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":811930},"type":"module","engines":{"node":">=18"},"gitHead":"7a2ed88d328b91233427c4a408b95f965866046d","scripts":{"test":"node --test","sync:ko":"node scripts/sync-readme-ko.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","prepublishOnly":"node scripts/sync-readme-ko.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.46.0_1789489293455_0.49732268005019264","host":"s3://npm-registry-packages-npm-production"}},"3.46.1":{"name":"sprag-cli","version":"3.46.1","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.46.1","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"423aadfc6b52a79b2e61b624ad2124fd39520230","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.46.1.tgz","fileCount":84,"integrity":"sha512-fj5yv7lfyChKfs+nsNjh3XcpfM9M1gv8HkLNrtyaPBYLilRz9Zclg4/x7HkRZ+pSCatylv5MMHpKIEZmDKsnng==","signatures":[{"sig":"MEQCIF30GEYtlGVK0VvS/+UHXbfwAfOH+ppWqSxA3SfsmsBSAiAY4+9zRmAnsCgM2ixc5i/T2l0A9EgdWS1ve4PLoZ7c0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":820724},"type":"module","engines":{"node":">=18"},"gitHead":"d1933b7557436da98a22a2232d2749b6555664d3","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","sync:ko":"node scripts/sync-readme-ko.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","prepublishOnly":"node scripts/sync-readme-ko.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.46.1_1789492621032_0.2509096816308516","host":"s3://npm-registry-packages-npm-production"}},"3.46.2":{"name":"sprag-cli","version":"3.46.2","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.46.2","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"fc12840cf2a3d37f99cf17a741bf798c91ffceb1","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.46.2.tgz","fileCount":84,"integrity":"sha512-T4OsteyyWJFVujyiN6QrOea/zYBxA0R/0e6dwAPuRrpZlK7asfetg4hABKDYqXzsAK0e0vhuRPWZjWM3AHYBYw==","signatures":[{"sig":"MEQCIB9X6qceB5lBOuxItZaDTWgSRQ7J6aYe6a/P+NWotLcmAiBglyJ7uFvUOz/+FZHtc+Zi4J15U8Gnr5PraNIN64HAmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":809023},"type":"module","engines":{"node":">=18"},"gitHead":"1c24794861f74e1f91cdb9eb31c70168ae1b0bf7","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.46.2_1789542327920_0.9866198089792504","host":"s3://npm-registry-packages-npm-production"}},"3.47.0":{"name":"sprag-cli","version":"3.47.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"MIT","_id":"sprag-cli@3.47.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"a280ece6cb2e2dbfed015d68bd8cd148a8e329b9","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.47.0.tgz","fileCount":87,"integrity":"sha512-i3hRCYBGMPlJDIz6MFOv6qL6fah9n24YdVobl+3Zv+HXMyeVQLAc+anqH7VnVpQRUSW2lxtFirxHuODrJ+Czpg==","signatures":[{"sig":"MEYCIQC2qhSPKpuwlxX8sUZUoAeMnywrnhuMvxpjHsIAhYyJjwIhAMmI/eBW25gnkcP1GGcRHdKkF/kURTHV1LTJk52GCZbE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDBiv6wDTHzEU19c0RKO/K5eIWbqR01qgejMezb1HHIoAiEAymHD7Y45KbfqpwXRTTnU0bhapwHExWmlqyb439tT8iU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843800},"type":"module","engines":{"node":">=18"},"gitHead":"82083dd25ec52e57b3bfd8e86d2c3a9b6a292b99","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.47.0_1789710146707_0.5589228816500007","host":"s3://npm-registry-packages-npm-production"}},"3.48.0":{"name":"sprag-cli","version":"3.48.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"Apache-2.0","_id":"sprag-cli@3.48.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"65a601723bddb366040aaf322eb24262346130a9","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.48.0.tgz","fileCount":88,"integrity":"sha512-VOZmpbvFk/b2n6y52mxGLeMi7pwF9OtQpaY5yvquyZKI1oy/Kt3Yg5wnjbMx5fyw7ufaVq576ARGLc2SfjZh8A==","signatures":[{"sig":"MEYCIQDisgtGqMsLKNOWFWHbHnuos/Rqp85RUz7WfvXtSVpoYwIhAPNy/CFPDQXki0Sz464gPFdbmS4Jaxvfl5JNN/gBB7U8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEYSKnp9TJI6lO+LgpowD4GTBYe8vbTRRVReG/keeFJtAiEA61fEXlqCEXStHSSUMfOWGQp4wUR5d6PPLCqkG5q7P2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":867310},"type":"module","engines":{"node":">=18"},"gitHead":"568e0869d33ad4be8509b3be75751c017b1c26d5","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.48.0_1789717394832_0.24335962332595606","host":"s3://npm-registry-packages-npm-production"}},"3.49.0":{"name":"sprag-cli","version":"3.49.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"Apache-2.0","_id":"sprag-cli@3.49.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"c7140aaeed7550a774c45efd6627ee0a48354d5b","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.49.0.tgz","fileCount":88,"integrity":"sha512-uAaebZjZNGj20Q87tsdBX0Ro/rlOO3nSQyFAJY/fvJW+eVH9BOicQONC1GTF4kHgR2rA3fj6o4jIQ4TpHianGQ==","signatures":[{"sig":"MEQCIF4EMg1t6vPWuA0NZwpA1Z0JqGt0PBLqVs3SqfC3YRdyAiA1zrv9WS5VJxNln5mWkvid1lfojRBDPyWYO6L5HbQjdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHJbaL5hixTsWSTPM5DNuEbhVkVPVakKfM1sErX48SHIAiEAg8HT3REp1OVIUkVdOWVZL2cfp/arbSVfy07/5uR/QFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872351},"type":"module","engines":{"node":">=18"},"gitHead":"53c199ec830186ebdcc17b3b822a67d4a4687294","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.49.0_1789720221292_0.32436652310736225","host":"s3://npm-registry-packages-npm-production"}},"3.50.0":{"name":"sprag-cli","version":"3.50.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"Apache-2.0","_id":"sprag-cli@3.50.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"0d9106055350e8b72eff7de1b72627c100bd0c15","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.50.0.tgz","fileCount":90,"integrity":"sha512-YuO7I1b4lYMP3UJ0qfhW51B6xBrb+lqSDKvMr+YPQK0ajGlw5AqZta7SZSUbvwQUNRbrqr7spX9XqE785kKHGQ==","signatures":[{"sig":"MEUCIFoaQq6psGeFqS2YltdzJdNH9VNKquKaz3uwO8PxPLPiAiEAzuH2/73c9UvD9r9E7AlyiJc8Pld77bE3L+CrH02amGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAi0C4ZCWdgWI7mXgonK2kLogZ7TXHsRZabs/e9A0s5XAiBCTtdA1a8N7NK13ZWXawfmL9DovKDXxliBrvLvmxjrQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":890859},"type":"module","engines":{"node":">=18"},"gitHead":"ede8aedc1dcbd5d77d82430eb531be91a06632fe","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","site:docs":"node scripts/build-site-docs.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.50.0_1789870478973_0.8701308143572755","host":"s3://npm-registry-packages-npm-production"}},"3.50.1":{"name":"sprag-cli","version":"3.50.1","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"Apache-2.0","_id":"sprag-cli@3.50.1","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"87031015e13d8f0112fad3ab48a85e5de0b6ae55","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.50.1.tgz","fileCount":90,"integrity":"sha512-LBYLz525NjhMuiL7ssJ3PxbxkD78RVzgPhZ8ABy8qYRca1lxaUnRqSIKCPGlHjFf5VKt66wQ/ywFKpIgNDF6pg==","signatures":[{"sig":"MEUCIQCNWjTLNEsni/x66lPTbPqtHd/zimdgexr1kwFHo3CKLAIgDseAh4bGqGzEOm6a/y0b3wwbJT+Txpd+GdwuVBcwnto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDiufkM+i6vjm34aczITpofvqRrCFDfYKOfrKXdW5N5CAiArxOKxqBpM93VD57IQIzAUVxMEccvZ2kCNzz+/9AQnbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":892151},"type":"module","engines":{"node":">=18"},"gitHead":"f25e9fbc48ad9c46e9a32db69ad03745a5a8868b","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","site:docs":"node scripts/build-site-docs.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.50.1_1789905897561_0.5548947970821956","host":"s3://npm-registry-packages-npm-production"}},"3.51.0":{"name":"sprag-cli","version":"3.51.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"Apache-2.0","_id":"sprag-cli@3.51.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"69762314394628a791af17a177789cea5fc22acc","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.51.0.tgz","fileCount":90,"integrity":"sha512-rgRuBsQ4KAXRbmXQTYixlSGjOXHr+5nFII7n3DoWT5QG+XDwTTZxW647SYJ9dECOo7Vdq9t8BgxN9d6kWBR3gg==","signatures":[{"sig":"MEUCIQDnT7zxAFU+zzNb4HcY4zA0+C6UJlgKh4r/nk7SZLCV6QIgQE3jwOrirLuO2ITLrPdcrasvWMvo/NRy6TthYcNTXE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDxCNdXTNvLTuXRwSIgPeR1w35AAss66l6QvCjx293gLAIgKYfnv7FsVDkayB/sp9HUfRKiPkpFB5GAaq5hcCn1O8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":902636},"type":"module","engines":{"node":">=18"},"gitHead":"f34a75c88f9756af00c2bf2e52c1a79fc22f5ace","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","site:docs":"node scripts/build-site-docs.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.51.0_1789944976312_0.9604535199844275","host":"s3://npm-registry-packages-npm-production"}},"3.52.0":{"name":"sprag-cli","version":"3.52.0","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"Apache-2.0","_id":"sprag-cli@3.52.0","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"homepage":"https://sprag.io","bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"dist":{"shasum":"8e89992511263281f515d826247cc63193f45517","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.52.0.tgz","fileCount":90,"integrity":"sha512-i7Twc7My7cgD3hj6Mj2aR7bjDt06sSa9Ku1L2jliUgZ7RFeBaXQ7/mqtB/exMemKfkRmV1qj6b3qjdy4OEPQJA==","signatures":[{"sig":"MEUCIQDCP5G+sWJPhMpmezKWiklMFlP5A6nNKD9fWkFdVL7YlAIgfXkaiA+4I+wdEk+C1PnPp9YyqptKcAoMTEyUnQkJfF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFbpRSxXx4fX88OA+PmTzUKM6snvEhfvR9EjfMeUCSHMAiEAoqqtktcnGEKuYovXK1tsUQx7Ux34JJn8ntYMDsnI3Fk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":907161},"type":"module","engines":{"node":">=18"},"gitHead":"e41c7dd8a5c753a7220cd7a5a242e5e1e7f4be65","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","site:docs":"node scripts/build-site-docs.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sprag-cli_3.52.0_1789977537727_0.12858365726973742","host":"s3://npm-registry-packages-npm-production"}},"3.53.0":{"_id":"sprag-cli@3.53.0","bin":{"sprag":"bin/cli.js","claude-token-saver":"bin/cli.js"},"bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"dist":{"shasum":"3c829022adf87fe81e107e8fab5d3f3db037f836","tarball":"https://registry.npmjs.org/sprag-cli/-/sprag-cli-3.53.0.tgz","fileCount":94,"integrity":"sha512-8jqIgepVAcW/RwyR6n8n6sX0CVUZ121xs/QaOFSm9AJtgHVMzax83Z+PA7Pax4lhoMhKj7/FyupHb27nDPuFww==","signatures":[{"sig":"MEUCIGzNHRPnRagUiL3g8WjHCqnGoWKTSqxU3Osa2bEGdjVYAiEA71HqEeELTYdCfoxVUgBU79km436XkTFrGKbWKMul0MU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD5OO1gmxCPBb+1N+2w+NA5+Xry/CooQuWPQpVByrjkWwIgX7z/H+KfG4DiccpAETQ42eLSdWBgxmW26/CTbyRPZs8="}],"unpackedSize":950055},"name":"sprag-cli","type":"module","author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"engines":{"node":">=18"},"gitHead":"c3642b32afea3bbb1362675c68b731a573e6878c","license":"Apache-2.0","scripts":{"test":"node --test","deploy":"node scripts/deploy.mjs","site:docs":"node scripts/build-site-docs.mjs","postinstall":"node bin/cli.js install || true","release:notes":"node scripts/release-notes.mjs","publish:legacy":"node scripts/publish-legacy.mjs","docs:statusline":"node scripts/docs-statusline.mjs"},"version":"3.53.0","_npmUser":{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"},"homepage":"https://sprag.io","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"_npmVersion":"11.17.0","description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","directories":{},"maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sprag-cli_3.53.0_1789983611900_0.1968275612776078"}}},"time":{"created":"2026-09-13T13:48:38.731Z","modified":"2026-09-21T09:40:12.172Z","3.40.0":"2026-09-13T13:48:39.000Z","3.40.1":"2026-09-13T13:56:14.229Z","3.41.0":"2026-09-13T13:59:39.215Z","3.42.0":"2026-09-13T14:36:53.942Z","3.42.1":"2026-09-13T14:44:31.946Z","3.42.2":"2026-09-13T14:47:31.752Z","3.42.3":"2026-09-13T14:50:11.745Z","3.42.4":"2026-09-13T15:01:22.560Z","3.42.5":"2026-09-13T15:06:57.670Z","3.42.6":"2026-09-13T15:21:16.548Z","3.42.7":"2026-09-13T23:50:00.775Z","3.42.8":"2026-09-14T02:48:29.727Z","3.43.0":"2026-09-14T12:58:15.253Z","3.44.0":"2026-09-15T00:24:22.940Z","3.45.0":"2026-09-15T13:54:17.317Z","3.46.0":"2026-09-15T16:21:33.618Z","3.46.1":"2026-09-15T17:17:01.189Z","3.46.2":"2026-09-16T07:05:28.110Z","3.47.0":"2026-09-18T05:42:26.800Z","3.48.0":"2026-09-18T07:43:14.944Z","3.49.0":"2026-09-18T08:30:21.412Z","3.50.0":"2026-09-20T02:14:39.129Z","3.50.1":"2026-09-20T12:04:57.662Z","3.51.0":"2026-09-20T22:56:16.403Z","3.52.0":"2026-09-21T07:58:57.826Z","3.53.0":"2026-09-21T09:40:12.005Z"},"bugs":{"url":"https://github.com/rootstudioyaml/sprag/issues"},"author":{"url":"https://www.youtube.com/@DeepPulseKR","name":"DeepPulse"},"license":"Apache-2.0","homepage":"https://sprag.io","keywords":["sprag","ratchet","harness","ai-agent","claude","claude-code","anthropic","model-routing","llm-router","delegation","subagent","haiku","cost-savings","token-usage","prompt-caching","cache","statusline","cli","1m-context","claude-code-statusline","claude-code-cost","model-fitting","agent-harness"],"repository":{"url":"git+https://github.com/rootstudioyaml/sprag.git","type":"git"},"description":"Sprag - a quality ratchet harness for AI coding agents: model-fitting delegation, ratchet rules, doc2md, Korean style gate. Same tool as claude-token-saver, under its new name.","maintainers":[{"name":"root.studio.yaml","email":"root.studio.yaml@gmail.com"}],"readme":"<div align=\"center\">\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/rootstudioyaml/sprag/main/site/assets/logo/sprag-lockup.svg\">\n  <img alt=\"Sprag\" src=\"https://raw.githubusercontent.com/rootstudioyaml/sprag/main/site/assets/logo/sprag-lockup-light.svg\" width=\"220\">\n</picture>\n\n**A quality ratchet for your coding agent. Forward motion passes, backspin locks.**\n\n[![npm](https://img.shields.io/npm/v/sprag-cli.svg?label=sprag-cli)](https://www.npmjs.com/package/sprag-cli)\n[![downloads](https://img.shields.io/npm/dm/sprag-cli.svg)](https://www.npmjs.com/package/sprag-cli)\n[![license](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](./LICENSE)\n\n[English](https://github.com/rootstudioyaml/sprag/blob/main/README.md) · [한국어](https://github.com/rootstudioyaml/sprag/blob/main/README.ko.md)\n\n[sprag.io](https://sprag.io) · [Benchmark](https://github.com/rootstudioyaml/sprag/blob/main/docs/BENCHMARK.md)\n\n</div>\n\n---\n\nSprag is named after the sprag clutch: forward motion passes, backspin locks.\nYour agent keeps working, it just stops regressing.\n\nIt reads the sessions you already ran, and what it finds there holds for every\nsession after. Repeated failures become rules loaded at session start. Work that\na cheaper tier has never got wrong goes to a sub-agent on that tier, and every\ndelegated run writes its own price difference to a ledger. Cache and rate-limit\ntrouble reaches your statusline while you can still act on it.\n\nNothing leaves your machine, because it reads only the logs Claude Code already\nwrites there. No API key, no extra model calls, no runtime dependencies.\n\n```bash\nnpm i -g sprag-cli   # the old claude-token-saver package still gets the same releases\n```\n\n![statusline example: routing savings on row 1, document conversion savings on row 2, diagnostics on row 3](https://raw.githubusercontent.com/rootstudioyaml/sprag/main/docs/statusline.png)\n\n## How it works\n\n<picture>\n  <source srcset=\"https://raw.githubusercontent.com/rootstudioyaml/sprag/main/docs/how-it-works.svg\" type=\"image/svg+xml\">\n  <img src=\"https://raw.githubusercontent.com/rootstudioyaml/sprag/main/docs/how-it-works.png\" alt=\"What goes in: your past sessions, the task you just asked for, a document you would attach, Korean prose being written, and the tokens this turn is spending. What sprag does with it: writes a ratchet rule loaded every session, converts the document, checks the Korean as you write, prints the cost in your prompt, and routes a matched task to a haiku or sonnet sub-agent whose output the main agent reviews.\">\n</picture>\n\nEverything on the left is something your session already produces. Nothing is\nsent anywhere to read it. The tier decision at the bottom is the whole routing\nargument in three tests: where the answer lives, whether a mistake surfaces, and\nwhat error rate the rule was measured at.\n\nSprag does not swap the model you asked for. It reads what you have already run,\nfinds the kinds of task that never went wrong on a cheaper tier, and spawns a\nsub-agent for exactly those. The main agent reviews what comes back before\nanything counts as done, and the work returns to it the moment a rule stops\nholding.\n\n## Measured results\n\n| Metric | Result | | Evidence |\n|---|---|---|---|\n| Public benchmark accuracy | **59.1%** vs 57.9% best single model | `▰▰▰▰▰▰▰▰▰▰▰▰` | [benchmark](https://github.com/rootstudioyaml/sprag/blob/main/docs/BENCHMARK.md) |\n| Cost for the same queries | **$268** vs gpt-5 $388, gemini-2.5-pro $734 | `▰▰▰▰▰▱▱▱▱▱▱▱` | [benchmark](https://github.com/rootstudioyaml/sprag/blob/main/docs/BENCHMARK.md) |\n| Tokens for the same documents | **−95.9%**, 2,011,178 → 82,209 over 12 files | `▰▱▱▱▱▱▱▱▱▱▱▱` | [doc2md](https://github.com/rootstudioyaml/sprag/blob/main/docs/DOC2MD.md) |\n| Delegation savings, from the ledger | **$44.67** over 69 delegated runs | `▰▰▰▰▰▰▰▰▰▰▰▱` | `sprag route-scan savings` |\n| Cheap tier on the same prompts | **24% of the cost**, one answer worse out of eight | `▰▰▰▱▱▱▱▱▱▱▱▱` | [A/B run](#the-cheap-tier-on-the-same-prompts) |\n\nThe first two rows answer the objection that comes up first: that moving work to\na cheaper model has to cost you accuracy. It did not. The same criteria, wired up\nas a router, scored 1.2 points above the best single model at a third of the\ncost. Nothing is best at everything, which is why choosing per task beats\nchoosing once.\n\nMeasured offline on LLMRouterBench (Findings of ACL 2026): 11,696 instances, 13\nmodels whose answers, scores and costs ship with the dataset. No model was\ncalled and nothing was spent. The router chose; the numbers were looked up. Run\nit again and you get the same figures. It validates the criteria, not sprag's own\nrouting: the dataset has no Claude models, so deepseek-v3, qwen3-235b and gpt-5\nstood in for cheap, mid and flagship.\n\nThe last three rows are ledgers on this machine. They grow as it runs. These were\nread on 2026-09-18.\n\n### Current, on one machine, last 30 days\n\n```\n🔀 Routing saved $44.67 total        (last 7d $23.21 · last 30d $42.73)\n\n   opus-5 → sonnet-5     59 runs    $39.75   ▰▰▰▰▰▰▰▰▰▰▱▱\n   opus-5 → haiku-4.5    10 runs     $4.92   ▰▱▱▱▱▱▱▱▱▱▱▱\n```\n\n| Also measured | Over 30 days | |\n|---|---|---|\n| Documents converted | 12 files, 2,011,178 → 82,209 tokens | `▰▱▱▱▱▱▱▱▱▱▱▱` |\n| Cache hit rate | 92.2% | `▰▰▰▰▰▰▰▰▰▰▰▱` |\n| Volume behind both | 175 sessions · 14,682 API calls · 3.81B input tokens | |\n\nReal output, from `sprag route-scan savings`, `sprag --days 30`, and the doc2md\nledger. Nothing here is a projection.\n\nEvery delegated run records its own price difference, so `sprag route-scan savings` traces any amount back to the rule that caused it. What the ledger deliberately leaves out is written down in [the command reference](https://github.com/rootstudioyaml/sprag/blob/main/docs/COMMANDS.md).\n\n## Everything ships in one install, working from day one\n\n| | What it does | More |\n|---|---|---|\n| ⚙️ **Ratchet rules** | Repeated failures become one-line rules loaded every session. Candidates are detected from your logs, and you choose project or global scope. | [harness](https://github.com/rootstudioyaml/sprag/blob/main/docs/HARNESS.md) |\n| 🔀 **Model fitting** | Log-driven delegation rules carrying the error rate they were measured at and the savings they reported, written to `ratchet-model.md`. | [route-scan](https://github.com/rootstudioyaml/sprag/blob/main/docs/ROUTE_SCAN.md) |\n| 🅷 **Harness score** | Five operating principles checked live. Skip the verify step and `🅷 4/5` says so before you report done. | [harness](https://github.com/rootstudioyaml/sprag/blob/main/docs/HARNESS.md) |\n| 📊 **Token telemetry** | Cache hit rate, TTL, context size, output spikes and both rate-limit windows, in the prompt every turn. | [statusline](https://github.com/rootstudioyaml/sprag/blob/main/docs/STATUSLINE.md) |\n| 📄 **doc2md** | pptx, xlsx, pdf, docx and fig converted on demand, so a document costs one read instead of your whole context. | [doc2md](https://github.com/rootstudioyaml/sprag/blob/main/docs/DOC2MD.md) |\n| 🇰🇷 **Style gates** | Write-time prose lint enforced by hook. Shipping today for Korean technical writing: double passives, translationese, cohesion. | [style](https://github.com/rootstudioyaml/sprag/blob/main/docs/KOREAN-STYLE.md) |\n\nThe two savings figures are never added together. They measure different things:\nthe routing ledger records the price difference on delegated runs, and the\nconversion ledger records tokens a document did not cost.\n\nNeither one counts what the harness and the ratchet rules save. That saving\narrives as fewer round-trips rather than as cheaper ones.\n\n## The statusline in one line\n\n```\n🔀 Routing saved $44.67  |  opus→sonnet 59× $39.75 · opus→haiku 10× $4.92\n🚨 5H ▰▰▰▰▰▰▰▰▰▰▰▱ 94% 🔄 12:36 · 🅷 5/5 · 🤖 Opus 5 · 🧠 Cache hit 98.8% · ⏳ Cache expires 59:46 · 📅 weekly ▰▰▰▰▰▱▱▱▱▱▱▱ 38% · 💵 Sep $42 · 📦 Ctx 47% of 1M\n```\n\nWhen something is wrong the warning chip leads the line: `🚨 5H/7D NN%`, `⚠ Ctx 500k+`, `⚠ Cache miss`, `⚠ Input spike`, `⚠ Output heavy`, `⚠ Call surge`, `⚠ Rebuild churn`, `⚠ 5m TTL`. Paste the chip text into Claude and the Skill names the root-cause code and the fix. Every segment is explained in [the statusline reference](https://github.com/rootstudioyaml/sprag/blob/main/docs/STATUSLINE.md).\n\nInside a JetBrains IDE terminal the chips render as single-cell glyphs instead of emoji (`◉ Cache hit 98.8% · ◧ Ctx 47% of 1M`). The IDE's default font has no emoji glyphs, so emoji leave characters from the previous frame on screen, like `Cache expires 4:545`. [Label modes](https://github.com/rootstudioyaml/sprag/blob/main/docs/STATUSLINE.md#label-modes) covers the detail, plus `sprag mode narrow` and `mode icon-force`.\n\n## The cheap tier on the same prompts\n\nThe benchmark uses public data. This asks the same question of my own work: eight\nprompts from real sessions in this repository, sent to both tiers, graded against\nan answer written before the run (2026-09-17, raw data in\n`video/out/measure2.json`).\n\n| | flagship (opus-5) | cheap tier (haiku-4.5) |\n|---|---:|---:|\n| Cost for all eight | $2.5652 | **$0.6132** (23.9%) |\n| Graded correct | 7 / 8 | 6 / 8 |\n| Gave the same answer | | 6 / 8 |\n\nThe prompt both tiers missed is the useful one. It asked which files reference\n`process.env` without saying whether subdirectories counted, and the two read it\ndifferently. Adding that one condition made their answers identical. The question\nwas ambiguous, not hard.\n\nThe remaining miss is the cheap tier leaving entries out of a file listing. A\nwrong listing is one you can see is wrong, which is the second criterion doing\nits job.\n\nSo the cheap tier is not free. On this sample one lookup in eight comes back\nworse, for a quarter of the price. That is why rules only send work whose failure\nsurfaces, and never send design or diagnosis.\n\n## What the method has produced here\n\n| Measured | Value | Sample | Window |\n|---|---|---|---|\n| Documents converted | 2,011,178 → 82,209 tokens | 12 files (xlsx, pptx, pdf) | to 2026-09-18 |\n| Delegated runs | $44.67 saved, $0.65 per run | 69 runs | to 2026-09-18 |\n| Ratchet rules accumulated | 37 (30 global, 7 per-project) | 4 repositories | 2026-05-08 to 09-16 |\n\nThe two counts grow differently. Ratchet rules come from mistakes a person made,\nso they keep coming. Delegation rules stop: the criteria recognize a fixed set of\nwork types, and once each has a rule there is nothing left to promote.\n\n## Day-to-day commands\n\n| Command | What it does |\n|---|---|\n| `sprag` | Last-1-day diagnostic report |\n| `sprag handoff` | Back work up to markdown before a cap blocks you |\n| `sprag route-scan` | Find delegation candidates in your own history (0 LLM calls) |\n| `sprag route-scan savings` | The routing-savings ledger |\n| `sprag harness check` | Current 🅷 harness score |\n| `sprag doc2md <file>` | Convert one document to Markdown |\n\nEvery subcommand, flag and the output-language setting: [command reference](https://github.com/rootstudioyaml/sprag/blob/main/docs/COMMANDS.md).\n\n## Documentation\n\n| Doc | Covers |\n|---|---|\n| [Install](https://github.com/rootstudioyaml/sprag/blob/main/docs/INSTALL.md) | What the install turns on, what stays manual, how to turn each part off |\n| [Statusline](https://github.com/rootstudioyaml/sprag/blob/main/docs/STATUSLINE.md) | Segments, warning chips, spike issue codes, update notifications |\n| [Commands](https://github.com/rootstudioyaml/sprag/blob/main/docs/COMMANDS.md) | Full CLI surface |\n| [Harness](https://github.com/rootstudioyaml/sprag/blob/main/docs/HARNESS.md) | The five principles, rule promotion, compact-window pinning, seed presets |\n| [route-scan](https://github.com/rootstudioyaml/sprag/blob/main/docs/ROUTE_SCAN.md) | Tier verdicts, rule-file mechanics, scan triggers, subagent setup |\n| [Tier criteria](https://github.com/rootstudioyaml/sprag/blob/main/docs/TIER_CRITERIA.md) | Why T0/T1/T2 split where they do, with sources (Korean) |\n| [Benchmark](https://github.com/rootstudioyaml/sprag/blob/main/docs/BENCHMARK.md) | The 11,696-instance LLMRouterBench run |\n| [doc2md](https://github.com/rootstudioyaml/sprag/blob/main/docs/DOC2MD.md) | Supported formats, savings evidence, editing documents, DRM cases |\n| [Korean style](https://github.com/rootstudioyaml/sprag/blob/main/docs/KOREAN-STYLE.md) | What gets injected, the write-time check, before/after |\n| [Not a router](https://github.com/rootstudioyaml/sprag/blob/main/docs/NOT-A-ROUTER.md) | Why realtime routing breaks the cache and costs more |\n| [Gateways & environment](https://github.com/rootstudioyaml/sprag/blob/main/docs/GATEWAYS.md) | Bedrock, Vertex, LiteLLM budgets, pricing table, FAQ, how it works |\n\nBehind a LiteLLM gateway, `sprag profile-map --refresh` now reads model aliases straight from the gateway's own `GET /model/info`, so route-scan no longer needs to wait on learned votes or a hand-edited `profile-map.json`. The refresh uses the same 5-minute check and 24-hour cache as the LiteLLM budget gauge. It never stores your auth token: each refresh reads it from `apiKeyHelper` at call time and lets it expire on the helper's own schedule. Details: [route-scan](https://github.com/rootstudioyaml/sprag/blob/main/docs/ROUTE_SCAN.md).\n\n## Release notes\n\nThe full history moved to [CHANGELOG.md](./CHANGELOG.md) (Korean; version headings and command names are language-neutral). Recent changes:\n\n- **v3.39.0**: `feedback` subcommand for filing bug reports and feature requests straight from the terminal or a Claude session, via the gh CLI, an anonymous no-login form (auto-filed as a GitHub issue by an Apps Script relay), or a local fallback. `install` now asks before replacing an existing statusline instead of silently skipping.\n- **v3.38.0**: `cohesion on` turns the language-neutral cohesion rules from the Korean supplement into a standalone English injection (given-before-new, one referent per pronoun, subject consistency, bridging, merging choppy sentences). Opt-in, ~0.5k tokens per session, suppressed while `korean on` already carries them.\n- **v3.37.0**: Korean guidance grows a conservative supplement (translationese, AI-writing tics, a research-backed cohesion section whose principles apply to English prose too) and the write-time lint gains 5 translationese patterns, validated at 1 false positive across 255 real files.\n- **v3.35.0**: A `💵 Sep $42` segment now shows estimated spend since 00:00 on the 1st of the current month, always on, including gateway setups with no 5h/7d caps. LiteLLM gateway users get a `🔑 budget ▰▱ 34% $34/$100` gauge built from the key's budget (`GET /key/info` + `GET /user/info`, team-membership budget first, then key, then internal user, verified against a Dockerized LiteLLM).\n- **v3.34.0**: seed presets offered one at a time, output-language choice at install, context warning raised to 500k.\n\n## Feedback\n\nBugs and feature requests go in the issue tracker: https://github.com/rootstudioyaml/sprag/issues\n\nWith no browser or GitHub login at hand (corporate network, mid-session), submit straight from the terminal instead, or ask Claude to do it for you:\n\n```bash\nsprag feedback \"the 5m TTL chip never clears on Bedrock\"\n```\n\nIt files a GitHub issue through the `gh` CLI when one is authenticated. Otherwise it submits anonymously, with no login, which works where github.com is blocked. Pass `--anonymous` to skip the `gh` path. Version and OS metadata are attached automatically.\n\nFor a bug, please include the tool version (`sprag --version`) and your OS. For a statusline or warning issue, add the statusline output or the `sprag last` result.\n\n## License\n\nApache License 2.0. The full text is in [LICENSE](./LICENSE), and the attributions\nit requires are in [NOTICE](./NOTICE).\n\nReleases up to and including v3.47.0 went out under the MIT License. A copy\nreceived under those terms stays under them; the new license applies to\nreleases after that.\n\n**Running sprag inside a product or a paid service?** The license already permits\nthat, so this is not a request for permission. We would like to hear about it\nanyway, because the parts that get awkward at scale are the parts we would rather\nfix than have you work around: shared ratchet rules across a team, gateway setups\nwhere the model id is an opaque profile, and per-seat budget reporting. [Open an\nissue](https://github.com/rootstudioyaml/sprag/issues) or reach us through the\nchannels below.\n\n---\n\n## Who makes this\n\n[![DeepPulse YouTube](https://img.shields.io/badge/YouTube-@DeepPulseKR-FF0000?logo=youtube&logoColor=white)](https://www.youtube.com/@DeepPulseKR)\n[![DeepPulseEN YouTube](https://img.shields.io/badge/YouTube-@DeepPulseEN-FF0000?logo=youtube&logoColor=white)](https://www.youtube.com/@DeepPulseEN)\n[![Homepage](https://img.shields.io/badge/Homepage-rootstudioyaml.github.io-2ea44f)](https://rootstudioyaml.github.io/)\n\nBuilt at **DeepPulse**, a channel about AI developer tooling, and used there every day. The [launch Short (60s)](https://www.youtube.com/shorts/RaD8qMsPTnA) covers where it came from and how it gets used.\n","readmeFilename":"README.md"}