Quickstart
Scaffold a Tarski app, watch verification prove the contract holds, and take the same app to the cloud — in about five minutes.
Every scaffolded Tarski app verifies green from its first minute — the scaffold is a working curriculum, not an empty folder. This page walks the local loop, then the cloud path.
The local loop
Scaffold an app
tarski scaffold my-app --pattern minimal cd my-appThe
minimalpattern is domain-neutral: a commented ontology, a stub mapper, a non-vacuous happy-path fixture, and a manifest. Prefer--pattern defaultfor a fuller curriculum app with a declared query, decision gating, and richer fixtures. Other patterns:sensor(fallible extraction),decision(LLM proposal gating),chat(agent interface),end-user-auth(verified identity and policy-gated access).Prove the contract
tarski verifyverifyreplays every fixture on a clean database against the deterministic evaluator and layers checks over the replay: golden expected outputs, invariants, provenance, replay determinism, and redaction. It always ends with a human- and machine-readable verdict. Green means the declared contract holds.Replay a timeline
tarski replay fixtures/happy-path.jsonl --isolatedA fixture is an observation timeline (
.jsonl) plus an expected world (.expected.json). Replay shows you the derived model those observations produce;--isolatedleaves your workspace’s default lineage untouched.Start the dev loop
tarski devThe dev loop watches your app’s text assets —
.taontology, Rhai mappers, fixtures — and hot-reloads on change. There is no compile step: apps are directories of text files interpreted by thetarskibinary.Inspect in Studio
tarski studioStudio shows observations, derived facts, intents, effects, and — most importantly — provenance: why each derived fact exists, traced back to the observations that support it. See Studio.
What you just proved
The scaffold’s fixture states a timeline of observations and the exact derived world that
must result. tarski verify executed it against the same evaluator that runs production —
there is no test-harness translation layer to drift. When you (or your coding agent)
change a rule, the fixture either still holds or names exactly what changed.
The cloud path
When you are ready to run hosted, the same app deploys to Tarski Cloud:
tarski cloud login --email you@company.com
tarski cloud whoami
tarski cloud select --project my-project
tarski cloud deploy
tarski cloud observe --kind example.created --payload '{"id":"example-1"}'
Login is a code-only email flow — Tarski emails a sign-in code, which you can supply
interactively, via --code, or via --code-command for agent-driven workflows. A denied
cloud select exits nonzero and leaves your previous scope untouched, so a chained
select && deploy can never deploy to a stale target.
Where next
- Project structure — what each scaffolded file does.
- The Tarski language — relations, rules, invariants, namespaces.
- Scenarios & fixtures — the proof model in depth.
- Authoring with agents — pointing Claude Code, Codex, or Devin at the contract.