- Category
- Developer Tools
- Rank
- No. 689Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- vercel-labs
- GitHub
- 1.7k stars
- Latest release
- v0.11.1
- Date
About
Local API emulation for CI and no-network sandboxes — replay third-party APIs without hitting them.
What it does
Emulate runs stateful stand-ins for fourteen external services on your machine. Start everything with one command, select individual services, or launch one from TypeScript. Optional YAML or JSON seed data creates users, repositories, messages, calendars, buckets, queues and other test fixtures. Instances can reset their stored state between tests and shut down cleanly afterward.
Why it's ranked here
The breadth is unusually useful for applications that combine identity, collaboration, payments and cloud APIs. Sensible defaults reduce setup, while configurable seed data supports repeatable scenarios. OAuth applications, scoped tokens, webhooks, rate-limit headers and service-specific state make it more capable than fixed response stubs. The main caution is that fidelity depends on the implemented routes, not merely the service name.
What's good
It supports both command-line use and direct TypeScript integration, including reset and shutdown controls suited to test suites. Fourteen services share one startup model and predictable port assignment. Seed configuration covers meaningful linked data, such as repositories with initial commits, Slack applications and tokens, Google mail and calendar records, AWS resources, and Linear issues. Custom base URLs and optional trusted local HTTPS help test callback-heavy flows.
Tradeoffs
Each provider exposes a selected surface rather than an automatic copy of every upstream capability. The supplied code shows different depths: Apple focuses on OAuth, while GitHub, Slack and Google register many resource areas. Stateful processes also require lifecycle management and isolated ports in parallel test runs. Trusted local HTTPS needs the separate portless tool, and the repository requires a recent Node and pnpm toolchain for development.
How to use it well
Use it for integration tests, CI jobs and restricted environments where deterministic third-party state matters. Seed the smallest scenario needed, start only the required services, reset state after each test, and close instances after the suite. It fits authentication, webhook and CRUD workflow testing especially well. It does not replace final compatibility checks against live providers or cover unimplemented vendor endpoints.
Technical notes+
The root package.json defines an Apache-2.0 private pnpm monorepo using Turbo, TypeScript, ESLint, Prettier and Vitest, with Node >=24 and pnpm 11 required for repository development. packages/emulate/tsup.config.ts produces separate ESM command-line and library bundles, emits declarations for the library build, bundles internal emulator packages, copies shared fonts and adds a Node shebang to the command-line artifact. packages/emulate/vitest.config.ts enables Vitest globals. README.md documents npm installation, npx execution, YAML or JSON seed discovery, per-service ports, custom advertised URLs and portless HTTPS integration.
Observed
- License
- Apache-2.0
- Primary language
- TypeScript
- Packaging
- npm package with npx execution; repository managed as a pnpm monorepo
- Interfaces
- Command-line interface and TypeScript library API
- Runtime support
- Repository development requires Node.js 24 or newer and pnpm 11
- Service coverage
- Fourteen named emulators: Vercel, GitHub, Google, Slack, Apple, Microsoft, Okta, AWS, Resend, Stripe, MongoDB Atlas, Clerk, Linear and Twilio
Read from README.md, package.json, packages/emulate/tsup.config.ts, packages/emulate/vitest.config.ts, packages/emulate/src/index.ts, packages/@emulators/aws/src/index.ts, packages/@emulators/core/src/index.ts, packages/@emulators/okta/src/index.ts, packages/@emulators/apple/src/index.ts, packages/@emulators/clerk/src/index.ts, packages/@emulators/core/src/server.ts, packages/@emulators/slack/src/index.ts, packages/@emulators/github/src/index.ts, packages/@emulators/google/src/index.ts, packages/@emulators/linear/src/index.ts.
What it can do
Replay third-party API responses locally
Recorded API responses and requests → Emulated API responses without network calls
Create local API mock server
API endpoint definitions and response data → Running local server that mimics external APIs
Record API interactions for later replay
Live API requests and responses → Stored API interaction data for emulation
Enable CI testing without external dependencies
Test suite requiring third-party API calls → Test execution using emulated API responses
Provide offline development environment
Application code that calls external APIs → Functional development environment without internet connection
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
