{"_id":"agent37","_rev":"6-f0626f3564c33524ded1b1abf9ed1779","name":"agent37","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"agent37","version":"0.1.0","license":"Apache-2.0","_id":"agent37@0.1.0","maintainers":[{"name":"vishnukool","email":"vishnukool@gmail.com"}],"bin":{"agent37":"bin/agent37.js"},"dist":{"shasum":"c2735e2bdb100c5838f7eb259c90144fcaf10c65","tarball":"https://registry.npmjs.org/agent37/-/agent37-0.1.0.tgz","fileCount":5,"integrity":"sha512-n8MW8Lh+rW5Li2bgEczw7TfIzvI4GTypkvjpZnfmkj6zvtz1T7G8ohf85jpbxBaWl8Zj/Q2rWx2xFiSqqdOuEg==","signatures":[{"sig":"MEUCICxLh/NeuXp6sntB5M8IzMvWN9luqDMnvM+ldSn+6vpsAiEAlI73qg8vDKKEnzLVkVzxjCfSwi9wLWU1NqPVnI+NIkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29897},"type":"module","engines":{"node":">=20"},"gitHead":"4914e86285eb5753b26e28946ae4cb3f6f7679aa","scripts":{"test":"node --test","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"vishnukool","email":"vishnukool@gmail.com"},"_npmVersion":"11.13.0","description":"Agent37 Cloud command-line interface","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent37_0.1.0_1784165291859_0.8139026956112054","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"agent37","version":"0.1.1","license":"Apache-2.0","_id":"agent37@0.1.1","maintainers":[{"name":"vishnukool","email":"vishnukool@gmail.com"}],"bin":{"agent37":"bin/agent37.js"},"dist":{"shasum":"8a11f09818e1387789fc0437aa42509e47e1fb0b","tarball":"https://registry.npmjs.org/agent37/-/agent37-0.1.1.tgz","fileCount":5,"integrity":"sha512-Kf8sQWqTkuTBksddsAcT+dmTMgPDkdzbGPbz/BVod7iFh3AMpioZPsWp9S0VF5gz5Y436iUd6xeEEf4o40ncdQ==","signatures":[{"sig":"MEYCIQDs4A3xPDTwiQjXMvsQ3V/VvlZ3aiEyeAhB3jfv2ntdWgIhAIs+krZ4kBksDi2JzYYiJJQFskpg03d1mNHZHOkSGP3T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30944},"type":"module","engines":{"node":">=20"},"gitHead":"9fc92169e1216e9e88dcad202caefcc66a2815bd","scripts":{"test":"node --test","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"vishnukool","email":"vishnukool@gmail.com"},"_npmVersion":"11.13.0","description":"Agent37 Cloud command-line interface","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent37_0.1.1_1784172686031_0.4851777660457195","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"agent37","version":"0.2.0","license":"Apache-2.0","_id":"agent37@0.2.0","maintainers":[{"name":"vishnukool","email":"vishnukool@gmail.com"}],"bin":{"agent37":"bin/agent37.js"},"dist":{"shasum":"7d91627ab3b8a4890c7ca9a2051b7ea47cdf30be","tarball":"https://registry.npmjs.org/agent37/-/agent37-0.2.0.tgz","fileCount":5,"integrity":"sha512-PhFE/LIam3gmtE16T7Bf9pOA5Ljto5oSgSdrH9OBzUWKmq6PXKPXRfsvH+IQa9XDogHO0LLwbPntMKjjy4rdZg==","signatures":[{"sig":"MEUCIQD1Vn1OjXON76lA02RjmkNzx6grBNzzj5nEL1VRtRPDxAIgFB+CJ1ugVCbPNgxgABfOWiCXsxqKcez4yCd2c6uCBHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28354},"type":"module","engines":{"node":">=20"},"gitHead":"b0cbd8aeec5defed43375346fd1402e1e0f97cda","scripts":{"test":"node --test","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"vishnukool","email":"vishnukool@gmail.com"},"_npmVersion":"11.13.0","description":"Agent37 Cloud command-line interface","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent37_0.2.0_1784182564047_0.1462786271506884","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"agent37","version":"0.3.0","license":"Apache-2.0","_id":"agent37@0.3.0","maintainers":[{"name":"vishnukool","email":"vishnukool@gmail.com"}],"bin":{"agent37":"bin/agent37.js"},"dist":{"shasum":"960685d9055bd5c84687df0b9bc9c079a2eab6bf","tarball":"https://registry.npmjs.org/agent37/-/agent37-0.3.0.tgz","fileCount":5,"integrity":"sha512-I0tMqqlTAKcBgkQImW0f9ymZPRyAUa/06A0V/0pKzos9qW0YAAIc5J8kIfRIehzhlCzuxmsKylKiqN+KZMsmDQ==","signatures":[{"sig":"MEQCIH/OSckt5HRxZWXyaWySgdDWgH8MGIP6Cb357WV7j0e3AiAXYgh6z/PNvPmWdra2cFWMTaO7QNhbRpe4rtcSpFSMRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41597},"type":"module","engines":{"node":">=20"},"scripts":{"test":"node --test","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"vishnukool","email":"vishnukool@gmail.com"},"_npmVersion":"11.13.0","description":"Agent37 Cloud command-line interface","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent37_0.3.0_1785721109920_0.5182989296248373","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"agent37","version":"0.3.1","license":"Apache-2.0","_id":"agent37@0.3.1","maintainers":[{"name":"vishnukool","email":"vishnukool@gmail.com"}],"bin":{"agent37":"bin/agent37.js"},"dist":{"shasum":"368fdeffb5db9b525e5f4852823604a3d2895e0b","tarball":"https://registry.npmjs.org/agent37/-/agent37-0.3.1.tgz","fileCount":5,"integrity":"sha512-zps+eDqrTZvGMy8M1dnU/b+vFtl6K1AJ24UJmE3FeD0oFWPre0KLoYp53/Fw2gOgZgEjCHMsMCrlZQJLHKZFzQ==","signatures":[{"sig":"MEYCIQD4vqXzbvdMPOFVzpYnJlLmNdW7ZTC4WgY+P/sfqCyG9QIhALcBseUOdcdUSckKwJ4WKGf2seJqIGpVBKuzTzVGNFaK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42169},"type":"module","engines":{"node":">=20"},"scripts":{"test":"node --test","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"vishnukool","email":"vishnukool@gmail.com"},"_npmVersion":"11.13.0","description":"Agent37 Cloud command-line interface","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent37_0.3.1_1786283024541_0.6555288881847579","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"agent37","version":"0.4.0","description":"Agent37 Cloud command-line interface","type":"module","bin":{"agent37":"bin/agent37.js"},"scripts":{"test":"node --test","pack:check":"npm pack --dry-run"},"engines":{"node":">=20"},"license":"Apache-2.0","publishConfig":{"access":"public"},"_id":"agent37@0.4.0","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-4XM8SI3ZqgHeWihvHTA27B5vPwmSkqNX+mUa1Mb1hS5IsCBFjilodhlgdN0ur8LyiqCzx7+I3Tr925eGFXT/wg==","shasum":"5c015109dcebf3bcbef542f09f1cd52ce263dd5c","tarball":"https://registry.npmjs.org/agent37/-/agent37-0.4.0.tgz","fileCount":5,"unpackedSize":47071,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDC1jmfiU6nE4SXiVXgNcZeZfUIk5jdSBTk5cmdlqowLQIhAJfFRdheTm3TxVncKCW6R23tkUQhl02GPzlbYDLUuVeY"}]},"_npmUser":{"name":"vishnukool","email":"vishnukool@gmail.com"},"directories":{},"maintainers":[{"name":"vishnukool","email":"vishnukool@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent37_0.4.0_1789109347134_0.3293990650599439"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-16T01:28:11.763Z","modified":"2026-09-11T06:49:07.385Z","0.1.0":"2026-07-16T01:28:12.016Z","0.1.1":"2026-07-16T03:31:26.193Z","0.2.0":"2026-07-16T06:16:04.183Z","0.3.0":"2026-08-03T01:38:30.088Z","0.3.1":"2026-08-09T13:43:44.690Z","0.4.0":"2026-09-11T06:49:07.259Z"},"license":"Apache-2.0","description":"Agent37 Cloud command-line interface","maintainers":[{"name":"vishnukool","email":"vishnukool@gmail.com"}],"readme":"# Agent37 CLI\n\nSSH into your Agent37 instances, and build a Dockerfile on Agent37's infrastructure and\npublish it as a workspace template — no local Docker needed.\n\n## SSH\n\n```bash\nnpx agent37 ssh setup     # once per machine\nssh <instance-id>.agent37.app\n```\n\n`ssh setup` saves your API key to `~/.config/agent37/config.json`, registers\n`~/.ssh/id_ed25519.pub` with your workspace (generating the keypair if you have none), and\nwrites an `~/.ssh/config` block that routes `*.agent37.app` through `agent37 tunnel`. You\nland as `root`; `scp`, `sftp`, port forwarding, and VS Code Remote SSH work unchanged.\n`ssh node@<instance-id>.agent37.app` lands as the user the agent runs as instead — its CLI,\nconfig, and state are right there — which is what tools that drive the agent over SSH should\nuse. (On a custom template that login needs the account unlocked: `hermes-base` children\nalready are; otherwise `usermod -p '*' node`.)\n\nOne key opens every instance the workspace owns, running instances pick up a new key within\nabout 25 seconds, and there are no TTLs — revoke by deleting the key\n(`DELETE /v1/ssh-keys/{id}`) or the API key. `agent37 ssh <instance-id> [-- <ssh args>]`\nconnects without touching `~/.ssh/config`.\n\n## Templates\n\n```bash\nexport AGENT37_API_KEY=sk_live_...   # https://www.agent37.com/dashboard/cloud/api-keys\nnpx agent37 templates build\n```\n\nRun it in a folder with a `Dockerfile`: the build context uploads (kilobytes, not the\nimage), the image builds in the cloud for `linux/amd64`, the build log streams to your\nterminal, and the result lands as a template revision you can create instances from.\n\n```bash\nagent37 templates build [directory] [--name <template-name>] [--default-port <port>]\n                        [--secret id=NAME[,src=PATH|env=VAR]]... [--registry-auth HOST=USER:PASSWORD]...\n```\n\n- `directory` defaults to the current folder; the `Dockerfile` must be at its root.\n- `--name` defaults to the folder name. Re-building an existing name publishes a new\n  revision; existing instances are never touched.\n- `--default-port` sets the port the bare instance URL routes to (omit for images built\n  on `hermes-base` — its gateway uses the 3737 fallback).\n- `--secret id=NAME` makes a value available to `RUN --mount=type=secret,id=NAME` steps\n  at `/run/secrets/NAME` during the build only; it never lands in the image. The value is\n  read from the environment variable `NAME` (or `env=VAR`, or the file `src=PATH`). Same\n  grammar as `docker build --secret`. Use it for a GitHub token that clones a private\n  repo, a private npm or pip index, and the like.\n- `--registry-auth HOST=USER:PASSWORD` lets `FROM` pull from a private registry.\n\nThe context is the folder minus `.git` and plain `.dockerignore` patterns, capped at\n1 GB — it only needs the `Dockerfile` and the files it `COPY`s. Built images are capped\nat 8 GB. Secrets and registry logins are used for the one build and not stored by\nAgent37. Interrupting the CLI does not cancel the build — it keeps running server-side\n(`GET /v1/template-builds/{id}`).\n\nSee the [Agent37 custom image guide](https://www.agent37.com/docs/agents-api/custom-image).\n","readmeFilename":"README.md"}