{"_id":"@builtbyecho/agent-wormhole","_rev":"3-1b4ac69782c549e5f838547de9a779bd","name":"@builtbyecho/agent-wormhole","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@builtbyecho/agent-wormhole","version":"0.1.0","keywords":["ai","agents","wormhole","handoff","encrypted","receipts","cli"],"author":{"name":"BuiltByEcho"},"license":"MIT","_id":"@builtbyecho/agent-wormhole@0.1.0","maintainers":[{"name":"builtbyecho","email":"echo-token@agentmail.to"}],"bin":{"agent-wormhole":"src/cli.js"},"dist":{"shasum":"7888bf7f3b9d42bc65cc8278909d310d95e0bf8c","tarball":"https://registry.npmjs.org/@builtbyecho/agent-wormhole/-/agent-wormhole-0.1.0.tgz","fileCount":19,"integrity":"sha512-gPp4uWrvajwwmKQNUO7vCr6HG3nQEn0Hna1vtCcBmIrBt7n0rShJ6cPzLo7IGdn7kyEB0KdOzXbYbi2Q2FElOA==","signatures":[{"sig":"MEUCIGnEru8udsnjx9c9T5Ih6qcNt7xTK+PCSRDZEAHCXtcEAiEA+2zuKXo4JinQlPHX/wsA8cLoYmqMBBY/FTn/M5Z/nW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52657},"main":"src/cli.js","type":"module","engines":{"node":">=20"},"exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"2db769f556065086083ef2e3d72e8ffff0b88ef8","scripts":{"test":"node --test","smoke":"node src/cli.js send --text \"sealed hello\" --store .wormhole-smoke --ttl 10m --json","prepublishOnly":"npm test"},"_npmUser":{"name":"builtbyecho","email":"echo-token@agentmail.to"},"_npmVersion":"11.14.1","description":"One-time sealed handoffs for agents: missions, artifacts, secrets, and receipts.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"viem":"^2.50.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-wormhole_0.1.0_1779303865700_0.8807948837409645","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@builtbyecho/agent-wormhole","version":"0.1.1","keywords":["ai","agents","wormhole","handoff","encrypted","receipts","cli"],"author":{"name":"BuiltByEcho"},"license":"MIT","_id":"@builtbyecho/agent-wormhole@0.1.1","maintainers":[{"name":"builtbyecho","email":"echo-token@agentmail.to"}],"bin":{"agent-wormhole":"src/cli.js"},"dist":{"shasum":"cb380cbb8d42ebac02104dcd9cdbcfefd0fee2bf","tarball":"https://registry.npmjs.org/@builtbyecho/agent-wormhole/-/agent-wormhole-0.1.1.tgz","fileCount":19,"integrity":"sha512-dWduBJrDZkkEiXw44todQNQRVFKGAfNXYDIhyDmHleNONat9hV5iYGpVPtGwfbZuEMlGeKVX/Eah84c523e2mA==","signatures":[{"sig":"MEUCIGQHKXYAinv+ao5tpMu5dEr/3U2SIpEOIkRZPSQODznoAiEAw1avnrRo0D2r67bsKa6loHreBhlNN26SBbBtlKmQozk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55387},"main":"src/cli.js","type":"module","engines":{"node":">=20"},"exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"b7cdbc8488c51e267b703b251220543c51bc637b","scripts":{"test":"node --test","smoke":"node src/cli.js send --text \"sealed hello\" --store .wormhole-smoke --ttl 10m --json","prepublishOnly":"npm test"},"_npmUser":{"name":"builtbyecho","email":"echo-token@agentmail.to"},"_npmVersion":"11.14.1","description":"One-time sealed handoffs for agents: missions, artifacts, secrets, and receipts.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"viem":"^2.50.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-wormhole_0.1.1_1779310422676_0.2890804315205724","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@builtbyecho/agent-wormhole","version":"0.1.2","description":"One-time sealed handoffs for agents: missions, artifacts, secrets, and receipts.","type":"module","main":"src/cli.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"bin":{"agent-wormhole":"src/cli.js"},"scripts":{"test":"node --test","prepublishOnly":"npm test","smoke":"node src/cli.js send --text \"sealed hello\" --store .wormhole-smoke --ttl 10m --json"},"keywords":["ai","agents","wormhole","handoff","encrypted","receipts","cli"],"author":{"name":"BuiltByEcho"},"license":"MIT","engines":{"node":">=20"},"dependencies":{"viem":"^2.50.4"},"gitHead":"4a1a800a39f89621b4092eb7498926dd91620441","_id":"@builtbyecho/agent-wormhole@0.1.2","_nodeVersion":"26.0.0","_npmVersion":"11.14.1","dist":{"integrity":"sha512-PNqF+zI5pYx0hVw7id7SqAFlSwlarBjTfzQa0pwdKS5vADICHxnlvLTUam3sikfUn7eiRkXCytyYHzFpOn9drA==","shasum":"6853698137df78f81a9d13843580a1fcce10be62","tarball":"https://registry.npmjs.org/@builtbyecho/agent-wormhole/-/agent-wormhole-0.1.2.tgz","fileCount":19,"unpackedSize":55452,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICskY7Pah/RXWcysev3U3YMD1boQenxpkZVkrw0+nm0iAiB1fMW2edjAsUo9uw0uqIVdAdNGbA+ALnLW799lHBAIfg=="}]},"_npmUser":{"name":"builtbyecho","email":"echo-token@agentmail.to"},"directories":{},"maintainers":[{"name":"builtbyecho","email":"echo-token@agentmail.to"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-wormhole_0.1.2_1779755599996_0.04616426597250678"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T19:04:25.472Z","modified":"2026-05-26T00:33:20.350Z","0.1.0":"2026-05-20T19:04:25.898Z","0.1.1":"2026-05-20T20:53:42.818Z","0.1.2":"2026-05-26T00:33:20.161Z"},"author":{"name":"BuiltByEcho"},"license":"MIT","keywords":["ai","agents","wormhole","handoff","encrypted","receipts","cli"],"description":"One-time sealed handoffs for agents: missions, artifacts, secrets, and receipts.","maintainers":[{"name":"builtbyecho","email":"echo-token@agentmail.to"}],"readme":"# Agent Wormhole\n\nAgent Wormhole creates one-time sealed handoffs for autonomous workers.\n\nEmail gives agents inboxes. Chat gives agents threads. Wormholes give agents\ntemporary transfer channels that collapse after use.\n\n```bash\nagent-wormhole send --file ./artifact.zip --note \"handoff for research agent\"\n```\n\nOutput:\n\n```text\nWormhole open: echo-river-47.d8xPMr6mgE6RQv-4k9jT1Fx3mZt7h1wd\nExpires: 2026-05-19T18:22:00.000Z\n```\n\nReceiver:\n\n```bash\nagent-wormhole receive echo-river-47.d8xPMr6mgE6RQv-4k9jT1Fx3mZt7h1wd --out ./received\n```\n\n## Why It Exists\n\nAgents do not always need another inbox. Sometimes they need a sealed handoff:\n\n- one-time mission briefs\n- scoped secrets\n- temporary artifacts\n- Agent Pack bundles\n- receipts\n- config drops between sandboxes\n\nThe MVP encrypts payloads before storage, stores only ciphertext, allows one\nclaim by default, and writes a receipt.\n\nCodes are split into `id.secret`. The `id` locates metadata; the `secret`\nderives the decrypt key and is never written to storage.\n\n## Commands\n\n```bash\nagent-wormhole send --text \"mission brief\"\nagent-wormhole send --file ./bundle.tgz --ttl 10m\nagent-wormhole receive <code> --out ./received\nagent-wormhole inspect <code>\nagent-wormhole cleanup --delete-claimed-older-than 15m\nagent-wormhole serve --port 8787\n```\n\n## First Release Scope\n\n- local filesystem store\n- one-time transfer codes\n- AES-256-GCM encrypted payloads\n- text and file payloads\n- TTL expiry\n- single-claim default\n- JSON receipts\n- hard payload and TTL limits\n- cleanup for expired and claimed drops\n- small HTTP API for VPS deployment\n\n## API Health\n\n```bash\nagent-wormhole serve --host 127.0.0.1 --port 8791 --store /home/dustin/apps/agent-wormhole/.store --max-payload 5mb --max-ttl 24h\ncurl http://127.0.0.1:8791/health\n```\n\n## Safety Defaults\n\n- default TTL: 10 minutes\n- max TTL: 24 hours\n- max payload: 5 MB\n- one claim per wormhole\n- filename sanitization for received payloads\n\n## Public Access Model\n\n- `$ECHO` holders can open wormholes through the direct API with a signed holder\n  proof. Threshold: `50,000,000 ECHO`.\n- Non-holders use the Bankr x402 cloud endpoint.\n- Claiming a wormhole is free.\n- Receipts mark the access path as `echo_holder`, `x402_paid`, or `local`.\n\n## Docs\n\n- [CLI](docs/CLI.md)\n- [API](docs/API.md)\n- [VPS notes](docs/VPS.md)\n","readmeFilename":"README.md"}