PHP 8.3+ · deterministic runtime
Build APIs your agents can ship,
and you can trust.
Univeros is a deterministic, reversible PHP framework. One YAML spec scaffolds the Action, Input, Responder, tests, OpenAPI, and a typed client SDK. Every artifact byte-stable, every change rewindable, every mutation logged.
composer create-project univeros/univeros my-api One spec emits
- Action
- Input
- Responder
- tests
- OpenAPI
- SDK
Deterministic
Every generated artifact is byte-stable. Same spec in, same bytes out, on any machine, any PHP minor. Diffs stay meaningful and CI can gate on drift.
Reversible
A rewind/replay journal captures every scaffold. journal:rewind undoes a bad generation; a failed iteration is recoverable, never catastrophic.
Idempotent & webhook-ready
Stripe-style Idempotency-Key middleware and signed inbound/outbound webhooks are first-class primitives, spec-driven and round-tripping through OpenAPI.
Agent-operable
A first-party MCP server exposes the framework as 42 agent-callable tools, and an append-only event log answers “what just changed?” across sessions.
Batteries included · agent-ready
Everything an API needs, and everything an agent needs to operate it.
40 independently usable packages under one bundle. Install the whole framework, or pick the pieces you need.
Spec-driven scaffolding
A YAML endpoint spec emits the Action / Input / Responder triple, a domain stub, a PHPUnit test, an OpenAPI fragment, and the route entry. All in one command.
/docs/packages/scaffoldOpenAPI round-trip + SDKs
Emit OpenAPI 3.1 from specs and import it back, faithfully. Generate zero-dependency TypeScript and httpx/pydantic Python clients, deterministic and CI-checkable.
/docs/guides/openapi/roundtripPersistence, the right way
A thin Repository / UnitOfWork contract over Cycle ORM v2 with db:migrate commands. Add a persistence: block and the entity, repository, and migration scaffold too.
/docs/packages/persistenceMessaging & workers
A MessageBus + worker bridge over Symfony Messenger with attribute-driven handler discovery. A queue: block scaffolds the DTO, handler, and test alongside the endpoint.
/docs/packages/messagingIntrospection & Doctor
A read-only X-ray of a booted app (bindings, routes, listeners, middleware, specs), plus a doctor health-check, both with deterministic JSON for agents and CI.
/docs/packages/introspectionSymbol index & adviser
An AST + spec-aware symbol index answers find-usages, callers-of, and refactor-impact in milliseconds. A refactor adviser flags dead bindings, fat constructors, and spec-less routes.
/docs/packages/symbol-indexFirst-party MCP server
The framework as 42 agent-callable Model Context Protocol tools over stdio/HTTP, the shell-less bridge for hosted agents and remote introspection of deployed APIs.
/docs/packages/mcpObservatory & events
A dev-only, fail-closed monitoring panel over the framework’s own introspection, plus an append-only .altair/events.jsonl mutation log for “what changed?” across sessions.
/docs/packages/observatoryFrom spec to shipped
One spec in. A tested, documented endpoint out.
bin/altair spec:scaffold
reads a single YAML file and writes the whole vertical slice, then records a journal entry
so you can journal:rewind it.
# api/users/create.yaml
operationId: createUser
method: POST
path: /users
summary: Register a new user
input:
email: { type: string, format: email, required: true }
password: { type: string, minLength: 12, required: true }
persistence:
entity: User
table: users
idempotency: true
responses:
"201": { $ref: User } - + Http/Action/CreateUserAction.php action
- + Http/Input/CreateUserInput.php input
- + Http/Responder/CreateUserResponder.php responder
- + Domain/User.php entity
- + Domain/UserRepository.php repository
- + database/migrations/20260607_create_users.php migration
- + tests/Http/CreateUserActionTest.php test
- + docs/openapi/users-create.yaml openapi
- + config/routes.php (+ POST /users) route
Tokens to Ship. A defensible benchmark of how cheaply an AI agent gets from spec to passing acceptance. Deterministic, scannable output costs fewer tokens than reading source.
See the methodologyThe catalogue
40 packages, one coherent framework.
Each ships with a stand-alone guide. Composer-require the bundle, or any single package.
HTTP stack
Application core
Infrastructure
Get started
From empty directory to a running, tested API.
Scaffold a project, write a spec, and ship your first endpoint in minutes, with the determinism, reversibility, and agent tooling baked in.
composer create-project univeros/univeros my-api