{"_id":"@anyship/cli","_rev":"19-9a50ea6d95a8ceba942546f056e440a3","name":"@anyship/cli","dist-tags":{"latest":"0.9.5"},"versions":{"0.1.0":{"name":"@anyship/cli","version":"0.1.0","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.1.0","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"cbac15f076ceb25d7f0929c7ac290d7448c12c82","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.1.0.tgz","fileCount":8,"integrity":"sha512-fLZVmbeGJNphkjzohVmmbsvJtF0v/jhbZxNWDNQkWJInumN70N4bX2z4z59k1mgbMtgbtzFlwu0+I5DDn4Rkzw==","signatures":[{"sig":"MEUCIQDgjiMqdCZrTAswdMidquTxJL7qPwZQtYVxTGPqzU3qmgIgIEphSLfmjySrcpr5rzLLwD9xyTplc9SIejxbCGfMnzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29961},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"0245d5a7df4b66eef96deb5ba2aeef9f332f1d4f","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1783479370613_0.975795712848814","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@anyship/cli","version":"0.2.0","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.2.0","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"4dfff169bf3b3a9cbcc5b8a377d8e47638c5fdf1","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.2.0.tgz","fileCount":9,"integrity":"sha512-ZuFIpCHnXa2ttE3MOwYMqdk1tWtAyRcKw+ICockzqx8+c/YvuAGUUXwop7gSdaPFoOnjEtPwV2MNNiwUo/zGSQ==","signatures":[{"sig":"MEYCIQD+ZdomGRbKr41Pnz/+Ci8ERogZPNfjsgklH6LAjj2PigIhAOLlKfEYVwSZLSvucVbFHQqT0VVkwNP4f/9fylYdbWW+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39060},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"1a143adbca4dd98452c0e2cc2b15fd2e918428cd","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.0_1783525667966_0.3538878136378494","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@anyship/cli","version":"0.2.1","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.2.1","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"b6d1a0fb14d62fd517c6db1916e36033829da3ee","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.2.1.tgz","fileCount":9,"integrity":"sha512-tkGTQopumKWGqgcb1OZ1ZffWBqs/5USk0/+s4KnlZifHJvm3l0gLBvd1A1S9mlYIj3crhb2Zq+EAHMFl4b5Kqw==","signatures":[{"sig":"MEYCIQD+JeoyA2/b5sWMkk0rlipYX/E87A5OoqJbGi66OkbrpwIhAPDeL94cbRHZye7YGPiYoNpFMLh+fzAv3OCh0uInbii5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39160},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"c98e308494442290e82af2030b01919da71741d7","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.1_1783527125330_0.5913140867296709","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@anyship/cli","version":"0.3.0","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.3.0","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"d10ac37be4ada778460a24e6e1897a4b474769c9","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.3.0.tgz","fileCount":8,"integrity":"sha512-SOPLovfYblPz8m+aSUKUTZhIMVKhy46SceRsNSGD9cvtrdkM9JM/AhN4O9xfqViJ7NR29BbAmPE8dpHQAUvywA==","signatures":[{"sig":"MEYCIQDhiPRYKbXE4E/TbP1o35Lm8GW4d4bqKD6zYMoeTua+igIhALnau5pProNhP1mNebFxJKc6TmiXyRslrebFibf4spiF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33793},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"48b8020591bdb11e4d71fe9ba92fcaffb43c4a8f","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.3.0_1783548079881_0.9083907889785343","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@anyship/cli","version":"0.3.1","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.3.1","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"2c1e15e7a3a34796fffa5781becff42509ab1723","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.3.1.tgz","fileCount":8,"integrity":"sha512-4ZURxcTSv6adqnF2pywJunP2JBs62dSzLJT97pD4NxlaV0HaNHn0URjS5lfA3ObC8JhHb0i4FtR1gztZ2AJYYw==","signatures":[{"sig":"MEUCIHekd2ZQ/P9xz13KxLxd+aywMYqfqKmW6x27J3bDugC/AiEAl+D/tjnS/hymrsYBlmHBn+cpgrabmOySY6lbdCN0No4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35427},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"8f125feed4b60e3962c7eed1da16891195e0406f","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.3.1_1783621664624_0.1873024867849855","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@anyship/cli","version":"0.3.2","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.3.2","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"b3133418d242aa5ae7ae8ea13c18295fa72350d1","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.3.2.tgz","fileCount":9,"integrity":"sha512-rtTW/dcQyiu5aTCClRmCAyf6FWWD1wbvJRWOp/E0lTlnV9EkR3fXRiIeQL4d/BPtO9Pd3Uqvv710nA2NhVMDtg==","signatures":[{"sig":"MEUCIQCUnpZwunmhjVoko6YBtJLxveDx7VZacPE0iZ3czhi+NAIgfopX1Mrr2EGfj1DphuzVyqs2bXikaV//pLeCItxe57Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41663},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"101e958e4759238fc41d5628f59f64b9e8f1511b","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.3.2_1783966511796_0.9711608758107382","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@anyship/cli","version":"0.4.0","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.4.0","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"a5c1a88e95879cb67a9dc0c1e5c043a95ac5b9c7","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.4.0.tgz","fileCount":9,"integrity":"sha512-vpexuY9xUJKhyNrxynBiUQSjWxxNN1gb53FcvBH1GZemmLQ5ayhK8ki1AImOVGZvB9QYJlsnW5mtHYnmm0UFDw==","signatures":[{"sig":"MEYCIQC2VXvlYdEt7cfkDkEsw87E3w2aV9pTnEuAp36itnS2sAIhALJm07lDDUxLMvhXMhD44UhuuzHf24ppqgZY26iSxOht","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41663},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"101e958e4759238fc41d5628f59f64b9e8f1511b","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.4.0_1783966560661_0.9891407946831128","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@anyship/cli","version":"0.5.0","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.5.0","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"b80e42e7278d3c2f417b59cb1d46c11f56d6e594","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.5.0.tgz","fileCount":10,"integrity":"sha512-YlHG7k9tmfkccyfJEOA5iaFD6R5zl/1MUwZlI9IovZxcbnQ+qdOsz8wzjoAtL6j1kmDGI35iZssY3Ph1hdGr4w==","signatures":[{"sig":"MEQCIB25HF+SlYa04yCDdPiyE4bAdniRgnox39a4MgG3y+bsAiBjSBrGdPkP+1MPjKbuHCJc79UUBqh4VpxiMiOPAfS+ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45378},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"5f917e407ddb9245fd0ed0dbb7502c861ba3063a","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.0_1783968447157_0.1469299378169786","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@anyship/cli","version":"0.6.0","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.6.0","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"a0042246d171bb002875b014b520f79a1f558cfe","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.6.0.tgz","fileCount":11,"integrity":"sha512-D9lXtAy98pQaiRtAZGaLWEUjTRR9OvdGSXQiMZ0T4pMYcDlQJSlsoS7TjeqQB0zHJx2YVNhiTcLGLFzOqYAZqQ==","signatures":[{"sig":"MEUCIB4hX3puWL3FhN69RqWl1l7AyyN1GmzfNAR9b5YKxKzbAiEA4lYawRKBNUmoKYs4c+BY+CZz/9c1rO65b1pdOM9aRWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72307},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"0dfd3afcba6e9a223cffa31ae1512657c0903d79","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.6.0_1784309594914_0.5673074059833465","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@anyship/cli","version":"0.6.1","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.6.1","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/drydock/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/drydock/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"010ec2209e765dfcd36721c42f4d50b1d625fff0","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.6.1.tgz","fileCount":12,"integrity":"sha512-zrAwpFVa2FtrrxbPO2+z9o89ggLWpgHQNWZUFlgmwQSgOLOnqN8xhq0Ky/Y+vZsVxMy4xeUSYamBFE2RnxmrvQ==","signatures":[{"sig":"MEQCIBsQuYzNshe2QSBHCcf6BGBvYEFfRbCWieMdt9H4IfAtAiApduMmdxGxMJ/elLnufYwch5W1Q68NrAiGwdsI1zT8lA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81716},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"3b2c54a55e15f9e71b43986ded6d7067a3285a0f","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/drydock.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.6.1_1784310354863_0.7045136375209371","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@anyship/cli","version":"0.6.2","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.6.2","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/anyship/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/anyship/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"5eb03c8ac7f0edb196fd0a46b1d9183fcfdbaf5a","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.6.2.tgz","fileCount":12,"integrity":"sha512-fcRXtbJFZDO9GyR9mbiqwqvE5N5wWhI/Za0BdKUB9HW6ryvmtS0T4a9r9AL7aN8B0uTARn7jo4jubc0bCFnmLA==","signatures":[{"sig":"MEYCIQCwMw5++5gQkgVyAM6FWAR+NoQ7rdbOsPRallTHUCIErAIhAJeCSj4FR1t+Loe7YuC1j2jg9SjDVrJ/VEUrr5LX+eOS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82770},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"9c7a447a73494693bc9efb2659e7c3ad4d1c113f","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/anyship.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.6.2_1784326645636_0.5654152110762958","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@anyship/cli","version":"0.7.0","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.7.0","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/anyship/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/anyship/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"794bbd5a4ff68115057fd834b30894327c528f48","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.7.0.tgz","fileCount":14,"integrity":"sha512-fBepOHJ0AEno08BoXjzgcDvTDukWZrA3Y2cJBNt3AI2h0FwWADQ6DsbXgtu57EEJC2w6JOvbUMlpxNvcuu7+xA==","signatures":[{"sig":"MEUCIQDTKG3GmZdRPjr1LejG5f1EcJQzP8rav8srKUGmTlnxowIgVfilmjw2uiLgtIkXucOuWknflaPBuuX+fMxkr72ljto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102440},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"4fb4dd7ce6eada7fb377b7907c373ad95e805c0f","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/anyship.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.7.0_1784653426428_0.5077056174301533","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@anyship/cli","version":"0.8.0","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.8.0","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/anyship/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/anyship/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"c5b805310ccda80ef342e646543338caa8effffe","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.8.0.tgz","fileCount":14,"integrity":"sha512-BqBimzxjoB94qrmcQWRHq3KFhHbzzWpW7FLhZ/AEUrAq2E4ebpJCygv3LBO5S0gxz2YVuegm4ca0KsuyoixBRw==","signatures":[{"sig":"MEQCIFnr0AuLHBjwPxFhmkRdGOKRfiP1yfMQmulC/iNKnd4GAiA0UiMw4g4sZ9dGcEXK5SKk2XKjOikvLlDRJM6I8MBa5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103150},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"08920b07d10d472f5de644c326eb2ddc6bd32105","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/anyship.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.0_1784654163766_0.7221177084245249","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@anyship/cli","version":"0.9.0","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.9.0","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/anyship/tree/main/packages/cli#readme","bugs":{"url":"https://github.com/anyship/anyship/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"1fefa32db449c1e28048c1b21dba425e7ae1cf03","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.9.0.tgz","fileCount":14,"integrity":"sha512-a+1IRRTP6WX7F8cxHH8VVLbDmoiydXd1qFTeJBW+8hYeT9ZIukOBa4G33QSiIlI6GTGAbluumxZAZj0uY9/Ftw==","signatures":[{"sig":"MEUCICdQNMUh7IIGBz6q8XDwC5aqwYa6Cj8B3NFizJ6HDxxvAiEAkoVoF9eyq2e8K5kgcqLaFv2vbI7uSxuIebmHxUgM0Zk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103518},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"270f474dcc6a7ffcc9590a271f2266d0dceb7b59","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/anyship.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.9.0_1784734984323_0.6160333502061783","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@anyship/cli","version":"0.9.1","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.9.1","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/cli#readme","bugs":{"url":"https://github.com/anyship/cli/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"056907d0630eea77637e21bcf65ef06c8544d0c1","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.9.1.tgz","fileCount":16,"integrity":"sha512-TTpp4rtljElwg+mmfqovD18KAUn8mQ3oJdqMpez0KvgzLuKtgxDxo1XR/TDiKesHBcGZaCZvnRpx5WurPls7/w==","signatures":[{"sig":"MEUCIQCDoqkjuPmVLk7Mc7jRdctaRXXdy2A+1RWL4xmcFxUxbgIgVIlgW7+hW6w8HVNmSImHCos0k6gb060DbuISDyIgzaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117447},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"3565a6f0e4ddcfc1f78f1d3584277055f6d08975","_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/cli.git","type":"git"},"_npmVersion":"10.8.2","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"fflate":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.9.1_1784914416386_0.878031084977128","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@anyship/cli","version":"0.9.2","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.9.2","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/cli#readme","bugs":{"url":"https://github.com/anyship/cli/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"a29abde2e871cfc4e3e406e634425199392ae3f3","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.9.2.tgz","fileCount":23,"integrity":"sha512-NrT3MyxayTXICQOZBGA7vUnow9YktgklDKOBcmZENFnTLsqGVPJK/YLJx0LPUfwsx3eQS6fg6FE8MGZqpvmgPQ==","signatures":[{"sig":"MEUCIQDj8r63lEu5TDlixfdG1TMMfYqkKOFKKQGq1zM21fQ5pgIga980/s1BXrz5G+Gbi5TvbCmGldnC1uefREhRt8tlKzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180393},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"eaec41e6fa85e770dc5c3b199a08d9b504725933","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/cli.git","type":"git"},"_npmVersion":"10.9.8","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"fflate":"^0.8.2","ignore":"^7.0.6","node-diff3":"^3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.9.2_1787407684377_0.39987202868549","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@anyship/cli","version":"0.9.3","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.9.3","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/cli#readme","bugs":{"url":"https://github.com/anyship/cli/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"13baa969e0e44e413b3d3d468b6125e1409be451","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.9.3.tgz","fileCount":23,"integrity":"sha512-JzXK95jt5ncGbqjy40J/Ca9p4RULGW7UHCBGpfKk7TulgfuyMf/4WlyZ8u4nW7DNvtAH2g3ls/Z4aG8hpP9OYg==","signatures":[{"sig":"MEUCIBZffEHHuKLHQYy21yhqn8SybuRaiQnPyoaRp5cWEoEcAiEA90TBrzLFpTiAPuswwrDpPJgYU1RPAbZakJ/Prmb72kQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180401},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"eaec41e6fa85e770dc5c3b199a08d9b504725933","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/cli.git","type":"git"},"_npmVersion":"10.9.8","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"fflate":"^0.8.2","ignore":"^7.0.6","node-diff3":"^3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.9.3_1787407849479_0.9115564728599654","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@anyship/cli","version":"0.9.4","keywords":["anyship","deploy","cloudflare","mcp","cli"],"_id":"@anyship/cli@0.9.4","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"homepage":"https://github.com/anyship/cli#readme","bugs":{"url":"https://github.com/anyship/cli/issues"},"bin":{"anyship":"bin/anyship.mjs"},"dist":{"shasum":"abb9d3bb893c40c0adb2724e0701407f9736e3cc","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.9.4.tgz","fileCount":23,"integrity":"sha512-tvwhLsL1dWcxIgiYV6UXfHkWHmkeb42yfy65zXtJX6KVKwm8bpCOVyAt8gbd+6g7bDlw2RoSlJvV0OPJlbTowA==","signatures":[{"sig":"MEQCIADn9EKai5cQB+djIdPhdxl4P7I7zUuuKBT6wJP4S/hMAiBuSKZS9LONpYXu9FDkDvn4EWSDS/8QRH3ZAdyvFfUW6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181890},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.mjs"},"gitHead":"03ca0c9e7b1810c4d64ceb8af1b782fd4be0efd4","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"repository":{"url":"git+https://github.com/anyship/cli.git","type":"git"},"_npmVersion":"10.9.8","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"fflate":"^0.8.2","ignore":"^7.0.6","node-diff3":"^3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.9.4_1787408878331_0.7008155806394714","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"@anyship/cli","version":"0.9.5","description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","type":"module","bin":{"anyship":"bin/anyship.mjs"},"exports":{".":"./src/index.mjs"},"engines":{"node":">=18"},"scripts":{"test":"node --test test/*.test.mjs"},"keywords":["anyship","deploy","cloudflare","mcp","cli"],"repository":{"type":"git","url":"git+https://github.com/anyship/cli.git"},"homepage":"https://github.com/anyship/cli#readme","bugs":{"url":"https://github.com/anyship/cli/issues"},"publishConfig":{"access":"public"},"dependencies":{"fflate":"^0.8.2","ignore":"^7.0.6","node-diff3":"^3.2.1"},"_id":"@anyship/cli@0.9.5","gitHead":"577b661f60b043bdee179519431131faeb24c58e","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-BfjmkNFS9B/rD9IkIYpmvWmNZpXkn9w4xOAHovtqnUT7iS+In16OXxuuhPWqtQhXjmb7UUPKg/ueNXO4L1rJxA==","shasum":"541957317f1a8bf677c22100a08732fe6ca2b3e4","tarball":"https://registry.npmjs.org/@anyship/cli/-/cli-0.9.5.tgz","fileCount":23,"unpackedSize":182473,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD0e2MQsEzkdUfIA6KdSFqCEHPBbv5X8cpIYTVw+OYanAIhAJdCkB730kutKV5uOYtykbdkJX1a+GZ+pXhNfq4FLctT"}]},"_npmUser":{"name":"kiddrew","email":"hunteraa@gmail.com"},"directories":{},"maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.9.5_1787409996177_0.32542167542572"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T02:56:10.376Z","modified":"2026-08-22T14:46:36.496Z","0.1.0":"2026-07-08T02:56:10.718Z","0.2.0":"2026-07-08T15:47:48.104Z","0.2.1":"2026-07-08T16:12:05.499Z","0.3.0":"2026-07-08T22:01:20.034Z","0.3.1":"2026-07-09T18:27:44.775Z","0.3.2":"2026-07-13T18:15:11.943Z","0.4.0":"2026-07-13T18:16:00.827Z","0.5.0":"2026-07-13T18:47:27.302Z","0.6.0":"2026-07-17T17:33:15.038Z","0.6.1":"2026-07-17T17:45:55.011Z","0.6.2":"2026-07-17T22:17:25.791Z","0.7.0":"2026-07-21T17:03:46.565Z","0.8.0":"2026-07-21T17:16:03.913Z","0.9.0":"2026-07-22T15:43:04.451Z","0.9.1":"2026-07-24T17:33:36.531Z","0.9.2":"2026-08-22T14:08:04.535Z","0.9.3":"2026-08-22T14:10:49.610Z","0.9.4":"2026-08-22T14:27:58.459Z","0.9.5":"2026-08-22T14:46:36.317Z"},"bugs":{"url":"https://github.com/anyship/cli/issues"},"homepage":"https://github.com/anyship/cli#readme","keywords":["anyship","deploy","cloudflare","mcp","cli"],"repository":{"type":"git","url":"git+https://github.com/anyship/cli.git"},"description":"anyship CLI — deploy a local project directory, run a local MCP server for AI agents, and log in.","maintainers":[{"name":"kiddrew","email":"hunteraa@gmail.com"}],"readme":"# @anyship/cli\n\nCommand-line companion for [anyship](https://anyship.dev) — deploy a local\napp directory to a live URL, or run a local MCP server so an AI agent (Claude\nCode, Codex) can deploy directories directly.\n\n```bash\nnpx anyship login          # save your anyship API key (validated + stored 0600)\nnpx anyship deploy .        # deploy the current directory\nnpm install -g anyship      # optional: install the `anyship` command globally\n```\n\n## Why a local CLI\n\nanyship's control plane is a remote service — it can't read your disk. This CLI\nruns on your machine, so it gathers your app itself, respecting ignore rules\nand excluding `node_modules`, build output, caches, `.env` files, and local\ndatabases. Git can improve deploy-time file discovery when present, but it is\nnever required. Source synchronization is owned by Anyship revisions and works\nthe same in an ordinary directory with no `.git` folder.\n\nRun it either way:\n\n```bash\nnpx anyship --help\nnpm install -g anyship\nanyship --help\n```\n\n## Commands\n\n`anyship -v` / `anyship --version` prints the installed CLI version; `anyship --help` lists commands.\n\n### `anyship login`\n\nAn **`anyship_sk_…` API key is the only credential — there is no browser/OAuth\nlogin.** `anyship login` takes your key, validates it against the control plane,\nand stores it in `~/.anyship/config.json` (mode `0600`), so `deploy` and `mcp`\nauthenticate automatically afterward. Grab the key from the anyship dashboard.\n\n```bash\nanyship login --key anyship_sk_…       # validate + store the key\necho $KEY | anyship login --with-token # or pipe it (CI / scripts — no key in shell history)\nanyship logout                         # remove stored credentials\n```\n\nIf no key is present, `login` errors telling you to supply one — it never opens a\nbrowser. (OAuth exists only for **dashboard** sign-in — Google/GitHub — never for\nthe CLI, MCP, or deploy.)\n\n### `anyship deploy [path]`\n\nArchive and deploy an app's **root directory** — the top-level folder holding\n`.anyship/` (a metadata directory, like `.git`) and `package.json` — defaulting to\n`.`. Never point it at a subdirectory such as `public/` or `dist/`: anyship\ndetects the stack from the directory structure, builds if needed, works out what\nto serve, and returns a live URL.\n\n```bash\nanyship deploy --project my-app .\nanyship deploy .                              # re-deploy — app name read from .anyship/project.json\nanyship deploy --installation anyship_csmoak --project my-app .\nanyship deploy --project my-app . --dry-run   # list what would be uploaded\nanyship status --project my-app --watch       # poll until deployed or failed\n```\n\nBefore an existing app uploads, the CLI reads Anyship's current source head\nand adopts it as the base for this deploy — whether or not this directory has a\nmanifest, and even if its recorded `syncedRevision` lags. (Because `.anyship/` is\ngitignored, a fresh clone or a sibling session routinely has a stale base or none\nat all; that's normal, not an error.) The upload carries that base, and the server\napplies an atomic compare-and-swap against it, so the only thing that can still be\nrejected as `source_diverged` is a genuinely concurrent deploy landing in the same\nwindow. `anyship deploy --force` is an explicit overwrite: it advances the source\nhead from the local snapshot and records that the revision was forced. An accepted\ndeploy updates the manifest immediately, even if the asynchronous production build\nlater fails.\n\nEvery deploy checks for `<dir>/.anyship/project.json`. If it's missing, the CLI\ncollects `app`, a readable slug base, and `api`, then uploads by app name.\nThe server sanitizes the requested base and appends random characters for global\nuniqueness (`my-app` becomes something like `my-app-a1b2c3`). Only after the\nserver returns that final `slug` and `projectId` does the CLI write the manifest.\nA first deploy must therefore be given `app`; it is never inferred from the\ndirectory name. Failed first uploads leave no speculative deploy identity\nbehind. Manifests left by older clients before an upload completed are recognized\nby their missing `projectId` and repaired automatically on retry.\n\n**Once the file contains a server-assigned `projectId`, its `app`, `slug`,\nand `api` are authoritative** — they beat `--project` and `--installation`, and\nyou are not prompted again. That inversion is deliberate: it means a stale flag\nor a default pointing elsewhere cannot redirect a redeploy into a different\napp or Anyship installation. To retarget a directory, edit\n`.anyship/project.json`. The `.anyship/` directory is never uploaded (it's\nexcluded from the archive); add it to `.gitignore` if you don't want it in\nversion control.\n\n`--installation` accepts an MCP connector name or installation URL. It selects\nthe matching URL and token from `~/.codex/config.toml` or `~/.claude.json`, so a\nstored credential for another Anyship installation cannot redirect the deploy.\n\nOptions: `--project <name>` (optional once a confirmed manifest exists),\n`--slug <readable-base>` (first deploy only; the server adds a random suffix),\n`--installation <name-or-url>`, `--api <url>`, `--key <token>`, `--env <json>`,\n`--dry-run`, `--force`, `--json`.\n\n### `anyship pull [path]`\n\nSynchronize a local directory with the app's accepted Anyship source. This\nis a file-level three-way merge implemented in JavaScript; it does not invoke\nGit or require a repository.\n\n```bash\nanyship pull                              # app from .anyship/project.json\nanyship pull --project my-app .           # populate an empty plain directory\nanyship pull --replace                    # backed-up replacement when no safe base exists\nanyship pull --continue                   # confirm resolved conflicts\nanyship pull --abort                      # restore the pre-pull backup\n```\n\nThe merge uses the last synchronized revision as its base. Remote-only changes\nare applied, local-only changes remain, and identical edits collapse. Concurrent\ntext edits receive conflict markers. For binary and modify/delete conflicts the\nlocal file stays in place and the remote side is written beneath\n`.anyship/conflicts/<revision>/`.\n\nEvery changing pull first creates a ZIP backup in `.anyship/backups/`. A\nconflicted pull applies its clean changes, writes `.anyship/sync-state.json`,\nexits nonzero, and does not advance `syncedRevision`; resolve the listed files\nand run `--continue`, or run `--abort`. Files outside Anyship's managed source\nset—including `.git`, `.anyship`, ignored files, secrets, local databases,\ncaches, and build output—are preserved.\n\nAn old manifest without revision metadata is adopted only when the current\nfiltered directory digest exactly matches app revision history. A nonempty\ndirectory with no safely identifiable base is refused; use `--replace` or pull\ninto a new empty directory for manual comparison.\n\n### Managed auth — social login for your deployed app\n\nA deployed app can add **Sign in with Google** and **Sign in with GitHub** with\n**zero OAuth setup** — no Google/GitHub console, no client IDs, no callback\nregistration, no secrets in your app. anyship owns the OAuth clients and brokers the\nlogin; your app receives a verified identity and issues its own session (anyship is a\nbroker, **not** an identity provider — you own your users).\n\nThere's nothing to run in the CLI for this: on every deploy of an app with a backend,\nanyship auto-injects `ANYSHIP_AUTH_URL`, `ANYSHIP_AUTH_APP_ID`, and `ANYSHIP_AUTH_SECRET`\ninto your Worker. Drop in the tiny client helper, wire a `/login` and a callback\nroute, and both buttons work on the live URL.\n\nFull app-author guide (client helper, the handoff token, keying users on the\nprovider-native `sub`, BYO-client upgrade):\n**[docs/SOCIAL_LOGIN.md](https://github.com/anyship/drydock/blob/main/docs/SOCIAL_LOGIN.md)**.\n\n> This is separate from **dashboard** sign-in and from the CLI's own `anyship_sk_…`\n> API key — the CLI/MCP/deploy credential is never OAuth (see [`anyship login`](#anyship-login)).\n\n### `anyship status [--project <name>]`\n\nShow deployment status for an app, via the REST API (not `/mcp`). The MCP\n`deployment_status` tool is a thin wrapper over this same function\n(`fetchProjectStatus`), so polling always runs through the CLI and both return\nidentical text. App name and control-plane URL default from\n`./.anyship/project.json`, so inside a deployed directory it just works.\n\n```bash\nanyship status                                # this directory's app\nanyship status --watch --interval 15          # poll until deployed or failed\nanyship status --project my-app               # or name it explicitly\n```\n\nOptions: `--project <name>` (default: this directory's manifest), `--path <dir>`,\n`--api <url>`, `--key <token>`, `--json`, `--watch`, `--interval <sec>`.\n\n### `anyship rollback [--project <name>]`\n\nMake a past deployment live again — **undo a bad deploy** without re-uploading\nsource. With no `--to`, it restores the version deployed just before the current\none; `--to <deploy-id>` (ids come from `anyship status` history) restores a\nspecific past deployment. It reuses that version's stored source **and restores the\nenvironment variables it ran with**, then ships it as a new deployment (so a\nrollback can itself be rolled forward again). Only a version that actually went\nlive can be restored, and it's blocked when the app is over its traffic limit, same\nas a normal deploy. App name and control-plane URL default from\n`./.anyship/project.json`, so inside a deployed directory it just works.\n\n```bash\nanyship rollback                       # undo the last deploy (this directory's app)\nanyship rollback --to dep_abc123       # a specific past version\nanyship rollback --dry-run             # preview the target, no change\nanyship rollback --project my-app      # or name it explicitly\n```\n\nOptions: `--project <name>` (default: this directory's manifest), `--path <dir>`,\n`--to <deploy-id>`, `--dry-run`, `--json`, `--api <url>`, `--key <token>`.\n\n### `anyship logs [--tail]`\n\nShow your deployed app's **request log** — one line per request the platform\nserved (method, path, status, latency, response size, client IP + colo), like\n`heroku logs`. Without `--tail` it prints the last N lines and exits; with\n`--tail` it streams new requests live over SSE and reconnects if the connection\ndrops, until you Ctrl-C. App name and control-plane URL default from\n`./.anyship/project.json`, so inside a deployed directory it just works.\n\n```bash\nanyship logs                    # last 100 request lines for this directory's app\nanyship logs --tail             # stream requests live (Ctrl-C to stop)\nanyship logs -n 20 --tail       # backfill 20 lines, then follow\nanyship logs --project my-app --json\n```\n\nOptions: `--tail`/`-t`, `--num`/`-n <count>` (1–500, default 100), `--project\n<name>`, `--path <dir>`, `--api <url>`, `--key <token>`, `--json`.\n\nHow far back the log goes is set by your plan — retention is the smaller of an\nage window and a line cap (Free 1h/1k lines → Scale 7d/50k), so busy apps keep\nthe most recent N and quiet apps keep the last few hours/days.\n\n### `anyship crons`\n\nList cron schedules registered for an app (from Wrangler `triggers.crons` or\n`anyship.json` `\"crons\"` on the last deploy). Workers for Platforms has no native\nCron Triggers — anyship registers and fires them when your Worker exports\n`scheduled()`. Pause/resume from the dashboard Settings.\n\n```bash\nanyship crons                       # this directory's app\nanyship crons --project my-app --json\n```\n\nOptions: `--project <name>`, `--path <dir>`, `--api <url>`, `--key <token>`, `--json`.\n\n### `anyship dev [-- <command...>]`\n\nRun your app's dev server locally with anyship's **managed AI gateway** wired in,\nso you need **no LLM provider keys** to build. It mints a scoped **AI-only key**\n(`anyship_dev_…` — it can call the gateway but can't deploy or manage anything),\nthen runs your dev command with each provider's `*_BASE_URL` pointed at the\ngateway and its API-key var set to that AI-only key. So your full anyship key\nnever reaches the app, and the injection lives only for that child process —\nnothing is written to disk. If you've already set your own key for a provider,\nthat provider is left alone (BYO wins). If minting a scoped key fails, it falls\nback to your full key and tells you.\n\n```bash\nanyship dev                     # runs `npm run dev` with the gateway env injected\nanyship dev -- npm start        # run a custom command instead\nanyship dev -- python app.py\n```\n\nOptions: `--api <url>`, `--key <token>`. The key/URL default from\n`ANYSHIP_API_KEY` / `ANYSHIP_API_URL`, `~/.anyship`, or the MCP connector config —\nso after `anyship login` it just works. Usage is billed to your account's AI\ncredit balance, exactly like a deployed app; drop `anyship dev` (or set your own\nprovider keys) to opt out.\n\n### `anyship mcp`\n\nRun a local [MCP](https://modelcontextprotocol.io) server over stdio. **Every\ntool the server exposes runs by calling a CLI function** — the server never\ntalks to the network itself. `deploy` (directory path → `deployDirectory`),\n`pull` (directory path → the same Git-independent merge as `anyship pull`),\n`rename_project` (`renameDirectory`), and `deployment_status` (polling →\n`fetchProjectStatus`, not a proxied `/mcp` call) adapt their dedicated CLI\nfunctions; every other control-plane tool (`list_projects`, `add_domain`,\n`logs`, `request_log`, `set_env`, `analytics_report`, `link_github`, `whoami`, …) is dispatched\nby name through the one `callRemoteTool` primitive in\n[`src/remote-tools.mjs`](src/remote-tools.mjs) — there is no per-tool registry, so\na newer platform tool this CLI predates works with zero CLI change and the tool\nlist stays in sync automatically.\n\nThe server also exposes anyship's how-to docs as MCP **resources**\n([`src/mcp-resources.mjs`](src/mcp-resources.mjs)) — `anyship://docs/ai-gateway`,\n`anyship://docs/deploy`, and `anyship://docs/managed-auth`. A connected agent can\n`resources/read` them to answer questions like \"how do I use the AI gateway\nlocally?\" straight from the connector, with no web fetch. They're static and\nlocal, so listing/reading them needs no API key or network call.\n\n**Claude Code**\n\n```bash\nanyship login --key anyship_sk_…\nclaude mcp add --scope user anyship -e ANYSHIP_API_KEY=anyship_sk_… -- npx -y anyship@latest mcp\n```\n\nFully quit and restart Claude Code after adding the server. Starting a new agent\ninside the existing Claude Code process does not reload the MCP configuration.\n\n**Cursor** (`~/.cursor/mcp.json`), **Claude Desktop** (`claude_desktop_config.json`), and **Codex** (`~/.codex/config.toml`):\n\nElectron-based clients spawn MCP with a minimal environment — bare `npx` can fail\nbefore the server starts. Wrap the launch in your login shell so `npx` resolves\nfrom your normal PATH (nvm, Homebrew, fnm, …). Use `zsh` on macOS, `bash` on\nLinux:\n\n```json\n{\n  \"mcpServers\": {\n    \"anyship\": {\n      \"command\": \"zsh\",\n      \"args\": [\"-lc\", \"npx -y anyship@latest mcp\"],\n      \"env\": { \"ANYSHIP_API_KEY\": \"anyship_sk_…\" }\n    }\n  }\n}\n```\n\nCodex (`~/.codex/config.toml`) — same idea:\n\n```toml\n[mcp_servers.anyship]\ncommand = \"zsh\"\nargs = [\"-lc\", \"npx -y anyship@latest mcp\"]\n\n[mcp_servers.anyship.env]\nANYSHIP_API_KEY = \"anyship_sk_…\"\n```\n\nThen in any conversation: **\"deploy this to anyship.\"** The agent never selects\nfiles and never handles your API key.\n\n> The `@latest` tag is deliberate: the stdio server is long-lived and `npx`\n> caches by spec, so an unpinned `@anyship/cli` keeps launching whatever version\n> is already cached — a republish would never reach you. `@latest` re-resolves\n> against the registry each time the client fully restarts the server. Keep it pinned.\n\n## Configuration\n\nThe `anyship_sk_…` API key is the only credential. With `--installation`, the CLI\nuses that installation's matching MCP connector (unless `--key` or\n`ANYSHIP_API_KEY` explicitly overrides it) and never falls back to stored\ncredentials for another installation. Without `--installation`, it resolves in\nthis order (first hit wins):\n\n1. `--key` flag\n2. `ANYSHIP_API_KEY` env\n3. a stored key (`~/.anyship/config.json`, written by `anyship login`)\n4. the anyship MCP-connector key from an existing client config — `~/.codex/config.toml`\n   or `~/.claude.json` (so configuring the connector is enough for the CLI too)\n\nThere is no OAuth token and no browser-login fallback. The control-plane URL comes\nfrom `--api`, `ANYSHIP_API_URL`, the stored config, or the default. Requires Node.js 18+.\n","readmeFilename":"README.md"}