← VercelCONTENT HISTORY
WHAT CHANGED
changed
Update to Vercel
Snapshot Sep 30, 2026 · 23:18 UTC · version 0.21.4
Collection source: not recorded for this historical snapshot. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Supporting file metadata differs
Supporting file metadata differs
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Save Vercel and check future changes in Following.
Up to 3 plugins free · no card required.
All fields and original values.
Supporting files
Before
Sep 30, 2026 · 22:43 UTC
[]
After
Sep 30, 2026 · 23:18 UTC
[{"relative_path":"agents/openai.yaml","size_in_bytes":140}]
Compare saved observations
Download comparison JSONSKILL.md text changes
− removed · + added
No SKILL.md text changes between these observations.
Full technical diff · 1 changed fields
changed /included_files
BEFORE
[]
AFTER
[
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 140
}
]Full snapshot data
{
"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.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 140
}
],
"name": "micro",
"skill_md_contents": "---\nname: micro\ndescription: Expert guidance for micro — asynchronous HTTP microservices framework by Vercel. Use when building lightweight HTTP servers, API endpoints, or microservices using the micro library.\nmetadata:\n priority: 4\n docs:\n - \"https://github.com/vercel/micro\"\n pathPatterns: []\n importPatterns:\n - 'micro'\n - 'micro-dev'\n bashPatterns:\n - '\\bnpm\\s+(install|i|add)\\s+[^\\n]*\\bmicro\\b'\n - '\\bpnpm\\s+(install|i|add)\\s+[^\\n]*\\bmicro\\b'\n - '\\bbun\\s+(install|i|add)\\s+[^\\n]*\\bmicro\\b'\n - '\\byarn\\s+add\\s+[^\\n]*\\bmicro\\b'\n - '\\bnpx\\s+micro\\b'\n - '\\bnpx\\s+micro-dev\\b'\n---\n\n# micro — Asynchronous HTTP Microservices\n\nYou 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.\n\n## Installation\n\n```bash\nnpm install micro\n```\n\n## Basic Usage\n\nCreate a module that exports a request handler:\n\n```ts\n// index.ts\nimport { serve } from 'micro'\n\nconst handler = (req: Request) => {\n return new Response('Hello, World!')\n}\n\nserve(handler)\n```\n\nOr use the classic API:\n\n```ts\nimport { IncomingMessage, ServerResponse } from 'http'\n\nexport default (req: IncomingMessage, res: ServerResponse) => {\n res.end('Hello, World!')\n}\n```\n\nRun with:\n\n```bash\nnpx micro\n```\n\n## Core API\n\n### `json(req)` — Parse JSON Body\n\n```ts\nimport { json } from 'micro'\n\nexport default async (req: IncomingMessage, res: ServerResponse) => {\n const body = await json(req)\n return { received: body }\n}\n```\n\n### `text(req)` — Parse Text Body\n\n```ts\nimport { text } from 'micro'\n\nexport default async (req: IncomingMessage, res: ServerResponse) => {\n const body = await text(req)\n return `You said: ${body}`\n}\n```\n\n### `buffer(req)` — Parse Raw Body\n\n```ts\nimport { buffer } from 'micro'\n\nexport default async (req: IncomingMessage, res: ServerResponse) => {\n const raw = await buffer(req)\n return `Received ${raw.length} bytes`\n}\n```\n\n### `send(res, statusCode, data)` — Send Response\n\n```ts\nimport { send } from 'micro'\n\nexport default (req: IncomingMessage, res: ServerResponse) => {\n send(res, 200, { status: 'ok' })\n}\n```\n\n### `createError(statusCode, message)` — HTTP Errors\n\n```ts\nimport { createError } from 'micro'\n\nexport default (req: IncomingMessage, res: ServerResponse) => {\n if (!req.headers.authorization) {\n throw createError(401, 'Unauthorized')\n }\n return { authorized: true }\n}\n```\n\n## Development with micro-dev\n\n`micro-dev` provides hot-reloading for development:\n\n```bash\nnpm install --save-dev micro-dev\n\n# Run in dev mode\nnpx micro-dev index.js\n```\n\n## Composition\n\nChain multiple handlers with function composition:\n\n```ts\nimport { IncomingMessage, ServerResponse } from 'http'\n\nconst cors = (fn: Function) => async (req: IncomingMessage, res: ServerResponse) => {\n res.setHeader('Access-Control-Allow-Origin', '*')\n return fn(req, res)\n}\n\nconst handler = async (req: IncomingMessage, res: ServerResponse) => {\n return { hello: 'world' }\n}\n\nexport default cors(handler)\n```\n\n## package.json Setup\n\n```json\n{\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"micro\",\n \"dev\": \"micro-dev\"\n },\n \"dependencies\": {\n \"micro\": \"^10.0.0\"\n },\n \"devDependencies\": {\n \"micro-dev\": \"^3.0.0\"\n }\n}\n```\n\n## Key Points\n\n1. **Return values are sent as responses** — return strings, objects (auto-serialized to JSON), or Buffers\n2. **Async by default** — handlers can be async functions, errors are caught automatically\n3. **Thrown errors become HTTP errors** — use `createError()` for proper status codes\n4. **No routing built-in** — micro is a single-endpoint server; use a router like `micro-router` for multi-route services\n5. **Body parsing is explicit** — use `json()`, `text()`, or `buffer()` to parse request bodies\n6. **Composable** — wrap handlers with higher-order functions for middleware-like behavior\n\n## Official Resources\n\n- [micro GitHub](https://github.com/vercel/micro)\n"
}SHA-256 of public snapshot: 6547d60bd912c2a1a488cb158bd9a55d08977f3b7837377f401fd3c50946f4e3