Skip to content
VerifAIer
Home / Docs / Quickstart
Getting started

Quickstart

From install to your first attested assessment, in minutes, entirely local.

Getting started

Quickstart

VerifAIer runs entirely on your own infrastructure. In four steps you will install a client, point it at your local VerifAIer API, submit evidence, and read a deterministic assessment back.

Local-first. Nothing in this guide sends data to VerifAIer. The API and the SDK run inside your perimeter.

1. Install the SDK

There is one official SDK: vailidator.sdk.VerifAIerClient, and it ships inside the VerifAIer distribution rather than as a separate package. Installing VerifAIer installs it.

# from a checkout
pip install -e .

# the same distribution ships the CLI
vai --help
Not on PyPI or npm. Nothing is published to a package index, so pip install verifaier-sdk and npm install @verifaier/sdk do not resolve. Those two names belong to the OEM SDK Foundation under sdk/python and sdk/typescript, which is retired (WP-10I) and superseded by the client above. It still works for anyone who vendored it; it is not where new work goes, and there is no current TypeScript client. See Pricing, which states the same.

2. Point at your API

Give the governance accessor your local VerifAIer base URL and a sender. The twelve open operations are derived from the published contract, so the client cannot drift from it. default_sender() is the standard-library sender the SDK ships; see First audit for starting the API this points at.

from vailidator.sdk import VerifAIerClient
from vailidator.sdk.resolution import default_sender

client = VerifAIerClient.for_user("you")
gov = client.governance.with_base_url("http://localhost:8000").with_sender(default_sender())

3. Submit evidence

Send an operation to the evidence engine, then run the trust assessment against the envelope it returns. Both names are the ones api/public_contract.py::PUBLIC_OPERATIONS actually declares.

text = "The assistant claimed the migration completed and all 12 services are healthy."
audit = gov.audit_conversation({"input": text}).payload
res = gov.assess_trust({"evidence": audit["envelope"]}).payload

4. Read the result

Every assessment returns a deterministic, explainable result: the same inputs always yield the same output. The audit envelope above carries no compliance, risk or quality signal on its own, so passing it straight through reports unknown rather than a guess. That refusal is the trust engine's own documented behaviour for partial evidence, not a bug in this example.

print(res["trust_score"], res["trust_level"])
Captured output, executed offline against this exact code, mock provider: 0 unknown. A trust score with a real value comes from an envelope carrying compliance, risk or quality signals; see Product proof for a captured example with all three present.

Next: read the architecture overview or the full API reference.

Keep building.

Explore the architecture and API reference.