Quickstart
Three ways in. Each one ends with something you can see working; none needs a model key.
| Path | Time | You get |
|---|---|---|
| A. In the browser | 2 min | The ready example: every verdict SEIF gives, on one screen |
| B. In your coding agent | 5 min | Claude Code, Codex or Cursor asking SEIF before each task |
| C. In your application | 10 min | An HTTP runtime serving a versioned Context Build to your code |
A. In the browser (2 minutes)
- Open app.seifprotocol.com and create an account.
- On the welcome screen choose Open a ready example. It creates Aurora Clinic, a dental clinic with fictitious data, two agents (Customer service and Team) and five tests, and opens Context.
- Click each question under Try it:
| Question | Verdict | What it shows |
|---|---|---|
| how much is a cleaning? | Ready | The price is in hand, with its file and the date it was checked. |
| how much is an implant? | Out of date | The price exists, but nobody checked it within 90 days, so the agent does not receive it. |
| what is the maximum discount on whitening? | Sealed by rule | The team's margins never reach the customer agent. Switch Agent to Team and ask again: now it is Ready. |
| do you do clear aligners? | Nobody wrote this | Click Teach the answer: it becomes a dated section, the agent receives it, and a test proves it. |
- Open Proof: the context health, 5/5 tests and the one intended warning (the stale price). Paste a real conversation under Prove it with real questions to see which questions are covered.
- Open Connect to an agent → Turn the server on to get an MCP address and token for this project, with copy-ready recipes for each client.
To start your own project: New project, give it a name, Create. There is one kind of project: it opens on Context, where you link a GitHub repository, upload a folder of documents, or simply ask a question and teach the answer. Everything else is turned on inside the same project when you need it: agents (Agents), the AI, data and channels (Connections), going live (Service), builds and deployments (Agents → Build & deploy) and the WhatsApp Sales Kit (Team → turn the team on, or Routines → sales funnel).
B. In the agent you already use (5 minutes)
Requirements: this repository checked out (development builds) or the desktop app's bundled seif.
bin/seif init "Aurora" --template example --project ./aurora # or: --template exemplo (Portuguese)
bin/seif test --project ./aurora # ✓ 5/5 passed
bin/seif doctor --project ./aurora # healthy · 1 warning (the stale price)
bin/seif compass "how much is an implant?" --project ./aurora # STALE, and which date to renew
Register the project as an MCP server in Claude Code (Codex and Cursor take the same command line):
claude mcp add seif -- "$PWD/bin/seif" mcp --project "$PWD/aurora"
The server exposes context_compass, context_find, context_resolve, context_why, context_test, context_doctor, context_learn and context_report_gap. Its instructions — written in the project's language — tell the agent to call context_compass with the user's task first, work from what is in hand, treat out-of-date material as unconfirmed, answer naturally without exposing the mechanism, and when it cannot answer, use the profile's fallback message or report the gap with context_report_gap. bin/seif agents-md --project ./aurora writes an AGENTS.md that teaches any coding agent the repository. More in Agent-native SEIF.
A project in the web app has a hosted MCP endpoint instead (Context → Connect to an agent). It answers as the one agent profile you choose and never names material that profile may not receive.
C. In your application (10 minutes)
Build the context once, run it behind a small HTTP runtime, call it from your code.
bin/seif build --project ./aurora # immutable, digest-addressed Context Build
Run the Build (desktop: Deploy → Run locally, or Export runtime bundle and ./run.sh anywhere), then:
curl -s http://127.0.0.1:<port>/v1/context/resolve \
-H "authorization: Bearer $SEIF_RUNTIME_TOKEN" -H "content-type: application/json" \
-d '{"consumer":"atendimento","input":{"message":"how much is a cleaning?"}}'
The response carries provider-neutral messages for any model, the materials with reasons and digests, the layers with every stage, unknowns, the budget and a traceRef:
context = runtime.resolve(consumer="atendimento", input={"message": question})
if context["status"] == "BLOCKED":
hand_over_to_a_person(context["reason"]) # e.g. REQUIRED_CONTEXT_TRIMMED
reply = model.generate(context["messages"] + [{"role": "user", "content": question}])
runtime.report_consumption(context, sent_messages) # optional; otherwise "consumed" stays UNKNOWN
Runnable clients: curl, Python, TypeScript. Reference: Integration API · Python SDK · TypeScript SDK.
Next
- Why SEIF: where it fits next to agent runtimes and RAG.
- How resolution works: the pipeline, its guarantees and its limits.
- File-native projects: the repository format.
- Documentation index.