micro — скилл для Codex: что делает и как установить
Помогает писать легковесные асинхронные микросервисы на Node.js с библиотекой micro от Vercel. Подсказывает структуру эндпоинтов, парсинг тела и обработку ошибок.
npx skills add openai/plugins --skill micro -a codexЧто делает micro
Скилл инструктирует ИИ-агента по работе с фреймворком micro. Он учит настраивать точку входа через serve() или классический обработчик с IncomingMessage и ServerResponse. Агент сразу применяет методы библиотеки: явный парсинг тела через json(), text() или buffer(), а также генерацию статус-кодов с createError().
В micro нет встроенного роутинга. Фреймворк рассчитан на одиночные эндпоинты, поэтому для ветвления путей придётся подключать сторонние модули вроде micro-router. Промежуточный код и CORS реализуются через обёртки функций высшего порядка. Для локальной разработки скилл настраивает запуск через micro-dev с горячей перезагрузкой.
Какие задачи решает
- написать асинхронный HTTP-эндпоинт без лишнего бойлерплейта
- настроить парсинг входящих JSON-запросов и текстовых данных
- обернуть микросервис в middleware для CORS
- сконфигурировать micro-dev для горячей перезагрузки в package.json
Примеры запросов агенту
- Напиши эндпоинт на micro, который принимает JSON в POST-запросе и возвращает ответ
- Добавь CORS-обёртку и проверку авторизации через createError для микросервиса
- Настрой package.json со скриптами start и dev для запуска через micro-dev
Как установить micro
1Через Skills CLI (Vercel)
npx skills add openai/plugins --skill micro -a codex2Вручную: положить файлы
.agents/skills/micro/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add openai/plugins --skill micro -a claude-code2Вручную: положить файлы
~/.claude/skills/micro/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/micro/
Вручную: положить файлы
.cursor/skills/micro/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install openai/plugins micro2Вручную: положить файлы
.github/skills/micro/SKILL.mdКомандой платформы
gemini skills install https://github.com/openai/plugins --path plugins/vercel/skills/microВручную: положить файлы
.devin/skills/micro/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Скиллы Codex: как установить, где лежат и как вызвать
Вопросы о micro
Как установить micro в Codex?
Выполните команду npx skills add openai/plugins --skill micro или укажите платформу явно: npx skills add openai/plugins --skill micro -a codex. Файл скилла запишется в .agents/skills/micro/SKILL.md.
Что делает скилл micro?
Он обучает агента разработке легковесных микросервисов с помощью Vercel micro. Модель использует правильные инструменты фреймворка вроде json(), send() и createError() вместо тяжеловесных серверных библиотек.
Поддерживает ли micro роутинг из коробки?
Нет, встроенная маршрутизация во фреймворке отсутствует. Для разделения запросов по разным URL-путям потребуется подключить внешний пакет, например micro-router.
Исходный текст
SKILL.md · Apache-2.0
---
name: micro
description: Expert guidance for micro — asynchronous HTTP microservices framework by Vercel. Use when building lightweight HTTP servers, API endpoints, or microservices using the micro library.
metadata:
priority: 4
docs:
- "https://github.com/vercel/micro"
pathPatterns: []
importPatterns:
- 'micro'
- 'micro-dev'
bashPatterns:
- '\bnpm\s+(install|i|add)\s+[^\n]*\bmicro\b'
- '\bpnpm\s+(install|i|add)\s+[^\n]*\bmicro\b'
- '\bbun\s+(install|i|add)\s+[^\n]*\bmicro\b'
- '\byarn\s+add\s+[^\n]*\bmicro\b'
- '\bnpx\s+micro\b'
- '\bnpx\s+micro-dev\b'
---
# micro — Asynchronous HTTP Microservices
You are an expert in micro, Vercel's lightweight framework for building asynchronous HTTP microservices in Node.js. micro makes it easy to write single-purpose HTTP endpoints with minimal boilerplate.
## Installation
```bash
npm install micro
```
## Basic Usage
Create a module that exports a request handler:
```ts
// index.ts
import { serve } from 'micro'
const handler = (req: Request) => {
return new Response('Hello, World!')
}
serve(handler)
```
Or use the classic API:
```ts
import { IncomingMessage, ServerResponse } from 'http'
export default (req: IncomingMessage, res: ServerResponse) => {
res.end('Hello, World!')
}
```
Run with:
```bash
npx micro
```
## Core API
### `json(req)` — Parse JSON Body
```ts
import { json } from 'micro'
export default async (req: IncomingMessage, res: ServerResponse) => {
const body = await json(req)
return { received: body }
}
```
### `text(req)` — Parse Text Body
```ts
import { text } from 'micro'
export default async (req: IncomingMessage, res: ServerResponse) => {
const body = await text(req)
return `You said: ${body}`
}
```
### `buffer(req)` — Parse Raw Body
```ts
import { buffer } from 'micro'
export default async (req: IncomingMessage, res: ServerResponse) => {
const raw = await buffer(req)
return `Received ${raw.length} bytes`
}
```
### `send(res, statusCode, data)` — Send Response
```ts
import { send } from 'micro'
export default (req: IncomingMessage, res: ServerResponse) => {
send(res, 200, { status: 'ok' })
}
```
### `createError(statusCode, message)` — HTTP Errors
```ts
import { createError } from 'micro'
export default (req: IncomingMessage, res: ServerResponse) => {
if (!req.headers.authorization) {
throw createError(401, 'Unauthorized')
}
return { authorized: true }
}
```
## Development with micro-dev
`micro-dev` provides hot-reloading for development:
```bash
npm install --save-dev micro-dev
# Run in dev mode
npx micro-dev index.js
```
## Composition
Chain multiple handlers with function composition:
```ts
import { IncomingMessage, ServerResponse } from 'http'
const cors = (fn: Function) => async (req: IncomingMessage, res: ServerResponse) => {
res.setHeader('Access-Control-Allow-Origin', '*')
return fn(req, res)
}
const handler = async (req: IncomingMessage, res: ServerResponse) => {
return { hello: 'world' }
}
export default cors(handler)
```
## package.json Setup
```json
{
"main": "index.js",
"scripts": {
"start": "micro",
"dev": "micro-dev"
},
"dependencies": {
"micro": "^10.0.0"
},
"devDependencies": {
"micro-dev": "^3.0.0"
}
}
```
## Key Points
1. **Return values are sent as responses** — return strings, objects (auto-serialized to JSON), or Buffers
2. **Async by default** — handlers can be async functions, errors are caught automatically
3. **Thrown errors become HTTP errors** — use `createError()` for proper status codes
4. **No routing built-in** — micro is a single-endpoint server; use a router like `micro-router` for multi-route services
5. **Body parsing is explicit** — use `json()`, `text()`, or `buffer()` to parse request bodies
6. **Composable** — wrap handlers with higher-order functions for middleware-like behavior
## Official Resources
- [micro GitHub](https://github.com/vercel/micro)
© Vercel Labs · Apache-2.0 · openai/plugins