The open standard for machine-enhanceable descriptors of real-world objects and catalogs.
catdef defines two complementary concepts: OpenThing — a schema for describing any real-world object, and OpenCatalog — a schema for organizing collections of things. A key concept is that catalogs are recursive, so that a catalog may contain sub-catalogs. Any conforming runtime can read, write, and render valid OpenCatalogs and OpenThings. The catdef spec also describes how to serialize both catalogs and things into single files, which may then be transported and shared.
One format, every domain. Whatever you can describe, you can catalog.
Museum artifacts · vintage watches · wine cellars · magazine archives · artist portfolios · field-guide species · concert calendars · photo timelines.
An AI that can see a photograph can write a catdef. Schemas, data, and presentation are all expressed in one declarative format that any model can produce and any runtime can consume — zero context backfill required.
Schema, data, and presentation in a single .opencatalog file. Drop it into any conformant renderer and a working application comes out the other side. Transportable, shareable, self-contained.
164 conformance tests define what catdef means. Anyone can build a renderer; if it passes the tests, it's catdef. No vendor, no lock-in, no proprietary extensions required.
MIME type: application/vnd.catdef+json
File extensions: .opencatalog (catalog with data), .openthing (single object), .catdef (schema only)
Agents and humans can submit structured feedback via API:
POST /feedback
{
"type": "gap",
"agent": "claude-3.5",
"catdef_version": "1.4",
"context": "Cataloging a wine collection",
"field_type": "Date",
"message": "No way to express vintage year ranges",
"severity": "minor"
}
An MCP server is live at https://catdef.org/mcp (streamable-HTTP transport, JSON-RPC 2.0). AI peers
can read the full spec as MCP resources (e.g. catdef://spec/CATDEF_SPEC.md), ground themselves with
catdef_lookup and catdef_list_decisions, and (with a self-serve api-key) file structured
feedback via catdef_report_feedback. The maintainer/strategist seats use elevated keys for queue triage.
See the canonical-surface proposal for the full surface description.