{"id":51140670,"url":"https://github.com/ariana-dot-dev/eve-box","last_synced_at":"2026-06-25T22:30:29.278Z","repository":{"id":365582485,"uuid":"1272765910","full_name":"ariana-dot-dev/eve-box","owner":"ariana-dot-dev","description":"Eve adaptor for box","archived":false,"fork":false,"pushed_at":"2026-06-18T02:07:49.000Z","size":51,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T02:17:49.755Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ariana-dot-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-17T23:15:41.000Z","updated_at":"2026-06-18T02:07:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ariana-dot-dev/eve-box","commit_stats":null,"previous_names":["ariana-dot-dev/eve-box"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ariana-dot-dev/eve-box","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ariana-dot-dev%2Feve-box","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ariana-dot-dev%2Feve-box/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ariana-dot-dev%2Feve-box/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ariana-dot-dev%2Feve-box/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ariana-dot-dev","download_url":"https://codeload.github.com/ariana-dot-dev/eve-box/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ariana-dot-dev%2Feve-box/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34795436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-25T02:00:05.521Z","response_time":101,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-25T22:30:28.359Z","updated_at":"2026-06-25T22:30:29.265Z","avatar_url":"https://github.com/ariana-dot-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @asciidev/eve-box\n\nEve sandbox backend for [Ascii Box](https://box.ascii.dev). Run your Eve sandboxes on Box — the backend maps Eve's filesystem and process operations onto the Box API.\n\nNew to Eve or Box? The **[zero-to-one guide](https://docs.ascii.dev/box/integrations/eve)** walks through the whole setup from scratch.\n\n## Install\n\n```bash\nnpm install @asciidev/eve-box eve\n```\n\n## Usage\n\n```ts\nimport { defineSandbox } from \"eve/sandbox\";\nimport { asciiBox } from \"@asciidev/eve-box\";\n\nexport default defineSandbox({\n  backend: asciiBox({ apiKey: process.env.BOX_API_KEY! }),\n});\n```\n\n### Options\n\n`asciiBox(options)` accepts:\n\n- `apiKey` — Box API key. Defaults to `process.env.BOX_API_KEY`.\n- `baseUrl` — Box API base URL. Defaults to the public Box API.\n- `name` — name (or `(input) =\u003e string`) for boxes Eve creates.\n- `ttlSeconds` — auto-archive TTL for boxes. Defaults to `3600`.\n- `noEnv` — withhold your Box account's secrets and credentials from every box (see below). Defaults to `false`.\n- `env` — per-box environment variables for every box Eve creates (see below).\n- `pollMs` — poll cadence for `spawn()` streams and `wait()`.\n- `commandTimeoutMs` — timeout for blocking `run()` commands.\n- `networkPolicy` — see below.\n\n### Running agents for other people\n\nBy default a box inherits **your** Box account (your secrets, secret files, GitHub-credentialed repos, and SSH identity) — fine for your own agents, unsafe for ones other people drive. For any multi-tenant or public agent, set `noEnv: true` so boxes get none of that and are confined to themselves.\n\nA no-env box starts empty, so you give it exactly what it needs — secrets through `env`, files and setup through Eve's `onSession` hook:\n\n```ts\nimport { defineSandbox } from \"eve/sandbox\";\nimport { asciiBox } from \"@asciidev/eve-box\";\n\nexport default defineSandbox({\n  backend: asciiBox({\n    apiKey: process.env.BOX_API_KEY!,\n    noEnv: true,\n    // Scoped secrets — the only env this box gets:\n    env: { MY_APP_TOKEN: process.env.MY_APP_TOKEN! },\n  }),\n  async onSession({ use }) {\n    const sandbox = await use();\n    // Seed files and run setup with the session API. These wrap Box's\n    // file and command APIs, so you don't need `box scp` or `box ssh`.\n    await sandbox.writeTextFile({ path: \"config/app.json\", content: JSON.stringify({ mode: \"prod\" }) });\n    await sandbox.run({ command: \"git clone https://github.com/acme/public-repo . \u0026\u0026 npm ci\" });\n  },\n});\n```\n\n`env` keys merge over account variables (per-box wins; ≤100 vars, 64KB total; reserved Box-internal names rejected). `writeFile`/`readFile` move bytes in and out and `run`/`spawn` execute commands — the Eve-native equivalents of `box scp` and `box ssh \u003cid\u003e \u003ccmd\u003e`. A no-env box can't reach your private repos, so clone public ones or have the user authenticate inside the box.\n\n### Network policies\n\nBox does not yet support Eve's fine-grained network policies. The backend accepts `\"allow-all\"` and throws `EveBoxUnsupportedError` for stricter policies, so you don't get a false sense of isolation. Use Eve's Vercel or microsandbox backends if you need firewall-backed policies.\n\n## Documentation\n\n- **[Eve on Box guide](https://docs.ascii.dev/box/integrations/eve)** — a self-contained, zero-to-one walkthrough.\n- [`docs/eve-box-backend.md`](./docs/eve-box-backend.md) — full capability mapping and current limitations.\n\n## Development\n\n```bash\nnpm install\ncp .env.example .env   # add your BOX_API_KEY\nnpm test\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fariana-dot-dev%2Feve-box","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fariana-dot-dev%2Feve-box","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fariana-dot-dev%2Feve-box/lists"}