The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Valem listing page.
Deterministic reactive computation runtime for AI-generated structured data models. A spreadsheet-like computation model for JSON-based agent systems.
▶ Try the live sandbox — a zero-setup public demo: describe a domain in plain language, watch an LLM generate a ModelSpec, then mutate fields and see derivations, constraints, and effects react live.
Full docs live under docs/ — a task-keyed index, also published as a
documentation site organised in six
chapters: Getting started, Usage scenarios, Model guide, Reference, Deployment,
Extending. Canonical references (this README is a quickstart; the detail lives in these docs and
is deliberately not duplicated here):
valem.* propertyThe console app is the fastest way to use Valem from a script or an AI agent. It reads one JSON
command per line from stdin and writes one JSON response per line to stdout. No HTTP, no
browser, no server process. All state is held in memory for the lifetime of the process.
Example session:
Full command list: console JSON protocol.
The API is now available at http://localhost:8080, with the management UI served at /. Storage
is in-memory by default; other backends are à-la-carte adapter jars
(mvn -Pweb-postgres -pl valem-web package, then --valem.storage.type=postgres) — see
configuration.md. For durable
setups, persistence layout, and the hardening checklist see
operations.md.
To enable LLM-powered spec generation, configure a provider before starting (the key is read from
valem.llm.api-key, settable as VALEM_LLM_API_KEY; there is no provider-specific env fallback):
Without any provider configured the server starts normally; the /models/generate* endpoints
return 503. All LLM knobs (providers, tool budgets, retries, temperatures):
configuration.md.
In a separate terminal:
Open http://localhost:5173 in your browser.
The UI proxies all /models and /blobs requests (including WebSocket connections) to the
backend, which must be running.
The UI's ✦ Generate button drives a human-in-the-loop workflow: enter a model ID and a
plain-text domain description → Preview Prompt (editable) → send to the LLM → review/edit the
generated spec → Register Model. The same workflow is available over REST
(POST /models/generate/preview → /models/generate → /models).
See generating-specs-with-llm.md for the workflow and provider setup, and llm-prompts.md for the exact prompts and the validate-and-repair loop.
Every endpoint (audit, snapshots, views, blobs, spec evolution, composition, …): api-reference.md.
The valem-e2e module contains Playwright browser tests that drive the full stack (backend + UI).
Prerequisites: the backend must be running on port 8080 (see Running the backend). The UI dev server is started automatically by Playwright.
Apache-2.0 — see LICENSE.