# upstash-box-js

Скилл учит агента работать с SDK @upstash/box: создавать облачные контейнеры, запускать в них агентов, шелл и git.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1200 установок · ★ 34
- Автор: Upstash
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/upstash/skills/tree/HEAD/skills/upstash-box-js/SKILL.md
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/skills/upstash-box-js

## Что делает

Скилл описывает TypeScript/JavaScript SDK `@upstash/box` — облачные контейнеры-песочницы, внутри которых есть агент, шелл, файловая система, git, cron-расписания и опциональный headless-браузер. Пригодится, когда нужно выполнить недоверенный или сгенерированный агентом код в изоляции, дать агенту облачное окружение с репозиторием либо гонять браузерную автоматизацию из бокса.

Внутри — жизненный цикл бокса: `Box.create` с рантаймом (`node`, `python`, `golang`, `ruby`, `rust` и `-alpine`-варианты), размером, метками, `keepAlive`, `initCommand`, git-токеном и переменными окружения. Дальше `Box.get`, `Box.getByName`, `Box.list`, пауза, возобновление, удаление, а также массовое удаление боксов и снапшотов. Отдельный блок про запуски агента: `box.agent.run` со схемой ответа на Zod, стриминг через `box.agent.stream`, вебхуки и опции под конкретный харнесс (`Agent.ClaudeCode`, `Agent.Codex`, `Agent.OpenCode`, `Agent.Cursor`, `Agent.Custom`).

Перед началом понадобится ключ: задайте `UPSTASH_BOX_API_KEY` или передайте `apiKey` в конструктор. `zod` — peer-зависимость, она нужна только для `responseSchema` и схем браузера. Телеметрию SDK шлёт по умолчанию, отключается через `UPSTASH_DISABLE_TELEMETRY` или `enableTelemetry: false` в конфиге. Учтите: `box.pause()` бросает исключение на боксах с `keepAlive` — их не усыпляют по простою, так что для таких боксов пауза просто не сработает.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add upstash/skills --skill upstash-box-js -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add upstash/skills --skill upstash-box-js -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add upstash/skills --skill upstash-box-js -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install upstash/skills upstash-box-js
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add upstash/skills --skill upstash-box-js -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/upstash/skills --path skills/upstash-box-js
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add upstash/skills --skill upstash-box-js -a opencode
```

### Claude.ai

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

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

## Когда брать
- запустить недоверенный код в изолированном контейнере
- дать агенту облачное окружение с шеллом и git-репозиторием
- получить от агента структурированный ответ по Zod-схеме
- сохранить состояние бокса в снапшот и восстановить его
- запланировать повторяющуюся задачу внутри бокса

## Примеры запросов агенту
- Создай бокс с рантаймом node и агентом Claude, потом запусти в нём ревью кода
- Настрой cron-расписание внутри бокса, чтобы задача запускалась каждый час
- Сделай снапшот бокса и восстанови из него новый контейнер

## Похожие
- [sandbox-stable](https://affpapa.org/nevibecode/skills/sandbox-stable.md) — скилл · 68500 установок
- [upstash-vector-db-skills](https://affpapa.org/nevibecode/skills/upstash-vector-db-skills.md) — скилл · 366 установок
- [sandbox-migrate-to-next](https://affpapa.org/nevibecode/skills/sandbox-migrate-to-next.md) — скилл · 67700 установок
- [upstash-redis-kv](https://affpapa.org/nevibecode/skills/upstash-redis-kv.md) — скилл · 469 установок
- [openshell-cli](https://affpapa.org/nevibecode/skills/openshell-cli.md) — скилл · 513 установок
- [upstash-redis](https://affpapa.org/nevibecode/skills/upstash-redis.md) — скилл · 7 установок

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

_Часть страницы не вошла по размеру — она есть в HTML-версии._

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