iiRecord
Agentic AI Atlas · Emulate — emulate third-party APIs
page:docs-research-emulate-deva5c.ai
II.
Page JSON

page:docs-research-emulate-dev

Structured · live

Emulate — emulate third-party APIs json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · wiki/docs/research/emulate-dev.mdCluster · wiki
Record JSON
{
  "id": "page:docs-research-emulate-dev",
  "_kind": "Page",
  "_file": "wiki/docs/research/emulate-dev.md",
  "_cluster": "wiki",
  "attributes": {
    "nodeKind": "Page",
    "sourcePath": "docs/research/emulate-dev.md",
    "sourceKind": "repo-docs",
    "title": "Emulate — emulate third-party APIs",
    "displayName": "Emulate — emulate third-party APIs",
    "slug": "docs/research/emulate-dev",
    "articlePath": "wiki/docs/research/emulate-dev.md",
    "article": "\n# Emulate — emulate third-party APIs\n\n> **Status:** Assimilation research note (no code change beyond the atlas record).\n> **Date:** 2026-06-23.\n> **Tagline (requester):** \"Emulate third-party APIs.\"\n> **Method:** vendor homepage <https://emulate.dev> + npm/GitHub corroboration. Behavioral claims are vendor-stated and not independently exercised.\n> **Provenance (verified 2026-06-23):** open source, **Apache-2.0**, by **Vercel Labs** — `github.com/vercel-labs/emulate`, npm `emulate` (v0.7.0) + `@emulators/*` adapters. npm tagline: \"Local drop-in replacement services for CI and no-network sandboxes.\"\n> **Atlas record:** `tool:emulate-dev` — `packages/atlas/graph/domain/tools/emulate-dev.yaml` (evidence `evidence:emulate-dev-homepage-2026-06`, `evidence:emulate-dev-npm-2026-06`).\n\n---\n\n## 0. Bottom line\n\nA CLI that runs **offline, stateful local replicas of ~11 popular third-party services** (Stripe, GitHub, Google, AWS, Slack, …) speaking their **real protocols** — no network, API keys, or real accounts. Built for local dev and CI: deterministic, zero-config, state persists across requests.\n\n## 1. What it does\n\nStand-in services you can develop and test against without touching production APIs: create repos and push commits, charge cards, exchange OAuth tokens — and the emulated state sticks across requests within a run.\n\n## 2. How it works\n\n- Emulates **authentic protocols**: OAuth with **RS256** tokens, **AWS XML** responses, etc. — not just static stubs.\n- **Stateful**: operations mutate persistent in-emulator state.\n- **Offline & CI-ready**: deterministic results across environments, no secrets.\n- Services bind to HTTPS localhost endpoints (e.g. `https://stripe.emulate.localhost`); integrates with **Portless** for the named-host routing.\n- SDKs are pointed at the local host/port (e.g. `localhost:4010`) via host/port/protocol config.\n\n## 3. Install & usage\n\n```bash\nnpx emulate --portless                 # run with Portless routing\nnpx emulate --service github,stripe    # select services\n```\n\nProgrammatic + framework integration:\n\n```js\nimport { createEmulator } from \"emulate\"\n// Next.js adapter:\n// npm install @emulators/adapter-next @emulators/github\n```\n\n## 4. Relevance to babysitter / agent workflows\n\n- **Deterministic, offline integration tests** are exactly what the live-stack / E2E lanes need to avoid flaky external dependencies and secret management — cf. the published live-stack work where real third-party installs/auth were a recurring blocker.\n- An orchestrated agent could target emulated Stripe/GitHub/AWS to exercise tool-service-integration flows hermetically.\n- Recorded as catalog awareness (`used_for: skill-area:tool-service-integration-agents`); not wired into babysitter test infra.\n\n## 5. Comparison (atlas edges)\n\n`alternative_to`: `tool:wiremock` (generic HTTP stub server vs. stateful, protocol-accurate named-service emulation), `tool:pact` (consumer-driven contract testing vs. runnable stateful service replicas).\n\n## 6. Caveats / open questions\n\n- License/OSS/repo **verified** (Apache-2.0, Vercel Labs) via npm + GitHub; the Next.js adapter (`@emulators/adapter-next`) explicitly targets the Vercel preview-deploy OAuth-callback problem. Early version (0.7.x).\n- The exact 11 services, per-service fidelity, and the `localhost:4010` vs. `*.emulate.localhost` addressing modes are vendor claims, not independently exercised here.\n",
    "documents": []
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "page:docs",
      "to": "page:docs-research-emulate-dev",
      "kind": "contains_page"
    }
  ]
}