Features
Comprehensive overview of Obby’s capabilities, tools, and UI
Obby is a full‑stack coding agent that builds and runs apps inside an ephemeral, isolated Vercel Sandbox. It orchestrates models and tools through the Vercel AI SDK and Gateway, with a first‑class developer UI for previewing, file browsing, and logs.
At a Glance
- Multi‑provider model support (OpenAI, Anthropic, Google, Groq, OpenRouter, Vercel, Gateway, Bedrock)
- Bring‑Your‑Own‑Key (BYOK) with per‑provider configuration
- Single‑session Vercel Sandbox for file generation and command execution
- Web preview, file explorer with syntax highlighting, and live command logs
- Optional Firecrawl‑powered web scrape and web search tools
- Built with Next.js App Router and Fumadocs
Core Concepts
- Single sandbox per session
- You work in one ephemeral environment per chat session.
- Expose ports during sandbox creation to preview servers later.
- Stateless commands
- Each command runs in a fresh shell session; do not rely on
cd
or shell state. - Use full relative paths and sequence dependent commands with “Wait Command.”
- Each command runs in a fresh shell session; do not rely on
- Prefer pnpm
- The sandbox has pnpm available; use pnpm for installs and scripts.
- BYOK and access rules
- Some models require your own key (BYOK).
- Bedrock supports region + credentials; other providers use token keys.
Models & Providers
Obby ships with an opinionated set of providers and model metadata. You can pick a provider and model in the UI and (optionally) attach your own API key.
- Providers
- OpenAI, Anthropic, Google, Groq, OpenRouter, Vercel (v0), Gateway, Bedrock (AWS)
- BYOK
- Token‑based: e.g.,
OPENAI_API_KEY
,ANTHROPIC_API_KEY
,GOOGLE_GENERATIVE_AI_API_KEY
,GROQ_API_KEY
,OPENROUTER_API_KEY
,AI_GATEWAY_API_KEY
- AWS Bedrock:
AWS_REGION
,AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
(+ optional session token)
- Token‑based: e.g.,
- Availability
- Models marked “BYOK” in the UI require your key.
- Gateway/OpenRouter proxy models when supported; local app keys can also be configured.
Tip: Use the Model Selector to choose provider/model and set a user‑level key without restarting the app.
Agent Tools
Obby’s agent uses a small, reliable set of tools. They’re invoked in sequence by the chat orchestration logic based on your prompt.
1) Create Sandbox
- Initializes a fresh Amazon Linux 2023 environment.
- Expose ports up front (e.g.,
[3000]
) for dev servers you want to preview. - Use once per session unless you explicitly need a reset.
When to use: New project, environment reset, or if you need a clean slate.
2) Generate Files
- Creates or updates files directly inside the sandbox.
- Produces complete, runnable files (scaffolds apps, adds routes/components/config).
- Paths must be relative to the sandbox root (e.g.,
package.json
,src/index.ts
).
When to use: Scaffolding, adding features, writing missing config, or fixing build errors caused by missing files.
3) Run Command
- Starts a command asynchronously and returns a
commandId
. - Commands are stateless; don’t chain with
&&
or rely on previouscd
. - Prefer
pnpm
for installs and scripts.
Examples:
pnpm install
pnpm run dev
pnpm build
4) Wait Command
- Blocks until a previously started command finishes.
- Required for sequential workflows (e.g., install → build → start).
Best practice:
- Run Command:
pnpm install
- Wait Command (expect exit code 0)
- Run Command:
pnpm run dev
(long‑running, typically do not wait)
5) Get Sandbox URL
- Returns a public URL for a port exposed during sandbox creation.
- Only works if the server is running on that port.
Use after pnpm run dev
to preview the app.
6) Web Scrape (optional)
- Single‑page scrape via Firecrawl with markdown, summary, and/or screenshot.
- Requires
FIRECRAWL_API_KEY
.
7) Web Search (optional)
- Firecrawl search across web (and GitHub category).
- Useful for quick research, fact‑checking, or pulling docs links.
- Requires
FIRECRAWL_API_KEY
.
Developer UI
- Chat
- Send prompts, see reasoning (when provided), and structured tool activity messages.
- Try sample prompts to scaffold apps quickly.
- Model Selector
- Choose provider/model, mark BYOK models, and store per‑provider keys.
- Tool Options
- Toggle optional tools (Web Scrape, Web Search) per session.
- Preview
- Web tab: live iframe preview with reload and “open in new tab.”
- Code tab: embedded file explorer for browsing and reading generated files.
- File Explorer
- Tree view with syntax highlighting; auto‑refreshes content from the sandbox.
- Logs
- Streams command logs and shows exit codes on completion.
Typical Workflow
- Create Sandbox (expose e.g.,
3000
) - Generate Files (scaffold project)
- Run Command:
pnpm install
→ Wait Command - Run Command:
pnpm run dev
(keep running) - Get Sandbox URL (preview)
- Iterate: generate more files, run tests/builds, repeat
Environment & Integrations
- Required (app)
- App URLs:
NEXT_PUBLIC_APP_URL
,NEXT_PUBLIC_DOCS_URL
- Database (if used):
DATABASE_URL
- App URLs:
- Optional (AI providers)
OPENAI_API_KEY
,ANTHROPIC_API_KEY
,GOOGLE_GENERATIVE_AI_API_KEY
,GROQ_API_KEY
,OPENROUTER_API_KEY
,AI_GATEWAY_API_KEY
- Optional (AWS Bedrock)
AWS_REGION
,AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
,AWS_SESSION_TOKEN?
- Optional (Web tools)
FIRECRAWL_API_KEY
- Vercel Sandbox
VERCEL_TEAM_ID
,VERCEL_PROJECT_ID
,VERCEL_TOKEN
Never commit secrets. Use a local .env.local
and your preferred secret manager in production.
Reliability & Safety
- Bot protection enabled on chat API route.
- Structured error logging with robust, typed validation.
- Commands are isolated per run to reduce side‑effects.
- File generation is streamed with progress feedback and path tracking.
Limitations & Tips
- Expose ports during sandbox creation; you cannot expose new ports later.
- Commands are stateless—avoid
cd
and shell state assumptions. - Only one sandbox per session unless you explicitly reset.
- Prefer
pnpm
for consistency with the sandbox environment. - Web tools require
FIRECRAWL_API_KEY
.