vercel-labs-emulate
Local drop-in API emulation for Vercel, GitHub, and Google services in CI and no-network sandboxes
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/adisinghstudent/vercel-labs-emulatevercel-labs/emulate
Skill by ara.so — Daily 2026 Skills collection.
emulate provides fully stateful, production-fidelity local HTTP servers that replace Vercel, GitHub, and Google APIs. Designed for CI pipelines and no-network sandboxes — not mocks, real in-memory state with proper pagination, OAuth, webhooks, and cascading deletes.
Installation
# CLI (no install needed)
npx emulate
# Or install as a dev dependency
npm install --save-dev emulate
CLI Usage
# Start all services with defaults
npx emulate
# Start specific services
npx emulate --service vercel,github
# Custom base port (auto-increments per service)
npx emulate --port 3000
# Start with seed data
npx emulate --seed emulate.config.yaml
# Generate a starter config
npx emulate init
# Generate config for a specific service
npx emulate init --service github
# List available services
npx emulate list
Default ports:
- Vercel →
http://localhost:4000 - GitHub →
http://localhost:4001 - Google →
http://localhost:4002
Port can also be set via EMULATE_PORT or PORT environment variables.
Programmatic API
import { createEmulator, type Emulator } from 'emulate'
// Start a single service
const github = await createEmulator({ service: 'github', port: 4001 })
const vercel = await createEmulator({ service: 'vercel', port: 4002 })
console.log(github.url) // 'http://localhost:4001'
console.log(vercel.url) // 'http://localhost:4002'
// Reset state (replays seed data)
github.reset()
// Shutdown
await github.close()
await vercel.close()
Options
| Option | Default | Description |
|---|---|---|
service | (required) | 'github', 'vercel', or 'google' |
port | 4000 | Port for the HTTP server |
seed | none | Inline seed data object (same shape as YAML config) |
Instance Methods
| Method | Description |
|---|---|
url | Base URL of the running server |
reset() | Wipe in-memory store and replay seed data |
close() | Shut down the server (returns Promise) |
Vitest / Jest Setup
// vitest.setup.ts
import { createEmulator, type Emulator } from 'emulate'
let github: Emulator
let vercel: Emulator
beforeAll(async () => {
;[github, vercel] = await Promise.all([
createEmulator({ service: 'github', port: 4001 }),
createEmulator({ service: 'vercel', port: 4002 }),
])
process.env.GITHUB_URL = github.url
process.env.VERCEL_URL = vercel.url
})
afterEach(() => {
github.reset()
vercel.reset()
})
afterAll(() => Promise.all([github.close(), vercel.close()]))
// vitest.config.ts
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
setupFiles: ['./vitest.setup.ts'],
environment: 'node',
},
})
Seed Configuration
Create emulate.config.yaml in your project root (auto-detected):
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-adisinghstudent-vercel-labs-emulate": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
Oh My Openagent Omo
Skill by adisinghstudent
Planning With Files Manus Workflow
Skill by adisinghstudent
mirofish-offline-simulation
Fully local multi-agent swarm intelligence simulation engine using Neo4j + Ollama for public opinion, market sentiment, and social dynamics prediction.
ghostling-libghostty-terminal
Build minimal terminal emulators using the libghostty-vt C API with Raylib for windowing and rendering
Obra Superpowers Agentic Workflow
Skill by adisinghstudent