{"_id":"@aetherball/swarp","_rev":"8-9b6be0c3e10794359801da526f9c2344","name":"@aetherball/swarp","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"@aetherball/swarp","version":"0.1.0","author":{"name":"Jane Jeon","email":"git@janejeon.com"},"license":"MPL-2.0","_id":"@aetherball/swarp@0.1.0","maintainers":[{"name":"janejeon","email":"git@janejeon.com"}],"homepage":"https://github.com/aetherball/swarp#readme","bugs":{"url":"https://github.com/aetherball/swarp/issues"},"bin":{"swarp":"bin/swarp.js"},"dist":{"shasum":"49a34e63ffb8f316a5d5a3bf440347679cdc6bf4","tarball":"https://registry.npmjs.org/@aetherball/swarp/-/swarp-0.1.0.tgz","fileCount":10,"integrity":"sha512-x+Rw61gXtwiMOOzQXGBw3r+o1LXXNFZHRAUqcSzApSy+6ekqyuGFndh8SCV5goKPz62O/8+ASDV2w4UEM21uvw==","signatures":[{"sig":"MEQCIHB3Uy5TJd5FGtd0KjjyN6fO9KMwKC5hXORscNxKldsdAiAER0pCASLqilv6qUFxxNVumwEx9t+ewaV/mBB2r2/NTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24270},"type":"module","gitHead":"eb73360e8dac0f65353a40c28a31357d531ccab7","scripts":{"lint":"run-s lint:*","test":"vitest","format":"run-s format:*","lint:js":"prettier --check .","prepare":"husky","format:js":"prettier --ignore-unknown --write ."},"_npmUser":{"name":"janejeon","email":"git@janejeon.com"},"repository":{"url":"git+https://github.com/aetherball/swarp.git","type":"git"},"_npmVersion":"11.7.0","description":"DX toolchain CLI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ms":"^2.1.3","zx":"^8.8.5","commander":"^14.0.2","minimatch":"^10.1.1"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^4.0.16","prettier":"^3.5.3","lint-staged":"^16.0.0","npm-run-all2":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarp_0.1.0_1766762126799_0.9539598336355757","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aetherball/swarp","version":"0.1.1","author":{"name":"Jane Jeon","email":"git@janejeon.com"},"license":"MPL-2.0","_id":"@aetherball/swarp@0.1.1","maintainers":[{"name":"janejeon","email":"git@janejeon.com"}],"homepage":"https://github.com/aetherball/swarp#readme","bugs":{"url":"https://github.com/aetherball/swarp/issues"},"bin":{"swarp":"bin/swarp.js"},"dist":{"shasum":"7ded88b65cf78849a191a47c2b5a616d03a76d83","tarball":"https://registry.npmjs.org/@aetherball/swarp/-/swarp-0.1.1.tgz","fileCount":10,"integrity":"sha512-WI/RLuJmMh8aGEUHzihPwc+8fxHCNlpfbkrCttVSWRw2MEGk7YGd7VBCgDHF5ocoH5dfvsBsy7sCL4BGHmMrRA==","signatures":[{"sig":"MEUCIE6MV6fw1GXrSZc+//sOYJOQ391CdRs1jonA4X6yMT/OAiEAlBTfkbSyEYNWn5YfbkKhPWazUfAMc2rW49Of6Gj0rI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25278},"type":"module","gitHead":"aa67dd8a56abeca990543d780d847a72e954ce6d","scripts":{"lint":"run-s lint:*","test":"vitest","format":"run-s format:*","lint:js":"prettier --check .","prepare":"husky","format:js":"prettier --ignore-unknown --write ."},"_npmUser":{"name":"janejeon","email":"git@janejeon.com"},"repository":{"url":"git+https://github.com/aetherball/swarp.git","type":"git"},"_npmVersion":"11.7.0","description":"DX toolchain CLI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ms":"^2.1.3","zx":"^8.8.5","commander":"^14.0.2","minimatch":"^10.1.1"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^4.0.16","prettier":"^3.5.3","lint-staged":"^16.0.0","npm-run-all2":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarp_0.1.1_1766762676245_0.5278899139274924","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aetherball/swarp","version":"0.2.0","author":{"name":"Jane Jeon","email":"git@janejeon.com"},"license":"MPL-2.0","_id":"@aetherball/swarp@0.2.0","maintainers":[{"name":"janejeon","email":"git@janejeon.com"}],"homepage":"https://github.com/aetherball/swarp#readme","bugs":{"url":"https://github.com/aetherball/swarp/issues"},"bin":{"swarp":"bin/swarp.js"},"dist":{"shasum":"cd551b95d998ee02e5c60482190d1ac633844c16","tarball":"https://registry.npmjs.org/@aetherball/swarp/-/swarp-0.2.0.tgz","fileCount":12,"integrity":"sha512-uXqold9kpK9CWYCNdtINbGcz9DDzl6niGOcumYyrOuU2B8HSfwdhoMhGy08rVMDtiF72JtU4AXl6UOWVM7LlqQ==","signatures":[{"sig":"MEYCIQCr8SoKMjVw1IWajbqS7puD7La3bD+vFr4A5YqW/GYxCwIhAPGkDFqkCv2YPsTjgAA2a97oaCUNg1ejPA7gBxf4m/Pi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25663},"type":"module","gitHead":"1525b9684567a85d73c0d2cfe0319fb15ea5a76f","scripts":{"lint":"run-s lint:*","test":"vitest","format":"run-s format:*","lint:js":"prettier --check .","prepare":"husky","format:js":"prettier --ignore-unknown --write ."},"_npmUser":{"name":"janejeon","email":"git@janejeon.com"},"repository":{"url":"git+https://github.com/aetherball/swarp.git","type":"git"},"_npmVersion":"11.7.0","description":"DX toolchain CLI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ms":"^2.1.3","zx":"^8.8.5","commander":"^14.0.2"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^4.0.16","prettier":"^3.5.3","lint-staged":"^16.0.0","npm-run-all2":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarp_0.2.0_1766938047299_0.27508724496697656","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aetherball/swarp","version":"0.3.0","author":{"name":"Jane Jeon","email":"git@janejeon.com"},"license":"MPL-2.0","_id":"@aetherball/swarp@0.3.0","maintainers":[{"name":"janejeon","email":"git@janejeon.com"}],"homepage":"https://github.com/aetherball/swarp#readme","bugs":{"url":"https://github.com/aetherball/swarp/issues"},"bin":{"swarp":"bin/swarp.js"},"dist":{"shasum":"b8f84335aa10924fad9196d43bb9d1b1296db149","tarball":"https://registry.npmjs.org/@aetherball/swarp/-/swarp-0.3.0.tgz","fileCount":15,"integrity":"sha512-CibpYLmZBhr/13hNET3/q0T+g3cLO8VxiuRGdDFZExGZeIGiba1WvciDw3FW7wnG6+Nmz+++wCyqpEPzDq1GNg==","signatures":[{"sig":"MEUCIQDzpAupbzveym+TmaSbGeNwLdVvu4YzHhUTvaY1puqmeQIgBrbJza/0seAD7+E59UT7z8oD+9p+VYGywfjJG1512bQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26851},"type":"module","gitHead":"cbe133f7138be855e7685e5c0d39d389aecc0887","scripts":{"lint":"run-s lint:*","test":"vitest","format":"run-s format:*","lint:js":"prettier --check .","prepare":"husky","format:js":"prettier --ignore-unknown --write ."},"_npmUser":{"name":"janejeon","email":"git@janejeon.com"},"repository":{"url":"git+https://github.com/aetherball/swarp.git","type":"git"},"_npmVersion":"11.7.0","description":"DX toolchain CLI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ms":"^2.1.3","zx":"^8.8.5","commander":"^14.0.2"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^4.0.16","prettier":"^3.5.3","lint-staged":"^16.0.0","npm-run-all2":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarp_0.3.0_1766942363227_0.921676917508365","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@aetherball/swarp","version":"0.3.1","author":{"name":"Jane Jeon","email":"git@janejeon.com"},"license":"MPL-2.0","_id":"@aetherball/swarp@0.3.1","maintainers":[{"name":"janejeon","email":"git@janejeon.com"}],"homepage":"https://github.com/aetherball/swarp#readme","bugs":{"url":"https://github.com/aetherball/swarp/issues"},"bin":{"swarp":"bin/swarp.js"},"dist":{"shasum":"5801f80e4e0cc4c415a0c6d868183867f10b48c1","tarball":"https://registry.npmjs.org/@aetherball/swarp/-/swarp-0.3.1.tgz","fileCount":15,"integrity":"sha512-jgYqOEySH+gkeqmcokK/qaNP0PNy4xBiHX2H690JzwiWnVbzV+sffRK2hrC/hp5ZmRySs6DCJCCuGTi8NJOxOA==","signatures":[{"sig":"MEUCIQCXuV/+btYWlDtFjLf8eMPiWTo7j4ki5okccc+BprJkTQIga624ZUCrfLWyZAjSZFL7ufaTIAcjDCo4Bo4MjfLce2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26078},"type":"module","gitHead":"c030fe3e4863ccf485482b8ebe4a56901d542681","scripts":{"lint":"run-s lint:*","test":"vitest","format":"run-s format:*","lint:js":"prettier --check .","prepare":"husky","format:js":"prettier --ignore-unknown --write ."},"_npmUser":{"name":"janejeon","email":"git@janejeon.com"},"repository":{"url":"git+https://github.com/aetherball/swarp.git","type":"git"},"_npmVersion":"11.7.0","description":"DX toolchain CLI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ms":"^2.1.3","zx":"^8.8.5","commander":"^14.0.2"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^4.0.16","prettier":"^3.5.3","lint-staged":"^16.0.0","npm-run-all2":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarp_0.3.1_1766943000054_0.9612360791617207","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@aetherball/swarp","version":"0.3.2","author":{"name":"Jane Jeon","email":"git@janejeon.com"},"license":"MPL-2.0","_id":"@aetherball/swarp@0.3.2","maintainers":[{"name":"janejeon","email":"git@janejeon.com"}],"homepage":"https://github.com/aetherball/swarp#readme","bugs":{"url":"https://github.com/aetherball/swarp/issues"},"bin":{"swarp":"bin/swarp.js"},"dist":{"shasum":"8db90fcdb35cc791e7e60a127bb704465f665ec3","tarball":"https://registry.npmjs.org/@aetherball/swarp/-/swarp-0.3.2.tgz","fileCount":15,"integrity":"sha512-r3sZxLQ+8hGt3N5ptHBeEJRyUXIBnq014ng+AJYbBvdqCS1tZ1n7KQ5DXEfbycEwfX1XHjutKIywn2TDWkAe1g==","signatures":[{"sig":"MEUCICli76GmLLrSutcbYVKHC/1+mpC5OsDFn/KTTEmelyhgAiEAygw7FfpfTB/b7MHe24sjJRGhXI2oRYwn9RfxkHxPkAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26069},"type":"module","gitHead":"328ed141bc8d4aae9c5b295a9dc45bfa89b80ed9","scripts":{"lint":"run-s lint:*","test":"vitest","format":"run-s format:*","lint:js":"prettier --check .","prepare":"husky","format:js":"prettier --ignore-unknown --write ."},"_npmUser":{"name":"janejeon","email":"git@janejeon.com"},"repository":{"url":"git+https://github.com/aetherball/swarp.git","type":"git"},"_npmVersion":"11.7.0","description":"DX toolchain CLI","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ms":"^2.1.3","zx":"^8.8.5","commander":"^14.0.2"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^4.0.16","prettier":"^3.5.3","lint-staged":"^16.0.0","npm-run-all2":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarp_0.3.2_1766943596969_0.3130164867553866","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aetherball/swarp","version":"0.4.0","author":{"name":"Jane Jeon","email":"git@janejeon.com"},"license":"MPL-2.0","_id":"@aetherball/swarp@0.4.0","maintainers":[{"name":"janejeon","email":"git@janejeon.com"}],"homepage":"https://github.com/aetherball/swarp#readme","bugs":{"url":"https://github.com/aetherball/swarp/issues"},"bin":{"swarp":"bin/swarp.js"},"dist":{"shasum":"e06fd57d61cc1da0e8c185a0adeb8013f139a8a9","tarball":"https://registry.npmjs.org/@aetherball/swarp/-/swarp-0.4.0.tgz","fileCount":16,"integrity":"sha512-6zaZafxdO8v08rMiFYdcCyFPV0p+ZzkXHUF9uXXlH/sY9K1jE+Ws+vqM6BXp0XL365uIAQqa3lXHxquUE/LTZA==","signatures":[{"sig":"MEUCIHzb3tSq58WbIgRFrD5l/V5jQOKrmk2hysA/vSfsnsBlAiEAvpFJdsr5aGcdlwi2i6SjXR7DnSIxzAY+sZB37oEfBDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28893},"type":"module","gitHead":"e6f2b8d138cdbc0cb5a74ba08bcf5914c134e5ff","scripts":{"lint":"run-s lint:*","test":"vitest","format":"run-s format:*","lint:js":"prettier --check .","prepare":"husky","format:js":"prettier --ignore-unknown --write ."},"_npmUser":{"name":"janejeon","email":"git@janejeon.com"},"repository":{"url":"git+https://github.com/aetherball/swarp.git","type":"git"},"_npmVersion":"11.12.1","description":"DX toolchain CLI","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ms":"^2.1.3","zx":"^8.8.5","commander":"^14.0.2","dataloader":"^2.2.3"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^4.0.16","prettier":"^3.5.3","lint-staged":"^16.0.0","npm-run-all2":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swarp_0.4.0_1777553959448_0.15258325996941724","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@aetherball/swarp@0.4.1","bin":{"swarp":"bin/swarp.js"},"bugs":{"url":"https://github.com/aetherball/swarp/issues"},"dist":{"shasum":"68ed91d8f816478ba47022ef30ee59f86271578a","tarball":"https://registry.npmjs.org/@aetherball/swarp/-/swarp-0.4.1.tgz","fileCount":16,"integrity":"sha512-WNuyVLlfz17XBKJ2Oqn30HtcoKMp6zE4plOyj7DalyJoNxRB4bYdvFNYM1bgPdZNIjYXk5TWG+SyR7wBEttQWg==","signatures":[{"sig":"MEYCIQD0KfwKoqKyljY3RIr2lvEQsEudwM7+WYQXiQJhw7z8MgIhAMZ0Ks7LcyOkeNrqwwkSE8R0rkLqaaNoa756uoInp93d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD7tfH5tUZbJGse5+kLtlQ1/LjIancvRPBglviJ8nPTtQIhAISeFpWB1raeWQIgzkiW9seqAyej39SRQk9XZR4O6TmM"}],"unpackedSize":31456},"name":"@aetherball/swarp","type":"module","author":{"name":"Jane Jeon","email":"git@janejeon.com"},"gitHead":"44a76287dd86b465caf882dc1817b5febcce1809","license":"MPL-2.0","scripts":{"lint":"run-s lint:*","test":"vitest","format":"run-s format:*","lint:js":"prettier --check .","prepare":"husky","format:js":"prettier --ignore-unknown --write ."},"version":"0.4.1","_npmUser":{"name":"janejeon","email":"git@janejeon.com"},"homepage":"https://github.com/aetherball/swarp#readme","repository":{"url":"git+https://github.com/aetherball/swarp.git","type":"git"},"_npmVersion":"11.19.0","description":"DX toolchain CLI","directories":{},"maintainers":[{"name":"janejeon","email":"git@janejeon.com"}],"_nodeVersion":"24.20.0","dependencies":{"ms":"^2.1.3","zx":"^8.8.5","commander":"^14.0.2","dataloader":"^2.2.3"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","vitest":"^4.0.16","prettier":"^3.5.3","lint-staged":"^16.0.0","npm-run-all2":"^8.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/swarp_0.4.1_1789126016753_0.5317162279558636"}}},"time":{"created":"2025-12-26T15:15:26.727Z","modified":"2026-09-11T11:26:57.020Z","0.1.0":"2025-12-26T15:15:26.959Z","0.1.1":"2025-12-26T15:24:36.414Z","0.2.0":"2025-12-28T16:07:27.457Z","0.3.0":"2025-12-28T17:19:23.380Z","0.3.1":"2025-12-28T17:30:00.222Z","0.3.2":"2025-12-28T17:39:57.112Z","0.4.0":"2026-04-30T12:59:19.603Z","0.4.1":"2026-09-11T11:26:56.837Z"},"bugs":{"url":"https://github.com/aetherball/swarp/issues"},"author":{"name":"Jane Jeon","email":"git@janejeon.com"},"license":"MPL-2.0","homepage":"https://github.com/aetherball/swarp#readme","repository":{"url":"git+https://github.com/aetherball/swarp.git","type":"git"},"description":"DX toolchain CLI","maintainers":[{"name":"janejeon","email":"git@janejeon.com"}],"readme":"## Prerequisites\n\n- `direnv`\n- `op` to manage secrets for `op://` secrets\n\n## How it fits together\n\ndirenv watches each directory's `.envrc` and, once you've allowed it, auto-loads whatever it points at every time you `cd` in — for a repo set up with swarp, that's `.env`. swarp's job is to keep `.env` populated; direnv's job is to load it. Neither reads the other's config, they just agree on the filename.\n\n- `.env.template` files hold `op://` references and are committed to the repo.\n- `swarp secrets refresh` resolves those references into a gitignored `.env` file, written next to each template — this is the file direnv loads. Only quoted references (`KEY=\"op://...\"`) are resolved; an unquoted reference is flagged with a warning instead.\n- `swarp direnv allow` authorizes the `.envrc`. Until it's allowed, direnv won't load `.env` no matter how many times you refresh it — run `allow` first, once, so every later refresh takes effect automatically on your next `cd`.\n- `swarp run <command>` runs a single command with the environment loaded (`direnv exec .`) without needing `.envrc` to be allowed at all. Use this in non-interactive shells such as CI or agents.\n","readmeFilename":"README.md"}