
vercel-labs / open-agents
★ 5,700A skill package that teaches your agent 13 capabilities — every one documented and browsable below, no GitHub required · by vercel.
Each skill below is one capability this package teaches your agent. Install the whole package, or open a skill to install just that one.
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web…
11 files — installable on its own
Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText,…
6 files — installable on its own
Validates animation durations, enforces typography scale, checks component accessibility, and prevents layout anti-patterns in Tailwind CSS projects. Use when…
1 file — installable on its own
Unified TypeScript SDK for building chat bots across Slack, Teams, Google Chat, Discord, Telegram, GitHub, Linear, and WhatsApp. Write bot logic once, deploy everywhere.
1 file — installable on its own
Reviews code changes and provides actionable feedback. Use when the user asks to review a PR, diff, commit, or code changes. Triggers on "/review", "review…
1 file — installable on its own
Guides a user through collecting the credentials needed to deploy their own copy of Open Harness, deploying this repo on Vercel, and completing first-run…
1 file — installable on its own
This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
1 file — installable on its own
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts,…
1 file — installable on its own
Holistic, system-aware planning before implementing non-trivial tasks. Use when the task involves new features, architectural decisions, multi-file changes,…
1 file — installable on its own
Removes Open Harness hosted demo restrictions from a fork. Use when a maintainer wants to remove managed-template trial caps, hosted deployment gating, or…
1 file — installable on its own
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js…
50 files — installable on its own
web-animation-design — an installable skill for AI agents, published by vercel-labs/open-agents.
2 files — installable on its own
Creates durable, resumable workflows using Vercel's Workflow DevKit. Use when building workflows that need to survive restarts, pause for external events,…
1 file — installable on its own
Open Agents
Open Agents is an open-source reference app for building and running background coding agents on Vercel. It includes the web UI, the agent runtime, sandbox orchestration, and the GitHub integration needed to go from prompt to code changes without keeping your laptop involved.
The repo is meant to be forked and adapted, not treated as a black box.
What it is
Open Agents is a three-layer system:
Web -> Agent workflow -> Sandbox VM- The web app handles auth, sessions, chat, and streaming UI.
- The agent runs as a durable workflow on Vercel.
- The sandbox is the execution environment: filesystem, shell, git, dev servers, and preview ports.
The key architectural decision: the agent is not the sandbox
The agent does not run inside the VM. It runs outside the sandbox and interacts with it through tools like file reads, edits, search, and shell commands.
That separation is the main point of the project:
- agent execution is not tied to a single request lifecycle
- sandbox lifecycle can hibernate and resume independently
- model/provider choices and sandbox implementation can evolve separately
- the VM stays a plain execution environment instead of becoming the control plane
Current capabilities
- chat-driven coding agent with file, search, shell, task, skill, and web tools
- durable multi-step execution with Workflow SDK-backed runs, streaming, and cancellation
- isolated Vercel sandboxes with snapshot-based resume
- repo cloning and branch work inside the sandbox
- optional auto-commit, push, and PR creation after a successful run
- session sharing via read-only links
- optional voice input via ElevenLabs transcription
Runtime notes
A few details that matter for understanding the current implementation:
- Chat requests start a workflow run instead of executing the agent inline.
- Each agent turn can continue across many persisted workflow steps.
- Active runs can be resumed by reconnecting to the stream for the existing workflow.
- Sandboxes expose ports
3000,5173,4321, and8000, can optionally use a configured base snapshot, and hibernate after inactivity. - Auto-commit and auto-PR are supported, but they are preference-driven features, not always-on behavior.
Environment variables
See apps/web/.env.example for the full list. Summary:
Minimum runtime
POSTGRES_URL=
BETTER_AUTH_SECRET=Required for sign-in (Vercel OAuth)
NEXT_PUBLIC_VERCEL_APP_CLIENT_ID=
VERCEL_APP_CLIENT_SECRET=Required for GitHub repo access, pushes, and PRs
NEXT_PUBLIC_GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_APP_ID=
GITHUB_APP_PRIVATE_KEY=
NEXT_PUBLIC_GITHUB_APP_SLUG=
GITHUB_WEBHOOK_SECRET=Optional
REDIS_URL=
KV_URL=
OPEN_AGENTS_RESOURCE_PROFILE=
VERCEL_PROJECT_PRODUCTION_URL=
NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL=
VERCEL_SANDBOX_BASE_SNAPSHOT_ID=
ELEVENLABS_API_KEY=REDIS_URL/KV_URL: optional skills metadata cache (falls back to in-memory when not configured).OPEN_AGENTS_RESOURCE_PROFILE: optional deployment resource profile. Set tohobbyto use Hobby-compatible defaults for chat and sandbox resources; leave unset for standard behavior.VERCEL_PROJECT_PRODUCTION_URL/NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL: canonical production URL for metadata and some callback behavior.VERCEL_SANDBOX_BASE_SNAPSHOT_ID: optional base snapshot for fresh sandboxes. If unset, sandboxes start from Vercel's standard Sandbox runtime. Use a snapshot created in/accessible to your own Vercel scope.ELEVENLABS_API_KEY: voice transcription.
Deploy your own copy on Vercel
-
Fork this repo.
-
Import the repo into Vercel. Neon Postgres is auto-provisioned if you use the deploy button above.
-
Generate a secret for session signing:
Copy & paste — that's itopenssl rand -base64 32 # BETTER_AUTH_SECRET -
Add env vars in Vercel project settings:
Copy & paste — that's itPOSTGRES_URL= BETTER_AUTH_SECRET= -
Deploy once to get a stable production URL.
-
Create a Vercel OAuth app with callback URL:
Copy & paste — that's ithttps://YOUR_DOMAIN/api/auth/callback/vercel -
Add these env vars and redeploy:
Copy & paste — that's itNEXT_PUBLIC_VERCEL_APP_CLIENT_ID= VERCEL_APP_CLIENT_SECRET= -
If you want the full GitHub-enabled coding-agent flow, create a GitHub App using:
- Homepage URL:
https://YOUR_DOMAIN - Callback URL:
https://YOUR_DOMAIN/api/auth/callback/github - Setup URL:
https://YOUR_DOMAIN/api/github/app/callback
In the GitHub App settings:
- use the GitHub App's Client ID and Client Secret for
NEXT_PUBLIC_GITHUB_CLIENT_IDandGITHUB_CLIENT_SECRET - make the app public if you want org installs to work cleanly
- Homepage URL:
-
Add the GitHub App env vars and redeploy.
-
Optionally add Redis/KV,
OPEN_AGENTS_RESOURCE_PROFILE=hobbyfor Hobby-compatible resource defaults, the canonical production URL vars, and your ownVERCEL_SANDBOX_BASE_SNAPSHOT_IDif you want fresh sandboxes to start from a preconfigured image.
Local setup
-
Install dependencies:
Copy & paste — that's itcorepack enable pnpm install -
Create your local env file:
Copy & paste — that's itcp apps/web/.env.example apps/web/.env -
Fill in the required values in
apps/web/.env. -
Start the app:
Copy & paste — that's itpnpm web
If you already have a linked Vercel project, you can pull env vars locally with vc env pull.
OAuth and integration setup
Vercel OAuth
Authentication is handled by Better Auth with Vercel and GitHub as social providers. All auth routes are served from the /api/auth/[...all] catchall.
Create a Vercel OAuth app and use this callback:
https://YOUR_DOMAIN/api/auth/callback/vercelFor local development, use:
http://localhost:3000/api/auth/callback/vercelThen set:
NEXT_PUBLIC_VERCEL_APP_CLIENT_ID=...
VERCEL_APP_CLIENT_SECRET=...GitHub App
You do not need a separate GitHub OAuth app. Open Agents uses the GitHub App's OAuth credentials as a Better Auth social provider, plus the App's installation tokens for repo access.
Create a GitHub App for installation-based repo access and configure:
- Homepage URL:
https://YOUR_DOMAIN - Callback URL:
https://YOUR_DOMAIN/api/auth/callback/github - Setup URL:
https://YOUR_DOMAIN/api/github/app/callback - make the app public if you want org installs to work cleanly
For local development, use http://localhost:3000 as the homepage URL, http://localhost:3000/api/auth/callback/github as the callback URL, and http://localhost:3000/api/github/app/callback as the setup URL.
Then set:
NEXT_PUBLIC_GITHUB_CLIENT_ID=... # GitHub App Client ID
GITHUB_CLIENT_SECRET=... # GitHub App Client Secret
GITHUB_APP_ID=...
GITHUB_APP_PRIVATE_KEY=...
NEXT_PUBLIC_GITHUB_APP_SLUG=...
GITHUB_WEBHOOK_SECRET=...GITHUB_APP_PRIVATE_KEY can be stored as the PEM contents with escaped newlines or as a base64-encoded PEM.
Useful commands
pnpm web # run dev server
pnpm check # lint + format check
pnpm fix # lint + format fix
pnpm typecheck # typecheck all packages
pnpm run ci # full CI: check, typecheck, tests, migration check
pnpm sandbox:snapshot-base # refresh sandbox base snapshotRepo layout
apps/web Next.js app, workflows, auth, chat UI
packages/agent agent implementation, tools, subagents, skills
packages/sandbox sandbox abstraction and Vercel sandbox integration
packages/shared shared utilitiesInstall the whole package (13 skills):
npx skills add https://github.com/vercel-labs/open-agentsOr install a single skill:
npx skills add https://github.com/vercel-labs/open-agents --skill <name>Pick the skill name from the Skills tab — each entry there installs independently.