Skip to content
AbhiVardePublic

About

Agent Builder for eve, tested against a live eve runtime, then deployed as a live app to your own GitHub and Vercel.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

▲ tryeve

Agent Builder for eve.

live demo · built with ▲ vercel

what it does

you type a description. tryeve generates real eve files, boots them in an isolated sandbox against the actual eve runtime, and only shows you the result once it has confirmed the agent responds. if it passes, you can chat with it live, download it as a working project, publish it to the gallery, deploy it to your own GitHub and then Vercel, or share a link that lets anyone else talk to it too.

reload the page anytime. your agent, your chat, your files, all still there.

features

  • describe an agent in plain english
  • generates real, working eve files
  • generation requests are screened by botid before they reach the ai gateway, bots never touch a sandbox
  • a jev preflight score checks if a prompt is buildable before spending a sandbox, low scores get a clarification instead
  • the model used for generation and a kill-switch can be flipped live from the dashboard, no redeploy
  • every agent is tested against a live eve runtime before you see it
  • describe or message an agent by voice in chrome and edge
  • watch the build progress live, real steps as they happen
  • generation and testing run as one durable step, survives crashes
  • if a build fails, the reason is shown and you can retry with one click
  • inspect every file with syntax highlighting
  • export the full agent as a zip
  • deploy any generated agent straight to your own GitHub, no OAuth app to set up yourself
  • once deployed to github, deploy straight to vercel too
  • publish an agent to a public gallery, with an auto-generated preview card
  • share a live link to any agent you build, anyone with the link can chat with it directly
  • connect to your agent right after it's built, no install needed
  • chat with it live, with markdown formatted replies
  • your chat transcript is saved, reopening an agent from history or a share link restores the real conversation, not an empty chat
  • reload the page anytime, your agent and chat pick up right where you left off
  • idle or closed sandboxes shut down automatically, nothing left running
  • switching tabs never disconnects your agent, only closing the tab or explicit disconnect does
  • warned before disconnect, never cut off without notice
  • only you can overwrite or stop your own agent's session, anyone with your share link can still chat with it, they just can't touch it
  • every agent you've built is saved to your own private history, delete any entry or clear it all
  • concurrent sandboxes are capped per visitor, so usage stays fair for everyone
  • dark, minimal interface

how it works

  1. you describe an agent
  2. a botid check runs first, bot traffic is rejected before it costs anything
  3. a jev preflight score checks if the prompt is buildable, a low score returns a clarification instead of spending a sandbox
  4. the ai gateway routes the request to a model (switchable live via flags sdk), which writes real eve files
  5. a vercel sandbox installs eve for real and boots it, no stubs
  6. tryeve sends a live test message and confirms the agent actually responds, while real progress events stream to the page step by step
  7. if it passes, the sandbox is kept alive rather than thrown away, so connecting afterward is instant
  8. the agent, its live session, and its chat transcript are stored in blob, so a share link or a page reload brings it all back, including past messages
  9. it's also added to your own history, tracked by a private cookie, not visible to anyone else
  10. optionally, deploy the generated files straight to your own GitHub via Vercel Connect, no long-lived secret ever stored
  11. once a github deploy exists, optionally deploy straight to vercel too
  12. optionally, publish the agent to a public gallery, with an auto-generated preview card

steps 4 through 6 run as one durable workflow step, so a crash mid generation doesn't lose your request. a scheduled cron job separately sweeps any sandbox sessions left behind by a closed tab or crashed browser.

for the full technical breakdown, including real bugs hit building this, see HOW_IT_WORKS.md.

architecture

flowchart TD
  Prompt[user prompt] -->|botid check| Bot{bot traffic?}
  Bot -->|blocked| Reject[403]
  Bot -->|passed| Preflight[jev preflight via ai gateway]
  Preflight -->|low score| Clarify[clarification, no sandbox spent]
  Preflight -->|buildable| Gen[ai gateway routes to model, writes eve files]
  Gen --> Sandbox[vercel sandbox]
  Sandbox --> Install[install eve]
  Install --> Boot[boot eve dev]
  Boot --> Test[send live test message]
  Test -->|fail| Retry[reason shown, retry]
  Test -->|pass| Store[(blob: agent, session, transcript, history)]
  Store --> Chat[chat, reuses live sandbox]
  Store --> Download[download as zip]
  Store --> Gallery[publish to gallery]
  Store --> GithubDeploy[deploy to github, connect + classic oauth]
  GithubDeploy --> VercelDeploy[deploy to vercel, vercel oauth]
  Cron[cron cleanup] -.-> Sandbox
Loading

for the full system breakdown, including identity boundaries and network policy, see ARCHITECTURE.md.

built with ▲

