{"_id":"freestyle","_rev":"23-fb7f0fde1d763758a30d120cc2c3b312","name":"freestyle","dist-tags":{"latest":"0.1.49"},"versions":{"0.0.1":{"name":"freestyle","version":"0.0.1","keywords":["rap","battle","freestyle","rhyme","rhyming","mic","beats","poet","poem","couplet"],"author":{"url":"http://substack.net","name":"James Halliday","email":"mail@substack.net"},"license":"MIT/X11","_id":"freestyle@0.0.1","dist":{"shasum":"0443f03551204a8eb04d0593aceb4d5de1615949","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.0.1.tgz","integrity":"sha512-bdcaX/NrLIM8PEzLpfVHBLdb5ThBoMXLowujcCG0KS1jnGT1twprg9/fziaejvZ6fGyLp9jSYhPyx8utUMFbYg==","signatures":[{"sig":"MEUCICk735mxpFmfH2ElEz01+s+sV1WDG0neB4Y/atZNOzt6AiEArGDSvH3foQA/OZncwiIqjSE2/118XLlGd7Cwxs3C9BM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","engines":{"node":">=0.4.0"},"scripts":{},"repository":{"url":"git://github.com/substack/node-freestyle.git","type":"git"},"_npmVersion":"1.0.3","description":"Really terrible freestyle markov rapping","directories":{"lib":".","example":"./example"},"_nodeVersion":"v0.5.0-pre","dependencies":{"seq":">=0.2.4","deck":">=0.0.3","rhyme":">=0.0.1","markov":">=0.0.4"},"_defaultsLoaded":true,"devDependencies":{},"_engineSupported":true},"0.0.2":{"name":"freestyle","version":"0.0.2","keywords":["rap","battle","freestyle","rhyme","rhyming","mic","beats","poet","poem","couplet"],"author":{"url":"http://substack.net","name":"James Halliday","email":"mail@substack.net"},"license":"MIT/X11","_id":"freestyle@0.0.2","dist":{"shasum":"f1375c7812c5b225fa7a229e2ff8adb5683aee6e","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.0.2.tgz","integrity":"sha512-GgA5Fs6A4Zu3ACdgklCqsusNU8ZmJGinQsf9q5ceivG9sLBUGuimUejlbudu/1S0QPBUnaAQMrWlOt6q0pOb+g==","signatures":[{"sig":"MEUCIFEGDTTZfxA+5WACDeBTfAlDhBtpUkD7bA+nVAITif2WAiEAxHiEUnMvJPkrk7e771ES1f1UnixkJqgpIsrzxVRlLn4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","engines":{"node":">=0.4.0"},"scripts":{},"repository":{"url":"git://github.com/substack/node-freestyle.git","type":"git"},"_npmVersion":"1.0.3","description":"Really terrible freestyle markov rapping","directories":{"lib":".","example":"./example"},"_nodeVersion":"v0.5.0-pre","dependencies":{"seq":">=0.2.4","deck":">=0.0.3","rhyme":">=0.0.3","markov":">=0.0.4"},"_defaultsLoaded":true,"devDependencies":{},"_engineSupported":true},"0.0.3":{"name":"freestyle","version":"0.0.3","keywords":["rap","battle","freestyle","rhyme","rhyming","mic","beats","poet","poem","couplet"],"author":{"url":"http://substack.net","name":"James Halliday","email":"mail@substack.net"},"license":"MIT/X11","_id":"freestyle@0.0.3","dist":{"shasum":"f9e4651f3a4c7400a36d6dab3b67ecd41b7eb9e5","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.0.3.tgz","integrity":"sha512-xe7Pyg2tdXgj8k2GjB29x7U3Fnd7OYf9V4jKgwfcaiESSUEa6yRnXybgV2n796ysrTRzfWK4MIjRJSerFLIOBA==","signatures":[{"sig":"MEYCIQDnvHLrxlRNiz3CAUULfds4cH8J+/K6f60xy7B8obMnmQIhAKJOGJd/a3nzSIa19rBSXJ25mXN+hFio8i4xlNZ0UzoB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","engines":{"node":">=0.4.0"},"scripts":{},"repository":{"url":"git://github.com/substack/node-freestyle.git","type":"git"},"_npmVersion":"1.0.3","description":"Really terrible freestyle markov rapping","directories":{"lib":".","example":"./example"},"_nodeVersion":"v0.5.0-pre","dependencies":{"seq":">=0.2.4","deck":">=0.0.3","rhyme":">=0.0.3","markov":">=0.0.4"},"_defaultsLoaded":true,"devDependencies":{},"_engineSupported":true},"0.0.4":{"name":"freestyle","version":"0.0.4","keywords":["rap","battle","freestyle","rhyme","rhyming","mic","beats","poet","poem","couplet"],"author":{"url":"http://substack.net","name":"James Halliday","email":"mail@substack.net"},"license":"MIT/X11","_id":"freestyle@0.0.4","dist":{"shasum":"497d056e1a6eac2062dd52d3f0f7d9d9df86b955","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.0.4.tgz","integrity":"sha512-AXwwwFK+uUPGff6Drw7bVZibKRt8Il25v19tS+eFoZD6FGOMJQVifAMRt7J6p3nd2RD0s9Vzta0g0o7HX4LsKg==","signatures":[{"sig":"MEUCIADtf5JmnZQ0a4lmWzTnvLE6ocdmqoM2pfrp+jp+Yi6/AiEAnA/G0eALElRnv7Twk54puEvub7mue5ApfqvZPZEGII4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","engines":{"node":">=0.4.0"},"scripts":{},"repository":{"url":"git://github.com/substack/node-freestyle.git","type":"git"},"_npmVersion":"1.0.3","description":"Really terrible freestyle markov rapping","directories":{"lib":".","example":"./example"},"_nodeVersion":"v0.5.0-pre","dependencies":{"seq":">=0.2.4","deck":">=0.0.3","rhyme":">=0.0.3","markov":">=0.0.4"},"_defaultsLoaded":true,"devDependencies":{},"_engineSupported":true},"0.1.44":{"name":"freestyle","version":"0.1.44","keywords":["freestyle","sandboxes","ai-agents","agents","ai","code-interpreter"],"_id":"freestyle@0.1.44","maintainers":[{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"}],"bin":{"freestyle":"cli.mjs","freestyle-sandboxes":"cli.mjs"},"dist":{"shasum":"a7026215e07e6e3ef0244e00061011cbaf18b2ca","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.1.44.tgz","fileCount":7,"integrity":"sha512-FyXFl3KHp+XtSVu0parRhPHqm3h2hoQtNfPSB6ERfGURk9bxUD3FdEBr+xPbWZub6aBEkzDgQn9HMkFPVSoNKg==","signatures":[{"sig":"MEYCIQDGX7iI6n9URpHFb4sPh+65ndnN4eW0nu4dqDU6iqULFwIhAJD5UThuDm6Nu5odbAhHYIzVqIUPAXjpQ3akp4gkaOOI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1665729},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","exports":{"import":{"types":"./index.d.mts","default":"./index.mjs"},"require":{"types":"./index.d.cts","default":"./index.cjs"}},"gitHead":"5f7c89bf415b053c9106a22bd73eb8b03804543e","_npmUser":{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"},"_npmVersion":"11.11.1","description":"Learn more at [docs.freestyle.sh](https://docs.freestyle.sh)","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"optionalDependencies":{"glob":"^13.0.0","yargs":"^18.0.0","dotenv":"^17.3.1"},"_npmOperationalInternal":{"tmp":"tmp/freestyle_0.1.44_1775846449283_0.7708646283779503","host":"s3://npm-registry-packages-npm-production"}},"0.1.45":{"name":"freestyle","version":"0.1.45","keywords":["freestyle","sandboxes","ai-agents","agents","ai","code-interpreter"],"_id":"freestyle@0.1.45","maintainers":[{"name":"jacobzwang","email":"zwang.jacob@gmail.com"},{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"}],"bin":{"freestyle":"cli.mjs","freestyle-sandboxes":"cli.mjs"},"dist":{"shasum":"648a529f68d4784d828e5f307b2cb923a8c107a8","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.1.45.tgz","fileCount":7,"integrity":"sha512-32CcTk+RB9YuElGUgvcj6uE+qoO+tLTIva895Nf7WjKu0oBYYuR3au1436cdFM3Frh4Tbt6M7Um2PTT5QZ+qsA==","signatures":[{"sig":"MEQCIBkhOKPJVH3g8bnyfWq39ECv/UYCNrC5AnMu8CEMUXkWAiA8DOuBELf9c7WUtIxQvjldjW3LFDvkk2YLbqZesGXwZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1667371},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","exports":{"import":{"types":"./index.d.mts","default":"./index.mjs"},"require":{"types":"./index.d.cts","default":"./index.cjs"}},"gitHead":"d2f015a93f68f336df64ae42ae8241aab3c047d9","_npmUser":{"name":"jacobzwang","email":"zwang.jacob@gmail.com"},"_npmVersion":"11.3.0","description":"Learn more at [docs.freestyle.sh](https://docs.freestyle.sh)","directories":{},"_nodeVersion":"24.0.1","_hasShrinkwrap":false,"optionalDependencies":{"glob":"^13.0.0","yargs":"^18.0.0","dotenv":"^17.3.1"},"_npmOperationalInternal":{"tmp":"tmp/freestyle_0.1.45_1775854816924_0.8400889151317443","host":"s3://npm-registry-packages-npm-production"}},"0.1.46":{"name":"freestyle","version":"0.1.46","keywords":["freestyle","sandboxes","ai-agents","agents","ai","code-interpreter"],"_id":"freestyle@0.1.46","maintainers":[{"name":"jacobzwang","email":"zwang.jacob@gmail.com"},{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"}],"bin":{"freestyle":"cli.mjs","freestyle-sandboxes":"cli.mjs"},"dist":{"shasum":"c8a74a0707f01ba263239b98bfe7bace935a6f26","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.1.46.tgz","fileCount":8,"integrity":"sha512-2Cw+M0zD3LzFR9HXx7Mu5n4q6POjpDKrCNOx+vQi0gio31Hs8BtxE8+gG27K6vQTQS6Pz7MEqINgrbA/g9IxMw==","signatures":[{"sig":"MEQCIAT0/b7Tdt+1vuE2daIMs6KEfFtRw6uU5PN7s8pwCHDIAiBh1/VSJ0TbOtXljHKUU0dRGmH1e9a8Xs9ozRTNwGH5gQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1677649},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","exports":{"import":{"types":"./index.d.mts","default":"./index.mjs"},"require":{"types":"./index.d.cts","default":"./index.cjs"}},"gitHead":"08c7047a9b3f179124751a87cd73b8aa20fe0473","_npmUser":{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"},"_npmVersion":"11.11.0","description":"Learn more at [docs.freestyle.sh](https://docs.freestyle.sh)","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"optionalDependencies":{"glob":"^13.0.0","yargs":"^18.0.0","dotenv":"^17.3.1"},"_npmOperationalInternal":{"tmp":"tmp/freestyle_0.1.46_1775960439845_0.14092340328839326","host":"s3://npm-registry-packages-npm-production"}},"0.1.47":{"name":"freestyle","version":"0.1.47","keywords":["freestyle","sandboxes","ai-agents","agents","ai","code-interpreter"],"_id":"freestyle@0.1.47","maintainers":[{"name":"jacobzwang","email":"zwang.jacob@gmail.com"},{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"}],"bin":{"freestyle":"cli.mjs","freestyle-sandboxes":"cli.mjs"},"dist":{"shasum":"e0a3ec07248146ba82cd7d70e31867fce5960a70","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.1.47.tgz","fileCount":8,"integrity":"sha512-xpdFTsN9ZMbp8IsGM+v6c6LskGVs/5oRBAEVTyz344rxf12ozEfUqsqWDykaum2XT8B3FeG95rNwcxrW6uJSYA==","signatures":[{"sig":"MEQCIF3WSu+2uQrk/MfmxeYGlh9m0TvZmjhB7UvpMQfeeX0zAiBYgI88E6HzHpiCKQtGAmmJbUrD6KvdDPHe75NdH7YBmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1683555},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","exports":{"import":{"types":"./index.d.mts","default":"./index.mjs"},"require":{"types":"./index.d.cts","default":"./index.cjs"}},"gitHead":"920da6bee107b9c37a2aadc546ea2e41c380f61a","_npmUser":{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"},"_npmVersion":"11.12.1","description":"Learn more at [docs.freestyle.sh](https://docs.freestyle.sh)","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"optionalDependencies":{"glob":"^13.0.0","yargs":"^18.0.0","dotenv":"^17.3.1"},"_npmOperationalInternal":{"tmp":"tmp/freestyle_0.1.47_1776379478884_0.6105302023272794","host":"s3://npm-registry-packages-npm-production"}},"0.1.48":{"name":"freestyle","version":"0.1.48","keywords":["freestyle","sandboxes","ai-agents","agents","ai","code-interpreter"],"_id":"freestyle@0.1.48","maintainers":[{"name":"jacobzwang","email":"zwang.jacob@gmail.com"},{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"}],"bin":{"freestyle":"cli.mjs","freestyle-sandboxes":"cli.mjs"},"dist":{"shasum":"786415d5891b6ade6874c0833092960193a883c7","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.1.48.tgz","fileCount":7,"integrity":"sha512-zhtz4wEHH9kcR+p7vLgkQTRiszHoN313lKX9bZWCUHw/yRsSlvk+ZSIptfJKxESZWkiBa0bCHYY3aFCyr1HK+w==","signatures":[{"sig":"MEYCIQC5dF80uYyOvCBtfyCjpeJE7jUW8MjQ1o4gS0i7FaMwhAIhAJ9Jij7Rvu1suXj54iCmdNDCh6WzXnSzyHraeECYPbQu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1823870},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","exports":{"import":{"types":"./index.d.mts","default":"./index.mjs"},"require":{"types":"./index.d.cts","default":"./index.cjs"}},"gitHead":"00470783bdea4135579d90cdb7d32923ce0b359f","_npmUser":{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"},"_npmVersion":"11.11.1","description":"Learn more at [docs.freestyle.sh](https://docs.freestyle.sh)","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"optionalDependencies":{"glob":"^13.0.0","yargs":"^18.0.0","dotenv":"^17.3.1"},"_npmOperationalInternal":{"tmp":"tmp/freestyle_0.1.48_1776884442665_0.11556491846514572","host":"s3://npm-registry-packages-npm-production"}},"0.1.49":{"name":"freestyle","version":"0.1.49","type":"module","exports":{"require":{"types":"./index.d.cts","default":"./index.cjs"},"import":{"types":"./index.d.mts","default":"./index.mjs"}},"main":"./index.cjs","module":"./index.mjs","types":"./index.d.cts","keywords":["freestyle","sandboxes","ai-agents","agents","ai","code-interpreter"],"optionalDependencies":{"glob":"^13.0.0","yargs":"^18.0.0","dotenv":"^17.3.1"},"bin":{"freestyle":"cli.mjs","freestyle-sandboxes":"cli.mjs"},"_id":"freestyle@0.1.49","gitHead":"3ddc893321186314c1771eefa8c1c85bcbf30cf8","description":"Learn more at [docs.freestyle.sh](https://docs.freestyle.sh)","_nodeVersion":"24.0.1","_npmVersion":"11.3.0","dist":{"integrity":"sha512-lRjWNhk0nPjR3rto4D7cA03uvKMCo1U3V5XJhY6RKSyIbplWRlDjmSA45rA060svNWBU6HSHNVnR4cYHpSLeMg==","shasum":"5aa7c242ec788c3672892da93f9f3be65c135605","tarball":"https://registry.npmjs.org/freestyle/-/freestyle-0.1.49.tgz","fileCount":7,"unpackedSize":1823912,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDi7MYzQLqKy4JXgSmGZNILek22kS+9R7AR+wN0UelHkwIhALlwDoN6o/SuPYKZGOFhO10s0VYiG85ZVOnsR6IqiExU"}]},"_npmUser":{"name":"jacobzwang","email":"zwang.jacob@gmail.com"},"directories":{},"maintainers":[{"name":"jacobzwang","email":"zwang.jacob@gmail.com"},{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/freestyle_0.1.49_1776990784611_0.8015497399731659"},"_hasShrinkwrap":false}},"time":{"created":"2011-05-02T02:25:20.368Z","modified":"2026-04-24T00:33:04.942Z","0.0.1":"2011-05-02T02:25:21.403Z","0.0.2":"2011-05-02T19:18:25.599Z","0.0.3":"2011-05-04T21:39:49.947Z","0.0.4":"2011-05-05T08:12:55.010Z","0.1.44":"2026-04-10T18:40:49.460Z","0.1.45":"2026-04-10T21:00:17.116Z","0.1.46":"2026-04-12T02:20:40.006Z","0.1.47":"2026-04-16T22:44:39.054Z","0.1.48":"2026-04-22T19:00:42.877Z","0.1.49":"2026-04-24T00:33:04.836Z"},"keywords":["freestyle","sandboxes","ai-agents","agents","ai","code-interpreter"],"description":"Learn more at [docs.freestyle.sh](https://docs.freestyle.sh)","maintainers":[{"name":"jacobzwang","email":"zwang.jacob@gmail.com"},{"name":"theswerd","email":"swerdlowbenjamin@gmail.com"}],"readme":"# Freestyle SDK\n\nLearn more at [docs.freestyle.sh](https://docs.freestyle.sh)\n\n## Installation\n\n```bash\nnpm install freestyle-sandboxes\n```\n\n## CLI Usage\n\nThe Freestyle SDK includes a command-line interface for managing your Freestyle resources.\n\n### Setup\n\nSet the environment variable with your API key:\n\n```bash\nexport FREESTYLE_API_KEY=\"your-api-key\"\n```\n\nOr create a `.env` file in your project directory:\n\n```\nFREESTYLE_API_KEY=your-api-key\n```\n\n### Commands\n\n#### Virtual Machines\n\n```bash\n# Create a new VM\nfreestyle vm create --name my-vm\n\n# Create a VM from a snapshot (for debugging)\nfreestyle vm create --snapshot <snapshot-id>\n\n# Create a VM with domain\nfreestyle vm create --domain myapp.example.com --port 3000\n\n# Create VM and SSH into it (auto-deletes on exit)\nfreestyle vm create --ssh\n\n# Create VM from snapshot and SSH into it\nfreestyle vm create --snapshot <snapshot-id> --ssh\n\n# List all VMs\nfreestyle vm list\n\n# SSH into a VM\nfreestyle vm ssh <vmId>\n\n# SSH into a VM and delete it on exit\nfreestyle vm ssh <vmId> --delete-on-exit\n\n# Execute a command on a VM\nfreestyle vm exec <vmId> \"ls -la\"\n\n# Delete a VM\nfreestyle vm delete <vmId>\n```\n\n#### Serverless Deployments\n\n```bash\n# Deploy from inline code\nfreestyle deploy --code \"export default () => 'Hello World'\"\n\n# Deploy from a file\nfreestyle deploy --file ./my-function.js\n\n# Deploy from a Git repository\nfreestyle deploy --repo <repoId>\n\n# Add environment variables\nfreestyle deploy --code \"...\" --env API_KEY=secret --env DEBUG=true\n```\n\n#### Serverless Runs\n\n```bash\n# Execute a one-off function from inline code\nfreestyle run --code \"console.log('Hello!')\"\n\n# Execute from a file\nfreestyle run --file ./script.js\n```\n\n#### Utilities\n\n```bash\n# Get help for any command\nfreestyle --help\nfreestyle vm --help\n```\n\n## SDK Usage\n\n```ts\nimport { freestyle } from \"freestyle-sandboxes\";\n\n// Create and store code with git.\nconst { repoId } = await freestyle.git.repos.create({\n  source: {\n    url: \"https://github.com/freestyle-sh/freestyle-base-nextjs-shadcn\",\n  },\n});\n\n// Create a new branch from the default branch\nconst repo = freestyle.git.repos.ref({ repoId });\nconst { name, sha } = await repo.branches.create({\n  name: \"feature/something\",\n});\n\n// Create commits with files (text and binary)\nconst { commit } = await repo.commits.create({\n  message: \"Add new feature\",\n  branch: \"feature/something\",\n  files: [\n    { path: \"README.md\", content: \"# My Project\" },\n    { path: \"logo.png\", content: base64Image, encoding: \"base64\" }\n  ],\n  author: { name: \"John Doe\", email: \"john@example.com\" }\n});\n\n// Develop code with VMs.\nconst { vm } = await freestyle.vms.create({\n  gitRepos: [{ repo: repoId, path: \"/repo\" }],\n});\n\nawait vm.fs.writeTextFile(\"/repo/api/hello.js\", \"...\");\n\n// Deploy your code to the internet.\nconst { deploymentId } = await freestyle.serverless.deployments.create({\n  repo: repoId,\n});\n\n// Verify a custom domain and point it at your deployment.\nconst { record } = await freestyle.domains.verifications.create({\n  domain: \"example.com\",\n});\n\nconsole.log(record);\n\nawait freestyle.domains.verifications.complete({\n  domain: \"example.com\",\n});\n\nawait freestyle.domains.mappings.create({\n  domain: \"example.com\",\n  deploymentId: deploymentId,\n});\n\n// test your app with lightweight JS workers\nfor (let i = 0; i < 10; i++) {\n  freestyle.serverless.runs.create({\n    code: `export default () => {\n        fetch(\"https://example.com/api/hello\")\n          .then(res => res.json()) \n        })\n        `,\n  });\n}\n\n// Restrict outbound requests and attach headers for matching domains.\nawait freestyle.serverless.runs.create({\n  code: `export default async () => {\n    const res = await fetch(\"https://api.freestyle.sh/some-path\");\n    return await res.text();\n  }`,\n  egress: {\n    allow: {\n      domains: {\n        \"api.freestyle.sh\": [\n          {\n            transform: [\n              {\n                headers: {\n                  \"X-Freestyle-Admin-Key\": \"abc\",\n                  \"X-Freestyle-User-Id\": \"123\",\n                },\n              },\n            ],\n          },\n        ],\n        \"*\": [],\n      },\n    },\n  },\n});\n\n// The same egress config shape is supported for deployments.\nawait freestyle.serverless.deployments.create({\n  code: \"export default () => new Response('ok')\",\n  egress: {\n    allow: {\n      domains: {\n        \"api.freestyle.sh\": [\n          {\n            transform: [\n              {\n                headers: {\n                  \"X-Freestyle-Admin-Key\": \"abc\",\n                  \"X-Freestyle-User-Id\": \"123\",\n                },\n              },\n            ],\n          },\n        ],\n        \"*\": [],\n      },\n    },\n  },\n});\n```\n","readmeFilename":"README.md"}