Open-source CLI for Vercel Eve
Deploy your Eve agent
to your own Cloudflare.
NoRewriteneededTake the Eve agent you already built and run it on your own Cloudflare account with one command. It updates in place, sleeps when idle, and wakes for messages and schedules.
npx @moinulmoin/eden deployRecorded from a real deploy
One command. Live on your Cloudflare.
› eden deploy --env-file ~/.config/my-eve-agent.env eden deploy — my-eve-agent-9e510242 (preview) ... validating environment file ... packaging project — snapshot, frozen install, eve build ... checking Cloudflare access and exact target ... building linux/amd64 runtime image, booting eve, checking health ... pushing container image to the Cloudflare registry ... registering runtime variables ... publishing Worker and Container application ... verifying health at https://my-eve-agent-9e510242.moinulislammoin2019.workers.dev ✓ deployed my-eve-agent-9e510242 (preview) · eve 0.81.0 https://my-eve-agent-9e510242.moinulislammoin2019.workers.dev done in 215s ›
› export URL=https://my-eve-agent-9e510242.moinulislammoin2019.workers.dev › curl -s $URL/eve/v1/health {"ok":true,"status":"ready","workflowId":"workflow//eve//workflowEntry"} › eve remote invoke --url $URL -H "Authorization: Bearer $TOKEN" "In one short sentence: where are you running right now?" | jq -r .outcome.message I'm running in a shared workspace environment as an AI agent powered by eve, Vercel's agent framework. ›
› printf '\n# Style\n\nEnd every reply with: (served from your Cloudflare)\n' >> agent/instructions.md › eden deploy --env-file ~/.config/my-eve-agent.env eden deploy — my-eve-agent-9e510242 (preview) ... packaging project — snapshot, frozen install, eve build ... update: Durable Object data is preserved; the running Container restarts on its next request to serve the new image ... pushing container image to the Cloudflare registry ... publishing Worker and Container application ✓ updated my-eve-agent-9e510242 (preview) · eve 0.81.0 https://my-eve-agent-9e510242.moinulislammoin2019.workers.dev done in 194s › eve remote invoke --url $URL -H "Authorization: Bearer $TOKEN" "In one short sentence: where are you running right now?" | jq -r .outcome.message I'm running as an AI agent powered by eve, served from your Cloudflare. ›
› eden destroy --name my-eve-agent-9e510242 eden destroy — my-eve-agent-9e510242 (preview) ... verifying the immutable ownership record ... reading the exact remote inventory ... deleting Worker my-eve-agent-9e510242 ... deleting Container application my-eve-agent-9e510242-container ... deleting 1 registry repository ... verifying the exact target is absent ✓ destroyed my-eve-agent-9e510242 (preview) in 31s retained: local deployment records under .eden/eve-deploy › curl -s -o /dev/null -w '%{http_code}' $URL/eve/v1/health; echo ' <- gone' 404 <- gone ›
Your real Eve server,
in a Cloudflare Container.
The same Eve server you run locally, built on your machine and served from your account. Nothing gets translated.
- 01 · your machine
Eve project
Your agent, exactly as you wrote it.
- 02 · local docker
Eden builder
Eve's own build, packed into a production image.
- Your Cloudflare account
- 03 · edge
Worker
Your public workers.dev URL, at the edge.
- 04 · 4 GiB
Container
Your Eve server. Sleeps when idle, wakes on the next request.
GET /eve/v1/health → 200Traffic switches only after the new version answers healthy.
Keep shipping.
It keeps running.
Update in place
Run
eden deployagain. Same URL, new code, every conversation's files carried over.Sleeps when idle
After an hour without traffic it sleeps and saves its disk. The next message wakes it in seconds.
Schedules on time
Cron schedules wake your agent on time, even while it sleeps.
Your stack, untouched.
The same models, databases, channels and auth you already use. Eden hosts the app and leaves the rest as you set it up.
Your code, unchanged- These stay in Eve
- Model providers and credentialsstays in Eve
- Databases, queues and external APIsstays in Eve
- Channels, schedules and authstays in Eve
- Workflow World and skillsstays in Eve
- Values from
--env-filenever in args, image layers or logs
Three commands to ship.
eden preflightChecks your project and Cloudflare account without changing anything. Optional.
eden deployShips your agent and checks it's healthy. Run it again to update in place.
eden destroy --nameRemoves that deployment and everything it created. Nothing else.
What you need, and what to expect.
You'll need
6 things- macOS or Linux with Node 24.17 or newer
- A Cloudflare account on Workers Paid, which Containers require
- Wrangler signed innpx wrangler@4.147.0 login
- Docker or OrbStack that builds linux/amd64
- An Eve 0.91 or later project with its root lockfile: npm, or pnpm with an exact pin
package-lock.json - just-bash as a production dependencynpm install just-bash
- JustBash selected in agent/sandbox.ts
JustBashSandbox.environment()
Good to know
in 0.12.0- Updates reset workflow state by defaultFiles survive sleep and updates; the Cloudflare World keeps sessions across Eve upgrades
- Only 5-field cron schedules fire while it sleepsA Cloudflare Cron wakes the Container; others run while it's awake
- The sandbox is just-bash, not a Linux VMFiles, grep, jq and curl work; python, git and npm don't
- One Container instance (1/2 vCPU, 4 GiB)Plus older Eve versions until their sessions end; no horizontal scaling or custom domains yet
- npm and pnpm projectsDependency install scripts don't run on npm; Bun lockfiles and native Windows aren't supported yet
Your Eve agent.
Your Cloudflare.
npm install --global @moinulmoin/eden