| name | typebox |
| description | TypeBox patterns for runtime schema validation and JSON Schema generation. Use when mentioning TypeBox, Standard Schema, or schema-based validation. |
| metadata | {"author":"epicenter","version":"1.0"} |
TypeBox
Package Names
Use typebox, not @sinclair/typebox. The @sinclair/typebox package is deprecated.
import { Type } from 'typebox';
import { Compile } from 'typebox/compile';
import { Value } from 'typebox/value';
import { Type } from '@sinclair/typebox';
When to Use What
| Need | Use |
|---|
| Define schemas | typebox with Type.* |
| One-off validation | Value.Check() from typebox/value |
| High-performance validation | Compile() from typebox/compile |
TypeBox schemas are portable JSON Schema-shaped data. If a TypeBox boundary
needs validation, validate the TypeBox schema directly:
import { Type } from 'typebox';
import { Compile } from 'typebox/compile';
import { Value } from 'typebox/value';
const schema = Type.Object({ name: Type.String(), age: Type.Number() });
Value.Check(schema, value);
const validator = Compile(schema);
validator.Check(value);
validator.Parse(value);
Standard Schema Boundary
TypeBox does not implement Standard Schema. Do not write TypeBox code that expects
schema['~standard']. If a boundary accepts Standard Schema, prefer Arktype or
another schema library that implements it natively. If a boundary owns TypeBox
schemas, keep the boundary TypeBox-native and use JSON Schema as the portable
representation.
Repo Policy
Use TypeBox for portable schema objects: workspace tables, kv, fields, actions,
MCP inputs, manifests, and other surfaces that need JSON Schema shape,
metadata, Static<>, or schema inspection. Use Arktype for local runtime
validation, request parsing, env/config parsing, persisted UI state, transforms,
and branded domain values.
References