product role
next.js the app itself
ai gateway routes the generation request to a model
ai sdk streams the model's response
sandbox tests every agent against a real eve runtime, then runs it live so you can talk to it
workflow sdk runs generate and test as one durable step
blob stores each agent, its live session, chat transcript, and per-visitor history
cron sweeps stale sandbox sessions on a schedule
firewall rate limits generation, connect, and chat requests
connect issues short-lived, user-scoped GitHub tokens to deploy generated agents, no stored secrets
jev scores whether a prompt is buildable before generation runs
next/og generates gallery preview images on demand from the agent's prompt
vercel marketplace integration OAuth for deploying a generated agent to your own Vercel account
botid blocks bot traffic on generation, invisible to real users
flags sdk flips the model or pauses generation live, no redeploy
ai elements chat interface, task progress ui, loading states
streamdown renders code and markdown cleanly
shadcn/ui every ui component
vercel hosts and deploys the app
analytics tracks real usage without slowing anything down

icons animated by lucide-animated.

getting started

clone the repo and install dependencies:

git clone https://github.com/AbhiVarde/tryeve.git
cd tryeve
npm install

link the project to vercel and pull environment variables:

vercel link
vercel env pull

run the dev server:

npm run dev

open localhost:3000.

environment variables

tryeve needs at least one model credential and a blob token. set these in your vercel project or in .env.local:

BLOB_READ_WRITE_TOKEN=

# at least one of the following
AI_GATEWAY_API_KEY=
VERCEL_OIDC_TOKEN=
ANTHROPIC_API_KEY=
OPENAI_API_KEY=

# optional, only needed for GitHub and Vercel deploy
GITHUB_CONNECTOR_UID=github/tryeve
GITHUB_OAUTH_CLIENT_ID=
GITHUB_OAUTH_CLIENT_SECRET=

VERCEL_OIDC_TOKEN is generated automatically when the project is linked and deployed on vercel. for local development, vercel env pull handles this for you.

GITHUB_CONNECTOR_UID defaults to github/tryeve, used to push generated files via a Vercel Connect GitHub App connector, see Vercel Connect docs for setup.

GITHUB_OAUTH_CLIENT_ID and GITHUB_OAUTH_CLIENT_SECRET come from a separate, plain GitHub OAuth App, used only to create the repository itself. GitHub Apps cannot create repositories on personal accounts, so repo creation goes through a direct classic OAuth flow instead of Connect.

project structure

app/
  api/
    build-agent/      generates and tests an agent as one durable workflow step
    test-agent/       boots the agent in a sandbox and confirms it responds
    run-agent/        boots or reuses a live sandbox for chat, owner-restricted
    stop-agent/       stops a sandbox on disconnect, idle, or tab close, owner-restricted
    agent-chat/       streams chat responses from the live sandbox, rate limited
    agents/           returns the current visitor's private history
    save-transcript/  persists chat messages so past conversations survive reloads
    github/deploy/          creates the repo (direct OAuth) and pushes files (via Connect)
    github/oauth/start/     redirects to GitHub's OAuth consent screen
    github/oauth/callback/  exchanges the OAuth code for a token, stores it
    cron/cleanup/     scheduled sweep for stale sandbox sessions
  agent/[id]/         shared agent view, includes real chat, not just file viewing
  page.tsx            the main app
components/
  agent-chat-panel.tsx   chat state, streaming ui, transcript sync
lib/
  sandbox-quota.ts       per-visitor concurrent sandbox cap
  github-connect.ts       Vercel Connect token handling for GitHub deploy

security

  • generation requests are screened by botid before reaching a sandbox, keeping bot traffic and cost predictable
  • generated agents are tagged with their creator's identity at generation time
  • anyone with a share link can view a generated agent's files and chat with it live
  • only the original creator can overwrite or stop that agent's session, share-link visitors cannot
  • GitHub and Vercel deploys only ever touch the deploying visitor's own accounts, never the original agent owner's data
  • only the creator can publish or unpublish an agent to the gallery
  • sandbox outbound access is allow-listed to registry.npmjs.org and the active model-provider host
  • connection credentials are never stored, only referenced by environment variable name
  • chat, generation, and connect requests are all rate limited per visitor

limits

sandboxes run on the hobby plan by default. this means:

  • 5 free sandbox cpu hours per month
  • sandbox sessions can run up to 45 minutes before an automatic timeout
  • concurrent sandboxes are capped per visitor to keep usage fair
  • generation, connect, and chat requests are all rate limited per ip
  • sandboxes are created with persistent: false, so stopping one never writes to Snapshot Storage, only compute hours apply

these are generous enough for regular use. earlier builds of this project did not set persistent: false, which caused Snapshot Storage (a separate Hobby allowance) to fill up from routine testing alone. that's fixed as of the current version, heavy usage now only affects the compute hour allowance, not storage.

deploy your own

deploy with vercel

license

mit

About

Agent Builder for eve, tested against a live eve runtime, then deployed as a live app to your own GitHub and Vercel.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages