{"_id":"teamclaude-cloud","_rev":"38-db1b39f2eb76d7ce9e6552c3b6565baf","name":"teamclaude-cloud","dist-tags":{"latest":"1.14.0"},"versions":{"1.4.1":{"name":"teamclaude-cloud","version":"1.4.1","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.4.1","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"c5a605d1bdea013248518dcb9f0dab4375cb8c14","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.4.1.tgz","fileCount":9,"integrity":"sha512-2EksM3t3R0eg2sDO2fnnUB1Vn55p6r/rEPrRhtfYzZ2u++nUoVI9G0lSp7m0DDFsD4sE59nRs/P9jbQMGeq9rA==","signatures":[{"sig":"MEMCIGwphdG71btWjV+aY7kajqSDdT6C4JfS3n0+rYpubdkKAh93racChTO/UxsFM8UIsLmoDHhO+JpjG2obG34Ad5Ec","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305957},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"f6ad939aeab8f4fe16823645c2b3a5e85d1a5118","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.4.1_1784391819446_0.45010544799740626","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"teamclaude-cloud","version":"1.4.2","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.4.2","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"2352dd4f355069fe9fc8cc88edd651a64c0c9174","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.4.2.tgz","fileCount":9,"integrity":"sha512-/KrCxaJPjuayC9xPxko8UIs9YOOyQt8p2BpC9t3HgVqh7s5zEqNT28U8LH+5qvxclJpRRUHEdVYeVKybPygpuw==","signatures":[{"sig":"MEYCIQCKxYgXsafcQyJUhr910OF64guFgySOpbZKJyOqZGYtaQIhALhQPecZQ9VGo6llU7bHSWJmudvDLkBxTaSYZa3KR+lK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":307990},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e1fe802ea62b58b08a8b4479913db5b0602c570a","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.4.2_1784508346598_0.8244732578091833","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"teamclaude-cloud","version":"1.4.3","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.4.3","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"600785a1c08701fcf70acd3152f442ae85c6784d","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.4.3.tgz","fileCount":9,"integrity":"sha512-wOTg5V1Rsmd+VZXq0JkxUPtbmXQg6bB20IdV+CejN+i54x9Esobv86iidwSWxvL1qbglcn8cuj62HILGKXpuSg==","signatures":[{"sig":"MEUCIQDYMx4jKl0V92Qg72Qwb13qqM3+0/MM5Jh2A8j+ZIiV/AIgdq8iNgXcJK2fbkAh3V7Da66yQ4iXeD8zZjskhti4W0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314114},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"6e616d5e4eef5de715db382ea0d7651723c77bcc","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.4.3_1784512650248_0.8082689673626571","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"teamclaude-cloud","version":"1.5.0","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.5.0","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"0ec837c9fc6627cbc11b5b8baa9dc4eeabf11cf0","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.5.0.tgz","fileCount":9,"integrity":"sha512-IParnseiwB43kb3/eoyE8l4N4tKjxIyFDbqsXq+DwdPmGFaWQFt5FyW+9ZlNw4RM+Vjb/7SzgfVVZoT0BF6w5w==","signatures":[{"sig":"MEUCIGayCmtxhT0Vx4rOzuPvFPz3xHLnFk2h/JtQ8Yt0lNTxAiEAizhQnSAqNaBRm9qzwVWL1HXD77mm766qLnRxBvWx6ws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321245},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"79f3bad5b2d3d327269b2842753727d93b0c1bc3","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.5.0_1784529654559_0.7558066297338915","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"teamclaude-cloud","version":"1.5.1","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.5.1","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"2cbb636a91d393bd01b6e6bff41a95fa98d9a42b","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.5.1.tgz","fileCount":9,"integrity":"sha512-G/u7QWr9hB3kfrtrJ1P/Qo10y7/REISzFAJvWWZokSxz/UkZvmOMME8qW3CDvDjoydmKE4dBK8OloYzgPrQWJw==","signatures":[{"sig":"MEUCIQC3Z1Bc/BtDvgwez/ekbBjTCkMQja2302Ws0crK/zUWIAIgLAYXoKPvth7bvNRI6tHzuqb/Hwn1lsy1JKDzmc4d0N0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323882},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"5514be8d03533102818ec69c0f0fdc572dd765bf","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.5.1_1784530408360_0.1178571183475916","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"teamclaude-cloud","version":"1.5.2","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.5.2","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"461e66395bf979244df69ba63a31e63410c20fe1","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.5.2.tgz","fileCount":9,"integrity":"sha512-7qsISh0tz9J3aVdHsDXsZPBWWM1TJkjil4O12XSTaJt642kPfvYZdRdzKRXI1UUT0gRRooalEQKrbB5sz/izxg==","signatures":[{"sig":"MEUCIAEICSEel0qSkVFP9RbZn24im4yjBSjTUk9vqFqSu9cGAiEA0O+lJQelJKj58GM63kzedzxMJ/m0gMvZI3hna8f3DmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326964},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3da5c2865a78eaa448aa963b244cdd88e3f7925e","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.5.2_1784531437723_0.34127727932148","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"teamclaude-cloud","version":"1.5.3","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.5.3","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"2163835d038d2ac69634e0b8251809d5354bd80b","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.5.3.tgz","fileCount":9,"integrity":"sha512-xdLt3gl+jA+1y8DgpcNfZ0zemQFT0BU9HZpJlkqts29DY7lHXCANN7EYI1uJe5H8GuJeXX8rIe3l0yZx/tBwog==","signatures":[{"sig":"MEUCIACuFTNbSDKVOv90rjnkwXcljYakwGUFnNu+A7BQjsbnAiEA1g1K2UfKUhKgFq9/lk+5qK6ttZ5By/XoqWlLFCyVOfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326358},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"b4a6653805664a3d0e379180774dcd9176e9afb8","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.5.3_1784533457542_0.05695007518576278","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"teamclaude-cloud","version":"1.5.4","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.5.4","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"b5cf7ab141e71baf3eecf6d461e2c6c25848beb2","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.5.4.tgz","fileCount":9,"integrity":"sha512-c4lR9CtGchGMaTy9yYYXNrmYbDvVk2q5E5Fr2ilFPUl8PIlj+gYyg6pTZ6GoBJr1ZJG4e3rvvJQfIg7D8yHUyg==","signatures":[{"sig":"MEUCIBGl/htSbmGTin7KmAjJ7JUr7Veeh4K+xcaf20UntOnUAiEAqoh6P04OGrTvcjvOZJwmtecRExFGpwnScAenxyRkedU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326358},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"a18574401debe853751d72ed7a268746d914cf68","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.5.4_1784536309447_0.5428742547327321","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"teamclaude-cloud","version":"1.5.5","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.5.5","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"e80d42912c86c616c49b23c69764c3e5e52b49ec","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.5.5.tgz","fileCount":10,"integrity":"sha512-NZ49bwwhmzDsZ/i1aPH1Xf4OZcoKxUA/PSlE9d8xRsrkrpyO9fgS8I2W6G/HHowl6nYOouiew9CfD3Opdj7dyw==","signatures":[{"sig":"MEUCIQCsvq37Nva6oQ4+vPYSF4Th6sr29yRlRXLBtOsvCEP/hAIgIgf0ta3rbiVtFpzXicnDtNBUqV7Ut6btDr9a9XrwjXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331243},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"6d9a796d2a55d5485053c8d1be6538d4b2e0250b","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.5.5_1784595039387_0.6787218316449584","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"teamclaude-cloud","version":"1.5.6","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.5.6","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"abb36d4e8221a1bf8a59a8784717371f0c828948","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.5.6.tgz","fileCount":10,"integrity":"sha512-zaY+quYC0zrb00dWuec9vA10kVUGw6aosLWMiAOxmn2C5eJpqVhBOG752bDEx/4ROIQR8A3GMJ2eH7SlYLDh6g==","signatures":[{"sig":"MEQCIDySAKbKZDckqHBFMqm9zkD+tL/hYGCn+meMAvwccCl8AiBiab3+V34xxAzR4/yQPmzgiS82MjpwDfDqDv2846onLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332207},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"eaabb02c6346c00f96da092dce7606ac4f0873aa","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.5.6_1784596112007_0.20887605803837217","host":"s3://npm-registry-packages-npm-production"}},"1.5.7":{"name":"teamclaude-cloud","version":"1.5.7","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.5.7","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"967c02d802061c64b2cf4f4306678efd2cd94559","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.5.7.tgz","fileCount":10,"integrity":"sha512-mZ78cF/iBZUerAxY1TFAeg7SGWpECuaklwDsjI3A2Q/xuN6gX4xbXFfOnQijzXACbqR9f5FHU/jtH7Mjmo9a9Q==","signatures":[{"sig":"MEUCIEkmR7cEhu2/okHeCrDXqVufztravUMUxSkvbAVr62ogAiEAjdaRkZbcsz8x4H/eUSdThV5kdRVg1gdh+yQMSfifzMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332603},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"bfb50f5d5bf3fbda517320d53911572690dd2313","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.5.7_1784597557989_0.8270670435387093","host":"s3://npm-registry-packages-npm-production"}},"1.5.8":{"name":"teamclaude-cloud","version":"1.5.8","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.5.8","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"57cffb7ba150d68960b9668e097e283020a5c9a3","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.5.8.tgz","fileCount":10,"integrity":"sha512-/PFviWf0wn4vaeUf0llQrB8G5w7kFAwXS/t3x2IoI+Adpa0dLPeQNWdqy/WOGumXhKbGZTDn1PVhbIdzgu/LUQ==","signatures":[{"sig":"MEUCIAwqej8qT0K3FW07QjMrQH93Cv+V+U549W8uQRlZyfvPAiEAt+sjS/r5HMdwCd0vYjbeeAZrKv2mJyOOUmqkkeey+Gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334450},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"77296ee36a8b9e478a9c650495b3745f7f15704f","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.5.8_1784600363108_0.2980654820939781","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"teamclaude-cloud","version":"1.6.0","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.6.0","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"d481e4d36544b2e1c0ce4294bbb536bbb33c55d7","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.6.0.tgz","fileCount":10,"integrity":"sha512-rhEAl7gWmk9cRBtvaD/MY+whV9AhuITBMF3fYP0mHe7FIVvXa9x5wWsyI0/q9E+WWxVtnHUJuxmjXWBPRLFJGA==","signatures":[{"sig":"MEUCIH4mL+MZflQzHxhBBW2+Tq3pRMROdwIY7EKRnzTI00pxAiEAwowyEhhsudNw1WLOjLN0ubMPOK6yXTm/4MUa3jy69KQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337847},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"82026469d15a7824526d30996b89a6c33b5ede5a","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.6.0_1784604246191_0.8774978440781773","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"teamclaude-cloud","version":"1.7.0","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.7.0","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"060649c0f78ba1e0f2653701a9ef893c64a70c83","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.7.0.tgz","fileCount":10,"integrity":"sha512-KCbnSKAdYEICDLQZhEjMq29FEZd45mM0b3FQ9p++aQoC+430X7CBVijYEa9HOocAGcz08nh3A6x2/AJ3Djz02g==","signatures":[{"sig":"MEUCIGMPwcG1BshuZNy00x8ALFWpvY7fyK5Zrm/aB+yQvqChAiEAspFnKsrc+y0p2xpv5OX31kuH02EXZxgG3DeAEXnb94s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350777},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"b8004066da2223cc5473f0620513589fa96f4530","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.7.0_1784677309807_0.10351670918924527","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"teamclaude-cloud","version":"1.8.0","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.8.0","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"c5592b3e845d952b024e9836367c90809e3d7fa9","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.8.0.tgz","fileCount":10,"integrity":"sha512-YDJCStNU7DtBgtzpm7GAlBMl/0eIa2lgX3PfWt0nXP3LwXnGgCWIKDRkAg/7idXBV8n+zce/TnBZ+KuiWsdTnw==","signatures":[{"sig":"MEYCIQDM0I6/WkpIJs3ydVVajwGO7qiTB2uB97bOm7rcqk/g9QIhAKId4ftk41QEtr88V/3fYsAo6zgSjQLZPZklGUAdVB32","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":351448},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"36b96effb03fbe6db4727e577951a4d006736731","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.8.0_1784679858324_0.15414538801212263","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"teamclaude-cloud","version":"1.8.1","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.8.1","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"8d1d3860481a50e1945de0e7880099395dfb1d03","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.8.1.tgz","fileCount":10,"integrity":"sha512-2hLT97SrZuOOd3/8Z1v4kWawC3tZU+FYTEjpuRXIkqkhlzbSCsb3/nhU1SmL+6F81HfcYlNlJzfvBamTnkTFeg==","signatures":[{"sig":"MEQCICIVKr5tLlHu+P18djFxGDca1i9JeS1au9DdvLjDLFx5AiAewItVeM7/jNF+uPw3zIbBtI8m7dP0R0yk10xi9sr5EQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":351746},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"0a77945ba6506296acd1c19629e94970a5c0b913","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.8.1_1784681672060_0.1517942382336892","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"teamclaude-cloud","version":"1.9.0","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.9.0","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"085e2844f648d3c8ff215a1c29e47d066464cfcf","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.9.0.tgz","fileCount":10,"integrity":"sha512-7p33g+hcmWYGK+qKeu/6D0XC/q9/Un8Vms6UEQ3LCInJ6G0bAVx5DQIzeyCSJsLaIyBXW6CSR2LV+haQNKhrZw==","signatures":[{"sig":"MEUCIGLWA790MiM9tkY1NLvAu4XnL+3rSFc4sIfpzSNSxfF9AiEAxw/RmBqoGhY/c1zbpBkUD1toz9Zebrw7+n+zmHY5/BA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":432824},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"c8ed3cfc1d57f94c7fb226df75014180ea85f735","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.9.0_1784707986877_0.22381543320382424","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"teamclaude-cloud","version":"1.10.0","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.10.0","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"27d0e4622569ac4473fd25e6f37235a5aa2b7b7c","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.10.0.tgz","fileCount":13,"integrity":"sha512-inyuepRzU5eqfblbhBNlqAITHYCSaEwMIvLMmfseRtnhJ1lNGtD37qWbm2BooC2R6mJqWbhqtkZU/FqEhzjRSA==","signatures":[{"sig":"MEQCIEsHueldQn2W9mF9GSLWhCTqrEPGXAD2sDVUaAOLrJd5AiAqxpd9B1swkmtZ0Bd4Xl731oobfByXOAwIP1kS3cQFyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":447010},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"c782a9ff8fb5205f6164a195148e57b03c589258","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.10.0_1784783401582_0.8021169568217494","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"teamclaude-cloud","version":"1.11.0","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.11.0","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"b5acb05cd9095bb105e83b8287cee76623de13b4","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.11.0.tgz","fileCount":13,"integrity":"sha512-+honMEFkn1qA3NYCO80ZojaKjrw6Z8gCBLcyzlbT5L6dTtDFVzGyW3vmS4KGY00Ac4HEYgKyzhCwopwfnEgeUA==","signatures":[{"sig":"MEYCIQDOSZM48SvLjfK9I1XMokcG3ZmE/3GnbuTIXre0X40dLQIhAOw53eaVsetmEjOgbvVGNY5EWk5+dyuIiktganyPhXLk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":455947},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"ff08e74dceb5c173443b2e3f5b0fd84e78706a2e","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.11.0_1784786312218_0.5131026742328966","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"teamclaude-cloud","version":"1.11.1","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.11.1","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"77c4e5284468378948f2b96bea4c55f6456e581f","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.11.1.tgz","fileCount":13,"integrity":"sha512-0hV2JqL+Eymm8ifnaBYvctYZrW72AJ/fUnXd0rCfxK92jQwU4EXH7Zrj6D0KBwQi4I/a1VpJEcb1592kNkXv6w==","signatures":[{"sig":"MEYCIQC69kzJ8IZbdKziKo9kn3KpmzUZAt8kcDwmaQxPqxg/MwIhAMIOG49jI3cflHx1xd19kZEVwFd58lcJPZSBZ+JehXkj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":457659},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"75707dbdb4bfe7a61ea06e7fb4be0b1f6a14351a","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.11.1_1784925375328_0.3152870246220607","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"teamclaude-cloud","version":"1.12.0","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.12.0","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"78bdf98b86b735479c09b019e6a09afb0ca991a3","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.12.0.tgz","fileCount":13,"integrity":"sha512-Xow3KLuk3bCzmJl91S5HlGGSjaAkuWAO44iX6IuFd08RMWX+2uNKJMVB/3cRc0OdSBG+TmVMJdoRVTLDcsB6JA==","signatures":[{"sig":"MEYCIQDHipy2Os1C6rEj2B9HcddokDD9loC1ihkAwtXuWHye5gIhAP5nzSjkF2/BgSNw5XoLM6t+CArX/9hkJq5dBeTpTPUA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":463187},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9f6057065670e5e7aab599f6ce1384d80cb54bab","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.12.0_1785379520426_0.185910160237857","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"teamclaude-cloud","version":"1.12.1","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.12.1","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"91d00eabe1e5608f9f5da0025da7bb19882522a7","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.12.1.tgz","fileCount":13,"integrity":"sha512-S28XSre5GwVO3dXQAa5Uv8ZBv4VRYx0n/YSQkM8DKcoB+sRvQmDKUGE544T/Ud+blM3qayLx5qflJnzawoBJ5g==","signatures":[{"sig":"MEYCIQCQpD0J6WhISt0rtfcdfgQ3oSzmuVBtlslRkcz1qhFRAAIhAIuddfOGTaA1/+GTxcRz7dJ3c7xmL0O+rpTgz/3rmIhA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":466029},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9ff95934403c346b29637ed499faabec6414762c","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.12.1_1786342440623_0.463230355972335","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"teamclaude-cloud","version":"1.13.0","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.13.0","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"45f28af61f76e268e3ad94823c77ecf10965845f","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.13.0.tgz","fileCount":14,"integrity":"sha512-xyG+KNFCuFHYZ5nzJtwQuhhvPK03yn6BwgWlpCEXaHM5BW8Qq2EBboMrk1x0vcwg5VMg16q4Jgd8Q3hWruUYEw==","signatures":[{"sig":"MEUCIHMLivVGRL1wQxrCPzAjkBfkiq7WSBzl5J1hnQJgzwx0AiEAkt7y7STLAK42fUbLrYT1ntJruwTMiGdICR1ZBNoL2b4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":477483},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"54e2f43b241c54be5df6d8e25afc2ef1d9df0a4a","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.13.0_1786346021749_0.24215061032883045","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"teamclaude-cloud","version":"1.13.1","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.13.1","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"661a7671a5f26fa24eb131c6d3f037190be41970","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.13.1.tgz","fileCount":14,"integrity":"sha512-4VyPTIDSGJR6iz6DTCqdfbEpzhC+SeF/JM3GvHFxgigMEh5Ec1M8AZEVLE4pkaaH3Ny5zpKsBL7pcjQs/Sm3ag==","signatures":[{"sig":"MEQCIDK/t64KQ+DBqz/HqvREop2LuxZVDkhKAydGXFBn2ZJoAiA0kJ2dZ+Dgxm0aFGo1hWjV//noW1SnU0R0KSY+wyb0qw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":482797},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"97170be664194d4031f04ee17b9414e99c91e072","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.13.1_1787025867154_0.4408793366481587","host":"s3://npm-registry-packages-npm-production"}},"1.13.2":{"name":"teamclaude-cloud","version":"1.13.2","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.13.2","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"b7b80e6e5773c5016f429e53520faecd889165d7","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.13.2.tgz","fileCount":14,"integrity":"sha512-ir/APyKKyaRGfV3hRVEpDZXolMRUUBRso0dngp/hhwM51pbnZ1mBVaOnvhfL+61xPgChUMxanhyht7Ns3qoz+w==","signatures":[{"sig":"MEUCIQDJc/EigJDMPOush9Nulpg180/dK1o5VK5EC8cpO4uksAIgHhZbUhiHKigHNpBXuULsLRVFJNEnwzA004nUMtSUkqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":486029},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"01bf954bf39d8372d451dc243581cf4a3c7f41b1","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"deprecated":"403 throttle-on-first can poison the fleet on a request-scoped 403; use 1.13.3+","repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.13.2_1787032151315_0.9496454571364477","host":"s3://npm-registry-packages-npm-production"}},"1.13.3":{"name":"teamclaude-cloud","version":"1.13.3","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.13.3","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"81d768b8084ee04e45ab9b4aac4f0610681fb354","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.13.3.tgz","fileCount":14,"integrity":"sha512-qeWwucG/IvbzH1Iu00DfmwTUl9Kh8T5147Avjyu3t/H6MF2/CNO273HPHdpJWw8pQG+yQMhBk4ydcKe4c3jJig==","signatures":[{"sig":"MEUCIQC/20E0f8A1hVikmeG7wXpIj3bg1RkQs2PlPNYIaiBcAwIgAKhbxNgiRsawlzMPyczC5B3ULmmbX420WXq0G29GZA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487275},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"1a6682a97d912221f109416084eda94a8f8303f9","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"deprecated":"403 throttle heuristic can poison/shadow the fleet; use 1.13.4+ (failover-only)","repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.13.3_1787032637144_0.10305115149919453","host":"s3://npm-registry-packages-npm-production"}},"1.13.4":{"name":"teamclaude-cloud","version":"1.13.4","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.13.4","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"8d4575ea89e68274da269c851e2ff09a3667a65e","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.13.4.tgz","fileCount":14,"integrity":"sha512-wjV9DtSvKBt54b/gPgtXjOgf9SO2vXC/CO+BoK8O54ls5K3XQeyUfSdkUYdH3DZgX3up7D4U1qksZtsIAkq9sg==","signatures":[{"sig":"MEQCIFlDNFyJqby5/VRSY3w7Nm+jlXRXf9SSJWWxxI+AfOCuAiAWvHRsMmDb5k/B8ZXiaAW2ubVhIuk5uW0Rou7pnubseA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488867},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"ecf771c9e460f38d2f78faa70ed8d30134a85650","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.13.4_1787038753739_0.11364987395799009","host":"s3://npm-registry-packages-npm-production"}},"1.13.5":{"name":"teamclaude-cloud","version":"1.13.5","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.13.5","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"48cc4ff466646ff62aba78f8dc64a419ba3359d1","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.13.5.tgz","fileCount":14,"integrity":"sha512-FrUGFtUrdqtBByLVLKi36rvb57VJf2MPoIRQ1c+DQ5SEut3igGMMuuY9776AjNCwViFiXAHAj29Cxd8p1MqHHQ==","signatures":[{"sig":"MEQCICOa9fUTJ8s5cc9n4x9EVwc6C0I3om7zUGO9NcBxhk2/AiA46Y8HjG606DtNhHRSRF2de8z4ttpxiR5/a1MrbYUnHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496386},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"801dda0606c52f92f551212e7c19e10b759a491c","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.13.5_1787166890576_0.30194781057431697","host":"s3://npm-registry-packages-npm-production"}},"1.13.6":{"name":"teamclaude-cloud","version":"1.13.6","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.13.6","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"7f481e77a960f352bc5f4d62a0d724502fa4c7e2","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.13.6.tgz","fileCount":14,"integrity":"sha512-Xs6udIIJH/A4WqhJh2jwtk70lmfzoF941T/+/4+eCPT3AH5Pg734BOrRQNcc6iMTdsd5IytbE5n/qNQhqEbXpw==","signatures":[{"sig":"MEQCIBsU3USZ9mwOSKlfANqmR+YuEskFWb4D6VGxFnGYuvkhAiBvFxFaNwmswOw1YY5hXjpg6MUuwsVt+wUPVzOd9WreRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD75/NG9btl34Hh7muu/u+ObmKTZOHlhpHTqzvgERc9NgIgYLyOI2hN6w17ccEiSgFKe7Op2wdBK6ViMnbyXpSzHHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":501788},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e16b3106311b50f973cd5f98e15aae9c09a6e0e7","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.13.6_1788294224191_0.12098463584241004","host":"s3://npm-registry-packages-npm-production"}},"1.13.7":{"name":"teamclaude-cloud","version":"1.13.7","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.13.7","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"8365b69108c90132b7a7e9dd1f11d0121dbb7f99","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.13.7.tgz","fileCount":14,"integrity":"sha512-Zrl44vUzLcS2wHSdrbsM5MtZkkngquRn5oJ04zJ5O7r9UzrPYBPNwBRwU20b+5VESmRsMMSvd0hW/fomNS1woQ==","signatures":[{"sig":"MEYCIQCAZUcgnFBhmAdrQAHnaAVDV4sx6K+3wPe87NWKBQegvQIhANV+ZEDpedZfO4QnIbY/wY7ZooFiNvkLd94P4pZdJe5S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDajDdXN/h1UPSpO0Wol59SgpOS20SjLt1xMxML11KfqAiBqbQY0dY4tq6K/lUpFSy4wNJzst3bzzkSXB4X3kymagw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":536858},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3d74c8560e5ec05cb13736b4f8009a9c5d0cee58","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.13.7_1788317480442_0.1705918595251037","host":"s3://npm-registry-packages-npm-production"}},"1.13.8":{"name":"teamclaude-cloud","version":"1.13.8","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"license":"MIT","_id":"teamclaude-cloud@1.13.8","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"homepage":"https://teamclaude-cloud.vercel.app","bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"bin":{"teamclaude":"src/index.js"},"dist":{"shasum":"115c59aa9aa2114342f15f7c3b85ed0c9666a6b3","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.13.8.tgz","fileCount":14,"integrity":"sha512-5km4v0TiXO2fHBcxTNKa16E0UqKWgBdC6biP41wdoX8wpghYk/Z4nM8a/G0YvG6xiLUZRRhY8XKxq+MNmUNb4w==","signatures":[{"sig":"MEYCIQCuyjvacjVpMpJpfvCtiGE+L+BsbFGPv5dBaYCAz0UHWwIhAPcQEzp1Ynsi391cEPCnEQbnG4fcWrOgjEJEDBtt/zXB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDhfs5nCZ1EZMy7/22K60XD9/hvJcY9hgCRw5iW59O2JgIgDPQtDLnhOB2yXnOUpujFNNFzQcFPCJjUgdIFIddC8cs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555302},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d7fc1414ad7580070dbc44e0f8c8416293f6ae49","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.4","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/teamclaude-cloud_1.13.8_1790494578232_0.5761447261028201","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"_id":"teamclaude-cloud@1.14.0","bin":{"teamclaude":"src/index.js"},"bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"dist":{"shasum":"542e8cfd0f40056f55f246f37b2313c65d437bee","tarball":"https://registry.npmjs.org/teamclaude-cloud/-/teamclaude-cloud-1.14.0.tgz","fileCount":18,"integrity":"sha512-AVaox/8Vf409EzJ+rBbUWso6egdMHZ5ePZLH9JIBPVw+ChHbmfhM2NqWqLRJHFx1SgdIp7xri/xRAY4BvyRMVg==","signatures":[{"sig":"MEUCIQCBHZG0XyENpR1/s8EiH0LImK9lKAf0t1eAOA8KBTy5jgIgIq0g09Ho4DLtA2TAKfB6066d5vvCbNBl3FOHfUpIgSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCBmb8eNf1uYkGtOn3ESEkc/QT7yTIPyE1Rh71mrpikWwIhANu3dHT5cJP7unwYCjWhpnvsa6hTm3uiq1vXjubWETab"}],"unpackedSize":660572},"main":"src/index.js","name":"teamclaude-cloud","type":"module","engines":{"node":">=18.0.0"},"gitHead":"bae7a3f629dd4e5a07461337e801c32b48c2aeaf","license":"MIT","scripts":{"lint":"eslint .","test":"node --test","start":"node src/index.js","postinstall":"node scripts/postinstall.mjs"},"version":"1.14.0","_npmUser":{"name":"hue_0525","email":"raground@gmail.com"},"homepage":"https://teamclaude-cloud.vercel.app","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"_npmVersion":"10.9.8","description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","directories":{},"maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/teamclaude-cloud_1.14.0_1790815344726_0.4644500149966895"}}},"time":{"created":"2026-07-16T08:38:21.207Z","modified":"2026-10-01T00:42:24.997Z","1.3.0":"2026-07-16T08:38:21.392Z","1.4.0":"2026-07-17T12:55:37.157Z","1.4.1":"2026-07-18T16:23:39.594Z","1.4.2":"2026-07-20T00:45:46.745Z","1.4.3":"2026-07-20T01:57:30.390Z","1.5.0":"2026-07-20T06:40:54.716Z","1.5.1":"2026-07-20T06:53:28.481Z","1.5.2":"2026-07-20T07:10:37.859Z","1.5.3":"2026-07-20T07:44:17.652Z","1.5.4":"2026-07-20T08:31:49.610Z","1.5.5":"2026-07-21T00:50:39.545Z","1.5.6":"2026-07-21T01:08:32.155Z","1.5.7":"2026-07-21T01:32:38.117Z","1.5.8":"2026-07-21T02:19:23.299Z","1.6.0":"2026-07-21T03:24:06.324Z","1.7.0":"2026-07-21T23:41:49.974Z","1.8.0":"2026-07-22T00:24:18.479Z","1.8.1":"2026-07-22T00:54:32.208Z","1.9.0":"2026-07-22T08:13:07.061Z","1.10.0":"2026-07-23T05:10:01.741Z","1.11.0":"2026-07-23T05:58:32.364Z","1.11.1":"2026-07-24T20:36:15.510Z","1.12.0":"2026-07-30T02:45:20.618Z","1.12.1":"2026-08-10T06:14:00.794Z","1.13.0":"2026-08-10T07:13:41.911Z","1.13.1":"2026-08-18T04:04:27.367Z","1.13.2":"2026-08-18T05:49:11.462Z","1.13.3":"2026-08-18T05:57:17.270Z","1.13.4":"2026-08-18T07:39:13.906Z","1.13.5":"2026-08-19T19:14:50.731Z","1.13.6":"2026-09-01T20:23:44.321Z","1.13.7":"2026-09-02T02:51:20.594Z","1.13.8":"2026-09-27T07:36:18.338Z","1.14.0":"2026-10-01T00:42:24.829Z"},"bugs":{"url":"https://github.com/jung-wan-kim/teamclaude-cloud/issues"},"license":"MIT","homepage":"https://teamclaude-cloud.vercel.app","keywords":["claude","anthropic","proxy","load-balancer","multi-account","cloud-sync"],"repository":{"url":"git+https://github.com/jung-wan-kim/teamclaude-cloud.git","type":"git"},"description":"Multi-account Claude proxy with quota-based rotation + cloud token sync and auth-key control","maintainers":[{"name":"hue_0525","email":"raground@gmail.com"}],"readme":"# TeamClaude Cloud\n\nMulti-account Claude proxy with automatic quota-based rotation for [Claude Code](https://claude.ai/claude-code) — plus a **cloud SaaS layer** that syncs authenticated tokens to the cloud and controls, per auth key, which accounts each machine may use.\n\n## Cloud SaaS (teamclaude-cloud)\n\nThe base proxy runs locally. The cloud layer lets you authenticate every account **once on one PC**, sync those tokens to the cloud, and let other machines pull only the accounts you allow them — via an **auth key**, without re-authenticating each account per PC.\n\n```\n[Admin PC]   teamclaude login ×N   →   teamclaude cloud push\n                                         │\n                                         ▼\n[Cloud]  teamclaude.cloud: encrypted tokens (AES-256-GCM) + auth keys (hashed) + key→account mapping\n         Cloud API: sync push/pull, auth-key issue/revoke/map\n                                         ▲\n                                         │  auth key\n[Consumer PC]  teamclaude cloud pull --key tck_…   →   teamclaude server\n```\n\nSecurity model: tokens are encrypted at rest and token storage is server-only (row-level security denies all client roles); auth keys are stored as a SHA-256 hash (for pull-time lookup) **and** an AES-256-GCM ciphertext under the same key as the tokens, so the owner can re-copy the full `teamclaude cloud pull --key …` command from the dashboard at any time (owner-only `GET /auth-keys/:id/reveal`, revoked keys return 409). Keys issued before this change are hash-only and non-revealable — re-issue to get a copyable key. Access control (which key may use which account) is enforced server-side in the cloud API.\n\n### Web dashboard\n\nA browser dashboard (signup/login + auth-key issuance and control) is served on Vercel:\n\n**https://teamclaude-cloud.vercel.app**\n\nSign up there, then use the *same* account with `teamclaude cloud login` on the admin PC. The dashboard shows your synced accounts with their **usage** (5h session, weekly, and the model-scoped \"Fable\" weekly window — as measured by the proxy at push time, with the push timestamp shown), toggles accounts globally, manages **groups** (create/rename/delete, per-group account enable + priority ordering), and issues/moves/revokes auth keys per group. The dashboard is a static SPA (`public/`) plus a health endpoint (`api/health.js`); `GET /api/health` returns service status JSON.\n\n### Cloud commands\n\n```bash\n# Admin PC: authenticate to the cloud, then push local account tokens\n# (the proxy's quota snapshot rides along so the dashboard shows 5h/weekly/Fable usage)\nteamclaude cloud login --email <you@example.com>\nteamclaude cloud push\n\n# Groups: an auth key belongs to ONE OR MORE groups (default \"main\"); accounts are\n# allowed per GROUP, and a key's pull returns the UNION of all its groups' accounts.\n# Assign a key to multiple groups from the dashboard (Auth Keys → group checkboxes).\nteamclaude cloud group list\nteamclaude cloud group create team-a\nteamclaude cloud group allow  team-a --accounts <uuid1>,<uuid2>   # order = priority (#0 first)\nteamclaude cloud group rename team-a --to team-alpha\nteamclaude cloud group delete team-a                              # its keys move to \"main\"\n\n# Auth keys (raw key printed once)\nteamclaude cloud key create --label laptop --group team-a\nteamclaude cloud key list\nteamclaude cloud key move   <key-id> --group main\nteamclaude cloud key revoke <key-id>\n\n# Global account switch (excluded from EVERY group's pull when disabled)\nteamclaude cloud account disable <accountUuid|localName>\nteamclaude cloud account enable  <accountUuid|localName>\n\n# Consumer PC: pull the key's group's accounts (tokens + priority) into the local config\n# (key-only — no `cloud login`; the endpoint is built in). The key is saved so the\n# running server keeps syncing on its own.\nteamclaude cloud pull --key tck_…\nteamclaude server\n```\n\n**Group exclusivity:** an account can be *enabled* in at most one group at a time (DB-enforced with a partial unique index; the API answers `409 account_in_use` naming the conflicting group) — so two groups can never pull, and therefore never concurrently use, the same account.\n\n**Priority & selection:** the group's account order is delivered as each pulled account's `priority`, which the local proxy's existing selection consumes unchanged — explicit priority first, then the same use-or-lose algorithm (weekly reset soonest, session reset, lowest usage) as always.\n\n**Live sync (running server ⇄ cloud).** `cloud pull` stores the endpoint + auth key, so a running `teamclaude server` re-pulls on an interval (`config.cloudSyncIntervalMs`, default 30 s; `0` disables) and applies changes **without a restart**: refreshed tokens are updated in place (freshest-token-wins), accounts added to / removed from the group appear / disappear live, and **revoking the key** drops all of its accounts and the proxy refuses new requests (it self-heals the moment you re-pull with a valid key). The rotation/quota/failover *handling* still runs entirely in the local proxy (unchanged algorithm) — the cloud is only the control plane feeding it fresh config. A **cloud outage is non-blocking**: a transient pull error keeps the last-known accounts and retries next interval; only an explicit `403` (revoked/invalid key) removes accounts.\n\n**What revocation does and does not do.** A pull hands the consumer both the **access and refresh** tokens for each allowed account. Server-side controls — **revoking the key** (it can no longer pull) and **disabling/removing the account from the group** (it stops being handed out) — only cut off *future pulls*. They do **not** invalidate a token a consumer already pulled: that consumer holds the refresh token and can keep minting new access tokens directly against Anthropic until Anthropic itself revokes it (this proxy cannot remotely invalidate an OAuth grant). So treat a pulled key/account as \"access granted until the underlying OAuth credential is rotated at the source.\" The client-side prune (dropping local accounts a key no longer allows, scoped per key) — applied automatically by the running server's live sync (above), or via TUI **R** / restart — is **hygiene/convenience**, not a hard revocation boundary. One consumer is expected to use **one key**.\n\nSync is **freshest-token-wins**: a push/pull never overwrites a newer token with an older one (compared by normalized `expiresAt`), so a token refreshed on any machine wins. Pulled `priority` applies even when the token itself is kept-local (control-plane vs token freshness). The cloud layer is additive — if the cloud is unreachable the local proxy still runs on whatever accounts are in the local config.\n\nThe cloud API lives at `auth.teamclaude.cloud` — the CLI ships no backing-infrastructure hosts or keys; consumers authenticate with their auth key, admins with `cloud login`.\n\n---\n\n## Base proxy\n\nSits transparently between Claude Code and the Anthropic API, managing multiple Claude Max (or API key) accounts and automatically switching when one approaches its session or weekly quota limit.\n\n![TeamClaude TUI](screenshots/teamclaude.png)\n\n## Features\n\n- **Use-or-lose account priority** — measures each account once at startup, then prioritizes the account whose weekly (7d) quota resets soonest (then soonest session reset, then lowest usage), so quota about to renew unused is drained first; re-evaluates every 5 minutes and switches immediately when the active account reaches the quota threshold (default 98%). Pin explicit ranks in the TUI (`o`) or via `teamclaude priority` for the accounts you want first — everything unranked stays on this automatic (`auto`) ordering\n- **Instant failover on 429** — an exhausted account (token quota hit) is throttled for its `retry-after` (clamped to 1s–5m) and skipped; a rate/concurrency 429 (quota left but hit too fast) fails the request over to another account so concurrent overflow spreads instead of erroring. Either way nothing blocks, and a request-global 429 only passes through after every account has been tried — never throttling the fleet\n- **Blocked accounts are labelled, not hidden** — a 403 whose body names an account/organization-level block (e.g. `OAuth authentication is currently not allowed for this organization`) marks that account `forbidden`: out of rotation, reason + remedy shown in the TUI and `teamclaude status` (re-authenticate with `teamclaude login`), and back to `active` automatically once upstream serves it again (a request/probe with quota headers, **R**, the hourly re-check, or a re-login). Other 403s just fail over — no account state is touched\n- **Interactive TUI** — real-time dashboard with color-coded quota bars showing usage %, reset countdowns, an activity log, and keyboard controls (switch, enable/disable, reorder accounts)\n- **Manual account controls** — enable/disable accounts and pin an explicit account order from the TUI or CLI (`teamclaude disable|enable|priority`); a disabled account is excluded from rotation while its in-flight requests drain, and everything unranked stays on automatic use-or-lose ordering\n- **Quota survives restarts** — per-account quota state *and* the warm-up probe template are snapshotted to `<config>.quota.json` (every minute and on exit) and restored at startup, so a restart doesn't blank the dashboard, blind the account ordering, or leave forced re-measure (**R**) dead until traffic flows again\n- **Active warm-up** — after a (re)start the proxy probes still-unmeasured accounts with a minimal request (reusing the shape of the first real request, restored across restarts), so the whole fleet's quota populates within seconds instead of waiting for traffic to reach each account\n- **Server lifecycle** — `teamclaude stop` / `teamclaude restart` cleanly stop or replace the running server from any terminal\n- **OAuth token management** — automatically refreshes tokens nearing expiry and persists them to config; client token refreshes pass through untouched\n- **Hot-reload accounts** — add accounts via `import` or `login` while the server is running, press **R** to pick them up; **R** also force-re-measures the whole fleet's quota, so the dashboard reflects usage spent outside this proxy (other devices/sessions) — and works right after a restart, since the probe template is restored from the snapshot\n- **Account deduplication** — detects duplicate accounts by UUID and keeps the most recent\n- **Request logging** — optional full request/response logging for debugging\n- **Codex (ChatGPT) accounts too** — pool several ChatGPT subscriptions for the Codex CLI on the same port; they rotate on their own quota, separately from the Claude accounts (see [Codex accounts](#codex-accounts))\n- **Zero dependencies** — uses only Node.js built-in modules\n\n## Quick Start\n\nRequires Node.js 18+.\n\n```bash\n# Install (published to npm — auto-updates via `npm update -g` or `teamclaude update`)\nnpm install -g teamclaude-cloud\n\n# Add your first account (opens browser for OAuth)\nteamclaude login\n\n# Add a second account\nteamclaude login\n\n# Start the proxy\nteamclaude server\n\n# In another terminal, run Claude Code through the proxy\nteamclaude run\n```\n\nYou can also import existing Claude Code credentials instead of logging in:\n\n```bash\nclaude /login           # Log into an account in Claude Code\nteamclaude import       # Import its credentials\n```\n\n## Adding Accounts\n\n### OAuth Login (recommended)\n\nThe easiest way to add accounts — opens your browser for authentication:\n\n```bash\nteamclaude login\n```\n\nUses the same OAuth flow as Claude Code. Auto-detects the account email and subscription tier. Logging in with the same account again updates its credentials.\n\nYou can add accounts while the server is running — press **R** in the TUI to reload.\n\n### Import from Claude Code\n\nIf you already have Claude Code set up, you can import its credentials directly:\n\n```bash\nclaude /login           # Log into an account in Claude Code\nteamclaude import       # Import its credentials\n```\n\nRe-importing the same account updates its credentials. You can also import from a custom path:\n\n```bash\nteamclaude import --from /path/to/credentials.json\n```\n\n### Codex accounts\n\nChatGPT subscriptions (Plus, Pro, Team…) can be pooled for the [Codex CLI](https://github.com/openai/codex) alongside the Claude accounts. One port serves both: Claude Code posts to `/v1/messages`, Codex to `/backend-api/codex/*`, and the path alone decides which pool answers — a Claude account never serves a Codex request and vice versa, and each pool keeps its own active account.\n\n```bash\nteamclaude login --codex      # browser sign-in to OpenAI — repeat once per account\n                              # (a running server picks each one up immediately)\nteamclaude restart            # the server routes the Codex CLI by itself (no extra step)\ncodex                         # now draws from the pool\n```\n\n- **Routing (automatic)** — like Claude Code, the Codex CLI is routed by the running server: while `teamclaude server` (or `restart`) listens with at least one Codex account in the pool, `~/.codex/config.toml` carries a clearly marked block (`model_provider = \"teamclaude\"` + a `[model_providers.teamclaude]` table whose `base_url` is `http://127.0.0.1:<port>/backend-api/codex`), and a graceful stop removes it again — only while it still points at that server's port, so another proxy's route or a hand edit is never touched. Adding or removing a Codex account while the server runs re-syncs it (no restart); with no Codex account the block stays out (an empty pool would only answer every Codex request with a 503). It never overwrites a `model_provider` you set yourself — the server logs `Codex auto-routing skipped (…)` instead. Opt out with `\"codexAutoRoute\": false` in the config (the Claude-side `\"autoRoute\": false` turns both off). `teamclaude codex on|off|status` remain as manual controls; `off` removes exactly that block and nothing else. The previous file is kept as `config.toml.bak-teamclaude`. (`OPENAI_BASE_URL` does not work — a ChatGPT-logged-in Codex ignores it.)\n- **Display** — the TUI, the server banner, `teamclaude status` and `teamclaude accounts` show Claude and Codex as separate sections, each with its own count and numbering from 1; Claude subscription rows read `claude`, Codex rows `codex`. Each pool also keeps its own order (`o` ranks `#1 …` within the section; `a` resets just that section).\n- **What the proxy changes** — only the credential: `Authorization: Bearer <pooled token>` and `ChatGPT-Account-Id`. The request body is forwarded byte-for-byte to `https://chatgpt.com`; this is a passthrough, not a translation between the Anthropic and OpenAI protocols. Only the two HTTP endpoints the Codex CLI appends to `base_url` are relayed — `/responses` and `/models`; anything else under `/backend-api/codex/` (including `/realtime`, a WebSocket this HTTP relay can't carry) and any path that merely *decodes* to a Codex path (encoded slashes, `..`, backslashes) is refused before a credential is attached. A `set-cookie` from the ChatGPT backend belongs to the pooled account's session and is not passed back to the client.\n- **Quota** — every Codex reply carries `x-codex-*` rate-limit headers; they fill the same session/weekly fields as a Claude account, so the 98% switch threshold, use-or-lose ordering (weekly reset soonest first), the TUI bars and `teamclaude status` all work unchanged. A spent account-wide window throttles the account and fails the request over to the next Codex account; a spent model-scoped bucket only fails that request over. Idle Codex accounts are measured at startup, every warm-up interval, and on **R** through the read-only usage endpoint (`/backend-api/wham/usage`, what Codex's `/status` shows) — no inference request, no quota spent.\n- **Tokens** — refreshed against `auth.openai.com` shortly before they expire (and once on a 401). Codex logins are **local-only**: `cloud push` / the dashboard `p` key never upload them, and the cloud refresh path refuses them.\n- **Pooling the login Codex already has** — `teamclaude import --codex [--from ~/.codex/auth.json]` adds that login without a browser. It *shares* the refresh token with the Codex CLI, and OpenAI refresh tokens are single-use, so TeamClaude re-reads the file before every refresh and follows a rotation the CLI made (it takes the file's tokens only when they are newer than its own); TeamClaude never writes that file, so if it rotates first, the CLI may later need `codex login`. A separate `teamclaude login --codex` for the same account never conflicts and is the safer choice.\n- **Identity** — a Codex account is its ChatGPT account (workspace) id **and** user id, both required. Re-signing in as the same person updates the entry; another member of the same workspace becomes a separate entry and never overwrites yours; a login that doesn't state both ids is refused (it can't be told apart from a teammate). A pooled login file that now holds someone else is ignored, not adopted.\n- **Names** — an account defaults to its login email; if a Claude account already uses that name the Codex one becomes `<email>#codex`, so `enable` / `disable` / `priority <name>` stay unambiguous.\n\n### API Key\n\nFor Anthropic API key accounts (billed via Console):\n\n```bash\nteamclaude login --api\n```\n\n## Usage\n\n### Start the proxy server\n\n```bash\nteamclaude server\n```\n\nWhen running from a TTY, shows an interactive TUI with:\n- Account table with **numbered rows** and session/weekly quota progress bars (usage % overlaid, plus a reset countdown when space allows); wide terminals add a third `Fbl` bar with the model-scoped weekly limit (the separate \"Fable\" weekly limit from Claude's usage UI). Ranked accounts are listed first, then the `auto` accounts in their actual drain order (weekly reset soonest first)\n- Real-time activity log with request tracking\n- Keyboard shortcuts (see below)\n\nFalls back to plain log output when not a TTY (e.g. running as a service).\n\nIf the configured port is already in use — for example another TeamClaude proxy is already running — the server prints a clear message and exits instead of crashing with an unhandled error. Inspect the existing one with `teamclaude status`, or find the listener with `lsof -nP -iTCP:<port> -sTCP:LISTEN`.\n\n#### TUI Keyboard Shortcuts\n\n| Key | Action |\n|-----|--------|\n| `↑`/`↓` | Move the selection cursor over the accounts |\n| `s` | Switch active account (to the selected one) |\n| `e` | Enable / disable the selected account |\n| `o` | Order the selected account within its pool (Claude / Codex): `↑`/`↓` move its rank, `a` resets that section's WHOLE order to `auto` (weekly-reset ordering), `c` clears just this account's rank |\n| `a` | Add account (import or API key) |\n| `d` | Delete an account (with confirmation) |\n| `R` | Reload accounts from config **and re-measure every account's quota** — revives lapsed OAuth tokens first, includes the model-scoped Fable window, and reports an honest `M/N` when some accounts fail or are skipped |\n| `q` | Quit |\n\nIn selection mode, use `j`/`k` or arrow keys to navigate, `Enter` to confirm, `Esc` to cancel.\n\n### Stop / restart the server\n\n```bash\nteamclaude stop       # SIGTERM the running server (escalates to SIGKILL if needed)\nteamclaude restart    # stop the running server (if any) and start a fresh one\n```\n\nThe running server is discovered via its state file (`<config>.server.json`), which records its configuration, port, PID, and instance identifier. `stop`/`restart` verify that ownership before sending a signal, including after a config port change. Every profile also probes its configured port, so a running server is still found when its state file is missing; if its ownership can't be verified it is reported but never signalled, so one profile cannot stop another profile's server. Quota state is restored on restart (see below), so a restart doesn't lose the dashboard.\n\nOnly the main configuration automatically sets the global Claude API address by default. A different `TEAMCLAUDE_CONFIG` or `XDG_CONFIG_HOME` must explicitly set `autoRoute: true` to opt in; test servers otherwise leave the global address untouched.\n\n> **Note:** if a Claude Code session is itself routed through the proxy (`teamclaude run`), running `teamclaude stop` *inside that session* severs its own API connection (`Unable to connect to API (ConnectionRefused)`). Stop or restart the proxy from a separate terminal instead — with `restart`, an in-flight session recovers on its own retries.\n\n### Account order & manual controls\n\nBy default every account is on **`auto`** ordering (use-or-lose: weekly reset soonest is drained first). You can layer manual controls on top:\n\n```bash\nteamclaude disable <name>            # exclude from rotation (in-flight requests drain)\nteamclaude enable <name>             # re-enable\nteamclaude priority <name> <n|auto>  # pin explicit order (lower = preferred); \"auto\" clears it\n```\n\nIn the TUI, `↑`/`↓` select an account, `e` toggles enable/disable, and `o` grabs the selected account into order mode: `↑`/`↓` move its rank, `a` resets the WHOLE order of that account's section (Claude or Codex) back to `auto`, `c` clears just that account's rank, `Enter`/`Esc` done. Ranked accounts render as `#1 #2 …` and are preferred first; everything unranked stays on the automatic ordering — so you can pin a few accounts and let the rest rotate.\n\nCLI changes made while the server is running are picked up with **R** (reload) in the TUI or `teamclaude restart`.\n\n### Run Claude Code through the proxy\n\n```bash\nteamclaude run\n```\n\nOr manually set the environment:\n\n```bash\neval $(teamclaude env)\nclaude\n```\n\n### Other commands\n\n```bash\nteamclaude accounts          # List accounts with subscription tier and token status\nteamclaude accounts -v       # Also show token expiry times\nteamclaude status            # Show live proxy status (requires running server)\nteamclaude stop              # Stop the running proxy server\nteamclaude restart           # Stop the running server and start a fresh one\nteamclaude remove <name>     # Remove an account\nteamclaude disable <name>    # Disable an account (excluded from rotation)\nteamclaude enable <name>     # Re-enable a disabled account\nteamclaude priority <name> <n|auto>  # Pin selection order (lower = preferred; \"auto\" clears)\nteamclaude api <path>        # Call an API endpoint with account credentials\nteamclaude help              # Show all commands\n```\n\n### Request logging\n\nLog full request/response details to a directory (one file per request):\n\n```bash\nteamclaude server --log-to /tmp/requests\n```\n\n## Configuration\n\nConfig is stored at `~/.config/teamclaude.json` (or `$XDG_CONFIG_HOME/teamclaude.json`). A random proxy API key is generated on first use.\n\nOverride the config path with `TEAMCLAUDE_CONFIG`:\n\n```bash\nTEAMCLAUDE_CONFIG=./my-config.json teamclaude server\n```\n\n### Config format\n\n```json\n{\n  \"proxy\": {\n    \"port\": 3456,\n    \"apiKey\": \"tc-xxxxxxxxxxxxxxxxxxxxxxxx\"\n  },\n  \"upstream\": \"https://api.anthropic.com\",\n  \"switchThreshold\": 0.98,\n  \"accounts\": [\n    {\n      \"name\": \"user@example.com\",\n      \"type\": \"oauth\",\n      \"accountUuid\": \"...\",\n      \"accessToken\": \"sk-ant-oat01-xxxx...\",\n      \"refreshToken\": \"sk-ant-ort01-xxxx...\",\n      \"expiresAt\": 1774384968427,\n      \"enabled\": true,\n      \"priority\": 0\n    }\n  ]\n}\n```\n\n| Field | Description |\n|-------|-------------|\n| `proxy.port` | Local port the proxy listens on |\n| `proxy.apiKey` | API key clients use to authenticate with the proxy |\n| `upstream` | Upstream API base URL |\n| `switchThreshold` | Quota utilization (0–1) at which an account is considered full and skipped |\n| `reevalIntervalMs` | How often (ms) to re-rank accounts by priority while the active one is healthy (optional, default `300000` = 5 min). Set to `0` to disable the timer entirely — the active account then only changes when it becomes unavailable or via per-request 429 failover |\n| `activeWarmup` | Probe unmeasured accounts after a restart to populate quota (optional, default `true`) |\n| `warmupIntervalMs` | How often (ms) the active warm-up re-probes accounts whose quota window reset (optional, default `300000` = 5 min; `0` = startup-only) |\n| `accounts[].enabled` | Set `false` to exclude the account from rotation (optional, default `true`) |\n| `accounts[].priority` | Explicit selection rank (lower = preferred first; optional — unset means automatic use-or-lose ordering) |\n\n## How It Works\n\n1. Claude Code connects to the local proxy instead of `api.anthropic.com`\n2. The proxy selects the active account and forwards requests with that account's credentials\n3. OAuth tokens expiring within 5 minutes are automatically refreshed and persisted to config\n4. Rate limit headers from the API (`anthropic-ratelimit-unified-*`) track session (5h) and weekly (7d) quota utilization. Model-scoped weekly windows (`7d_oi` — the separate \"Fable\" weekly limit) are tracked and displayed too, but never affect routing: an account over its Fable weekly limit still serves every other model\n5. **Cold-start warm-up**: quota is only known after a request flows through an account, so at startup the proxy first routes requests to any unmeasured account until every account has been measured once. An **active warm-up** additionally probes unmeasured accounts directly — a minimal 1-token request reusing the shape of the first real request — so the whole fleet is measured within seconds of the first post-restart request instead of waiting for traffic to reach each account (`activeWarmup: false` disables it). Then account selection becomes **use-or-lose**: among accounts still under the threshold, it prefers the one whose weekly (7d) quota resets soonest (tie-breaks: soonest session reset, then lowest usage), so quota about to renew unused is drained first. Explicitly ranked accounts (`priority` / TUI `o`) are preferred before all of that; disabled accounts are excluded entirely. The active account stays sticky to keep its prompt cache warm; priority is re-evaluated every `reevalIntervalMs` (default 5 min; set `0` to disable timer-based switching), and on reaching the threshold it switches immediately to the next-highest-priority account\n6. On a 429 the proxy classifies it (never sleeping holding the client connection):\n   - **Account-quota exhaustion** (upstream reports the account is over its limit) → marks that account rate-limited for its `retry-after` (clamped to 1s–5m) and immediately re-dispatches to the next available account. If every account is throttled it returns 429 with a computed `retry-after`. (This also keeps cold-start warm-up fast: an exhausted account is skipped in one round-trip.)\n   - **Rate/concurrency or transient 429** (account has token quota left but was hit too fast, or a transient limit) → the request fails over to another available account (per-request, without throttling the account), so concurrent overflow spreads to an idle account instead of erroring. If *every* account has been tried for the request (→ effectively global), the 429 is passed through — still without throttling any account, so the fleet isn't poisoned.\n7. Transient network errors (connection reset, timeout) drop the connection so the client can retry\n8. If all accounts are exhausted, returns 429 with a `retry-after` computed from the soonest account reset — the real unified 5h/7d (or standard) reset of whichever over-threshold window is actually blocking each account, so clients back off until quota genuinely frees instead of retrying against a fixed 60s fallback. A merely concurrency-capped (but quota-healthy) fleet still gets the short fallback, since a freed slot is seconds away\n9. **Quota survives restarts**: the server snapshots per-account quota/throttle state — plus the committed warm-up probe template — to `<config>.quota.json` (every minute and on exit) and restores both at startup, so a restart doesn't blank the dashboard, blind the use-or-lose ordering, or leave warm-up probes and forced re-measure (TUI **R**) without a known-accepted request shape until traffic flows again. A restored template is provisional: the first freshly accepted request shape replaces it (the snapshot's model may have been retired since). Expired windows are swept lazily and re-measured from live traffic\n10. Client token refresh requests (`/v1/oauth/token`) are relayed to upstream untouched — the proxy and client manage their own token lifecycles independently\n\n## License\n\nMIT\n","readmeFilename":"README.md"}