Semantic layer for deterministic domain state
See the codeManifesto computes deterministic domain state transitions.
MEL declares domain transition rules. Core computes semantic transitions from schema, snapshot, intent, and context. Host fulfills declared effects and converges the next Snapshot.
Most applications use the SDK as the public runtime surface: activate a domain, submit typed actions, observe snapshots, and share the same state contract across UI, backend routes, and agents.
Lineage and Governance are optional protocol extensions. Add them only when a product needs history, restore, audit, approval, policy, or delegation.

A React Todo UI and a scripted agent share one Manifesto runtime. The agent reads the Snapshot, checks available typed actions, and submits app-owned actions; the UI and computed values update from the same deterministic state transition.
Run the example · Download the MP4
npm install @manifesto-ai/sdk
npm install -D @manifesto-ai/compiler tsx typescript
Requires Node.js >= 24. That is enough for a direct Node/tsx script that
imports .mel files through the MEL loader. For Vite or another bundler, add
the compiler plugin shown in Quick Start.
Prefer an interactive setup? Use the optional CLI:
npx @manifesto-ai/cli init
domain Counter {
state { count: number = 0 }
action increment() {
onceIntent { patch count = count + 1 }
}
}
import { createManifesto } from "@manifesto-ai/sdk";
import CounterMel from "./counter.mel";
const app = createManifesto(CounterMel, {}).activate();
await app.action.increment.submit();
console.log(app.snapshot().state.count); // 1
Run a direct script with:
npx tsx --loader @manifesto-ai/compiler/node-loader main.ts
Use this order if you are new:
Other entry points:
Start with the base SDK runtime. Add approval/history packages or surrounding DX tools only when the project actually needs them.
If you use Manifesto in research, please cite:
@misc{jung2026llmdoesselfrevisingagent,
title={How Much LLM Does a Self-Revising Agent Actually Need?},
author={Sungwoo Jung and Seonil Son},
year={2026},
eprint={2604.07236},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2604.07236},
}
TypeScript
97.7%
JavaScript
2.3%
Semantic layer for deterministic domain state
See the codeManifesto computes deterministic domain state transitions.
MEL declares domain transition rules. Core computes semantic transitions from schema, snapshot, intent, and context. Host fulfills declared effects and converges the next Snapshot.
Most applications use the SDK as the public runtime surface: activate a domain, submit typed actions, observe snapshots, and share the same state contract across UI, backend routes, and agents.
Lineage and Governance are optional protocol extensions. Add them only when a product needs history, restore, audit, approval, policy, or delegation.

A React Todo UI and a scripted agent share one Manifesto runtime. The agent reads the Snapshot, checks available typed actions, and submits app-owned actions; the UI and computed values update from the same deterministic state transition.
Run the example · Download the MP4
npm install @manifesto-ai/sdk
npm install -D @manifesto-ai/compiler tsx typescript
Requires Node.js >= 24. That is enough for a direct Node/tsx script that
imports .mel files through the MEL loader. For Vite or another bundler, add
the compiler plugin shown in Quick Start.
Prefer an interactive setup? Use the optional CLI:
npx @manifesto-ai/cli init
domain Counter {
state { count: number = 0 }
action increment() {
onceIntent { patch count = count + 1 }
}
}
import { createManifesto } from "@manifesto-ai/sdk";
import CounterMel from "./counter.mel";
const app = createManifesto(CounterMel, {}).activate();
await app.action.increment.submit();
console.log(app.snapshot().state.count); // 1
Run a direct script with:
npx tsx --loader @manifesto-ai/compiler/node-loader main.ts
Use this order if you are new:
Other entry points:
Start with the base SDK runtime. Add approval/history packages or surrounding DX tools only when the project actually needs them.
If you use Manifesto in research, please cite:
@misc{jung2026llmdoesselfrevisingagent,
title={How Much LLM Does a Self-Revising Agent Actually Need?},
author={Sungwoo Jung and Seonil Son},
year={2026},
eprint={2604.07236},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2604.07236},
}
TypeScript
97.7%
JavaScript
2.3%