核心定位:本地服務模擬器,用於測試和 CI 環境
「emulate」是一個服務模擬器,讓外部整合變得容易測試、穩定運行,並為 Agent、CI 或任何需要確定性的環境提供可預測的行為。它不是 mock,而是完整狀態保持的生產級保真度 API 模擬。
零配置啟動與多服務支持
- 執行
npx emulate即可無需設定檔啟動所有服務 - 預設服務於 localhost 自動遞增埠號啟動:Vercel(4000)、GitHub(4001)、Google(4002)
- 支援 CLI 選項自訂服務選擇、埠號或透過 YAML/JSON 載入種子設定
- 提供程式設計 API 供 Node.js 應用直接使用,可在測試框架(Vitest、Jest)中作為 beforeAll/afterEach hooks 整合
Vercel API 完整實現
emulate 支援完整的 Vercel API,覆蓋使用者、團隊、專案、部署、網域、環境變數等端點,所有操作具有狀態持久性:
- 使用者與團隊管理:認證使用者檢索、團隊建立、成員管理
- 專案與部署:支援環境變數、Git 整合、版本 v6–v13 相容性、自動轉換部署至 READY 狀態
- 域名驗證與環境變數加密
- 遊標式分頁支援搜尋和篩選
GitHub API 與 OAuth 完整支持
涵蓋 REST API 的廣泛功能,包括:
- 使用者、組織、repo 完整 CRUD
- Issue、Pull Request、Comment、Review 狀態管理與轉換事件
- 分支保護規則、標籤、里程碑、Git 資料結構(commit、tree、blob、tag)
- 搜尋功能(支援完整查詢語法:user、org、language、topic、stars、forks 等)
- Actions 工作流程、檢查執行、成品、秘密管理
- Webhook 支援實時 HTTP 遞送至註冊 URL
- GitHub App 支援 JWT 驗證與安裝存取 token
OAuth 應用嚴格驗證 client_id,若未配置則向後相容接受任意 client_id;GitHub App 支援完整的私密金鑰驗簽與事件 webhook 遞送,包括 installation 欄位與可選的 X-Hub-Signature-256 標頭。
Google OAuth 2.0 與 OpenID Connect
實現完整的 OAuth 流程,無需實際連線 Google:
- 授權端點、token 交換、使用者資訊檢索
- OpenID Connect 探索文件與 JSON Web Key Set (JWKS)
- 支援可配置的 OAuth client 與重新導向 URI
靈活的設定與驗證機制
- YAML 配置支援使用者、token、OAuth 應用、GitHub App(含私密金鑰與權限定義)、webhook URL
- Token 驗證支援
Authorization: Bearer或Authorization: token標頭格式 - Vercel 支援透過
teamId或slug查詢參數進行團隊範疇限制;GitHub 公開 repo 無需驗證,私有 repo 與寫入操作需有效 token
架構與擴展性
核心基於 Hono HTTP 伺服器與內存 Store,提供通用 Collection<T> 實例支援 CRUD、索引、篩選與分頁。各服務外掛於共享應用註冊路由,所有狀態變更透過中央 Store 管理,確保跨服務的資料一致性與事件同步。程式庫結構清晰,CLI 由 commander 驅動,支援 Next.js 文件網站。
Sign in with Google
— Chris Tate (@ctatedev) March 22, 2026
...without actually signing into Google
`emulate` is a service emulator that makes external integrations easy to test, stable to run, and predictable for agents, CI or anywhere determinism matters
npx skills add vercel-labs/emulate --skill google pic.twitter.com/iRtHGR7k2W
Emulators for GitHub, Vercel, Google
— Chris Tate (@ctatedev) March 22, 2026
More soonhttps://t.co/scZeGZlO8S
