# vercel-labs-emulate

Поднимает локальные HTTP-серверы вместо Vercel, GitHub и Google API. Нужен в CI и песочницах без сети, где тесты должны работать с настоящим состоянием.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 916 установок · ★ 88
- Автор: reason-machines
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/reason-machines/trending-skills/tree/HEAD/skills/vercel-labs-emulate/SKILL.md
- Обновлён: 2026-10-09
- HTML: https://affpapa.org/nevibecode/skills/vercel-labs-emulate

## Что делает

Скилл описывает `emulate` — набор локальных серверов, которые подменяют Vercel, GitHub и Google API. Состояние хранится в памяти, пагинация, OAuth, вебхуки и каскадное удаление работают как в бою. Тесты получают реальные ответы, а не заглушки.

Запуск идёт через CLI: `npx emulate` поднимает все сервисы, `npx emulate --service vercel,github` — только нужные, `npx emulate --port 3000` задаёт базовый порт. По умолчанию Vercel слушает `http://localhost:4000`, GitHub — `http://localhost:4001`, Google — `http://localhost:4002`. Порт можно задать переменными `EMULATE_PORT` или `PORT`. Есть и программный API: `createEmulator({ service: 'github', port: 4001 })` возвращает объект с `url`, `reset()` и `close()`.

Данные для старта берутся из `emulate.config.yaml` в корне проекта или из инлайнового объекта `seed`. Файл генерируется командой `npx emulate init`. Если в конфиге нет блока `oauth_apps`, эмулятор принимает любой `client_id`; с настроенными приложениями включается строгая проверка. Для GitHub Apps JWT подписывается RS256 с `iss` равным `app_id`, подпись эмулятор проверяет.

## Требования
- Работает с: GitHub

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill vercel-labs-emulate -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/vercel-labs-emulate/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/vercel-labs-emulate/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill vercel-labs-emulate -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/vercel-labs-emulate/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill vercel-labs-emulate -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/vercel-labs-emulate/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install reason-machines/trending-skills vercel-labs-emulate
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/vercel-labs-emulate/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill vercel-labs-emulate -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/reason-machines/trending-skills --path skills/vercel-labs-emulate
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/vercel-labs-emulate/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add reason-machines/trending-skills --skill vercel-labs-emulate -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/reason-machines/trending-skills/tree/HEAD/skills/vercel-labs-emulate/SKILL.md

## Когда брать
- прогнать тесты GitHub-клиента без обращения к api.github.com
- поднять Vercel API в CI, где нет исходящего трафика
- проверить OAuth-редирект на локальном сервере
- сбросить состояние между тестами через `reset()`
- засеять репозитории и организации перед прогоном

## Примеры запросов агенту
- Подними локальную эмуляцию GitHub и Vercel для тестов
- Сгенерируй `emulate.config.yaml` для сервиса github
- Настрой `vitest.setup.ts` так, чтобы эмулятор стартовал перед всеми тестами

## Похожие
- [improve-codebase-architecture](https://affpapa.org/nevibecode/skills/improve-codebase-architecture.md) — скилл · 1163035 установок
- [design-taste-frontend](https://affpapa.org/nevibecode/skills/design-taste-frontend.md) — скилл · 678700 установок
- [tdd](https://affpapa.org/nevibecode/skills/tdd.md) — скилл · 1141062 установки
- [skill-creator](https://affpapa.org/nevibecode/skills/skill-creator.md) — скилл · 414180 установок
- [agent-browser](https://affpapa.org/nevibecode/skills/vercel-labs-agent-browser.md) — скилл · 1200000 установок
- [prototype](https://affpapa.org/nevibecode/skills/prototype.md) — скилл · 986201 установка

Из того же набора: [reason-machines/trending-skills](https://affpapa.org/nevibecode/by/reason-machines/trending-skills.md) — 139 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
