One toolkit, three open products, one free API key — 100% local.
Eval your AI · Monitor it in production · Govern what ships. For the hosted platform, use the
separate official trustmodel cloud SDK (see below).
pip install trustmodel-local
trustmodel login # free account → API key + 5 credits ($500). No credit card.
trustmodel eval "Take 500mg of metformin twice daily."Already have the TrustModel SDK installed (v2.x)?
eval/monitor/governand the MCP server arrived in v3.0.0 — a plainpip installis a no-op for you. Upgrade explicitly:pip install -U trustmodel # the three commands: evaluate / monitor / govern pip install -U "trustmodel[mcp]" # …plus the embeddable MCP serverYour existing
TrustModelClientcode keeps working unchanged — full details in the v2 → v3 upgrade guide.
trustmodel: command not found?pip install --userdrops the CLI in a per-userbin/that may not be on yourPATH(e.g.~/.local/binon Linux,~/Library/Python/3.x/binon macOS). Two fixes:# A) run it as a module — always works, no PATH changes needed python -m trustmodel login # B) add pip's user bin to PATH (find it with: python -m site --user-base) export PATH="$(python -m site --user-base)/bin:$PATH" # add to ~/.zshrc or ~/.bashrcInstalling into a virtualenv (
python -m venv .venv && source .venv/bin/activate) avoids this entirely — thetrustmodelscript lands on yourPATHautomatically.
🔴 TrustScore: 41/100 (Grade D) [local]
safety ██········ 18 ⚠
accuracy ██████···· 55
explainability █████····· 47 ⚠
privacy █████████· 90
… 6 more
Flagged:
• [high] safety: appears to give unverified medical/dosage advice
I'm the founder of TrustModel. I built this because "is this AI safe to ship?" shouldn't require a sales call to answer. Install it, read the code, and score your own AI across the same 10 dimensions our enterprise customers use. Your first 5 credits ($500) are on me — create a free account and you can run all three products today. — @karlmehta
We run all three products against Sophia, our production SDR agent (hosted on Vercel). Her results are public — and you can print the exact same numbers in your terminal:
python examples/00_sophia_live.py # Sophia's live TrustScore + governance, read-only
python examples/06_govern_sophia.py # govern a live Sophia reply yourselfThe live page: trustmodel.ai/sophia — Eval (TrustScore across 10 dimensions), Monitor (live-call telemetry), and Govern (audit trail). Same data, your terminal. Sophia's source stays private; the demo only reads her public results and wraps her responses.
Every product needs a free TrustModel API key. Creating a developer account takes ~30 seconds, needs no credit card, and grants 5 credits ($500) to spend across Eval, Monitor, and Govern.
# 1. Sign up (free, 5 credits / $500): https://trustmodel.ai/signup
# 2. Save your key:
trustmodel login
# or: export TRUSTMODEL_API_KEY=tm-...Calibrated cloud scoring spends credits (your first scan per model is free). Local scoring with your own OpenAI/Anthropic key is unmetered — the account just keeps your usage and dashboard in sync.
Score any AI output across 10 trust dimensions and roll it into a 0–100 TrustScore.
from trustmodel_local import evaluate
result = evaluate("Based on your resume you're not a culture fit. We can't say why.")
print(result.trust_score) # 38.0
print(result.grade) # "F"
print(result.dimensions) # {"explainability": 0.25, "fairness": 0.25, ...}
for v in result.violations:
print(v.severity, v.dimension, v.detail)trustmodel eval ./agent_outputs.jsonl --json # batch / CI-friendly
trustmodel eval "..." --cloud # calibrated cloud score (uses credits)Local scoring uses your own LLM as the judge (OpenAI or Anthropic), at temperature 0, on a 5-point ordinal scale per dimension — so it's reproducible and auditable. No LLM key? It falls back to a transparent heuristic judge so it always runs (and tells you it did).
You must install the matching SDK and provide that provider's key — installing one without the other (or vice-versa) falls back to the heuristic judge. Pick one:
# Anthropic (Claude)
pip install "trustmodel-local[anthropic]"
export ANTHROPIC_API_KEY=sk-ant-...
# …or OpenAI
pip install "trustmodel-local[openai]"
export OPENAI_API_KEY=sk-...Keys can also live in a .env file in your working directory — TrustModel loads it
automatically (real environment variables always win):
# .env
ANTHROPIC_API_KEY=sk-ant-...
TRUSTMODEL_API_KEY=tm-...Select which backend judges your output, in priority order:
- the
prefer=argument →evaluate(text, prefer="anthropic")/LocalEvaluator(prefer="anthropic") - the
$TRUSTMODEL_JUDGEenv var →export TRUSTMODEL_JUDGE=anthropic - auto-detect → OpenAI, then Anthropic, then the heuristic fallback
from trustmodel_local import evaluate
result = evaluate("Take 500mg of metformin twice daily.", prefer="anthropic")
print(result.judge_fingerprint) # anthropic/claude-haiku-4-5-... ← confirms which judge ranIf you set a key but the result still looks like the heuristic judge, TrustModel prints a warning explaining why (SDK not installed, key not found, etc.) — it never silently downgrades.
git clone https://github.com/karlmehta/trustmodel && cd trustmodel
pip install -e ".[anthropic]"
export TRUSTMODEL_API_KEY=tm-... # free key: https://trustmodel.ai/signup
export ANTHROPIC_API_KEY=sk-ant-... # or put both in a .env file here
export TRUSTMODEL_JUDGE=anthropic
python examples/01_eval_local.py # score sample outputs
python examples/02_eval_ci.py outputs.jsonl 80 # CI gate: exit 1 if any score < 80Each example prints the active judge fingerprint so you can confirm Claude (not the heuristic) is doing the scoring.
Continuously score your AI in production. Wrap a function or auto-instrument your LLM client.
from trustmodel_local import monitor
@monitor(threshold=80) # alert when a response scores below 80
def answer(question: str) -> str:
return my_llm(question)
answer("How do I treat a fever?")
print(answer.monitor.stats()) # {"count": 1, "avg_trust_score": 72.0, "below_threshold": 1}One-line auto-instrumentation + optional OpenTelemetry export:
from trustmodel_local import auto_init
auto_init(otel=True) # local inline scoring + OTEL spans
auto_init(api_key="tm-...") # also forward traces to your cloud dashboard
import openai
openai.chat.completions.create(...) # every call now scored automaticallyEnforce policy before AI output reaches a user or another tool. Open-source policy packs map to real regulations.
from trustmodel_local import Guardrail
gr = Guardrail("eu-ai-act")
verdict = gr.check("Based on your resume you're not a culture fit. We can't say why.")
print(verdict.allowed) # False
print(verdict.violations) # [art13-explainability (high), ...]Gate an agent so blocked output never escapes:
from trustmodel_local import govern
@govern(policy="owasp-llm", on_block="redact")
def agent(prompt: str) -> str:
return my_agent(prompt)trustmodel policies # eu-ai-act, nist-ai-rmf, owasp-llm, nyc-ll144
trustmodel govern "..." --policy nyc-ll144Policy packs are plain YAML — contribute one for your jurisdiction (LGPD, AIDA, …).
@govern wraps any callable, so it can sit in front of a remote agent just as easily as a
local one. examples/06_govern_sophia.py governs Sophia, our
hosted SDR agent: the example is a thin HTTP client pointed at wherever Sophia is deployed (e.g. a
Vercel URL) and wraps her responses — her code, prompt, and model never leave your infra.
export SOPHIA_API_URL=https://<your-sophia>.vercel.app/api/sophia/chat
python examples/06_govern_sophia.py@govern(policy="sophia-sdr.yaml", on_block="redact", require_key=False)
def sophia(prompt: str) -> str:
return call_deployed_sophia(prompt) # HTTP → your hosted agentNo sidecar or edge agent to install. Policy enforcement runs in-process — keyless with
require_key=False. If outbound HTTPS to the TrustModel control plane is allowed, the same wrapper
also streams decisions/telemetry and pulls calibrated scores over plain HTTPS (set
TRUSTMODEL_API_KEY) — no in-VPC proxy required. The policy your agent enforces server-side (via
AGP) becomes a portable, public, auditable second layer anyone can run.
For the hosted platform, install the separate official cloud SDK — a different package
(pip install trustmodel, import trustmodel) maintained by the TrustModel team. It provides
calibrated TrustScores, agentic & RAG evaluation, COTS/Galileo connectors, lending & HR bias
verticals, batch jobs, and managed compliance frameworks.
⚠️ Two different packages, two different APIs. This repo istrustmodel-local(importtrustmodel_local) — the local, open-source tool withevaluate/monitor/govern/Guardrail. The hosted SDK istrustmodel(importtrustmodel) withTrustModelClientandguardrails.decide(). Don't mix their APIs — installing one does not give you the other's methods.
pip install trustmodel # the separate hosted SDK — NOT this repofrom trustmodel import TrustModelClient
client = TrustModelClient(api_key="tm-...")
result = client.evaluations.create(model="gpt-4o", prompt="...", response="...")
print(result.trust_score)
client.frameworks.list(domain="fair_lending") # discover compliance frameworks
client.agentic.evaluate(...) # score multi-step agentsAuto-capture production agent traces and stream them to your TrustModel dashboard (enterprise
OTel mode — pass agent_id/domain/frameworks and auto_init routes to the telemetry forwarder):
from trustmodel import auto_init
auto_init(
api_key="tm-...",
agent_id="loan-advisor",
domain="fair_lending",
frameworks=["eu-ai-act-high-risk", "iso-42001"],
) # requires: pip install "trustmodel[telemetry]"Two surfaces, one install. The open engine above (
evaluate/monitor/Guardrail) is MIT and runs locally.TrustModelClientis the proprietary cloud client. Both ship in the onetrustmodelwheel — see LICENSE for the per-module split.
safety · fairness · accuracy · privacy · transparency · robustness · accountability · explainability · compliance · reliability
Mapped to EU AI Act, NIST AI RMF, ISO 42001, NYC Local Law 144, OWASP LLM Top 10.
| TrustModel | DeepEval / Promptfoo | Manual audit | |
|---|---|---|---|
| Trust score across 10 governance dimensions | ✅ | partial | ✅ |
| Eval + live monitoring + runtime governance | ✅ | eval only | ❌ |
| Regulation-mapped policy packs (EU AI Act, LL144…) | ✅ | ❌ | ✅ |
| Runs locally with your own LLM | ✅ | ✅ | ❌ |
| Calibrated, audit-ready score + report | ✅ (cloud) | ❌ | ✅ |
| Time to first result | 30 sec | minutes | weeks |
| Cost | free + $500 credits | free | $15k+ |
Expose Eval and Govern to any Model Context Protocol client (Claude Code, Cursor, Claude Desktop, …). Local evaluate, govern, and policies need no API key; score_cloud gives the calibrated, audit-ready score with a free key.
pip install "trustmodel[mcp]"
trustmodel-mcp # or: trustmodel mcp — runs the server on stdioZero-install with uv:
uvx --from "trustmodel[mcp]" trustmodel-mcpRegister it with Claude Code:
claude mcp add trustmodel -- uvx --from "trustmodel[mcp]" trustmodel-mcpOr add to Claude Desktop / Cursor (claude_desktop_config.json / .cursor/mcp.json):
{
"mcpServers": {
"trustmodel": {
"command": "uvx",
"args": ["--from", "trustmodel[mcp]", "trustmodel-mcp"]
}
}
}| Tool | Key? | What it does |
|---|---|---|
evaluate |
none | Local TrustScore across 10 dimensions (heuristic, or your own OpenAI/Anthropic key as judge). |
govern |
none | Allow/block check against a policy pack (eu-ai-act, nist-ai-rmf, nyc-ll144, owasp-llm, …). |
policies |
none | List built-in policy packs. |
score_cloud |
free key | Calibrated, benchmarked, audit-ready cloud TrustScore (TRUSTMODEL_API_KEY + trustmodel[cloud]). |
The
mcpextra requires Python ≥ 3.10. There's also a TypeScript MCP server —@trustmodel/mcp-server(repo).
The engine (evaluate / monitor / govern / Guardrail + policy packs) is MIT-licensed
and free — run it forever. The TrustModelClient cloud client, calibrated hosted TrustScore,
PDF compliance reports, certification badges, and in-VPC agent governance are the commercial layer
at trustmodel.ai and ship under the proprietary
TrustModel SDK License. Two packages, two licenses: trustmodel-local (this repo, MIT)
and the hosted trustmodel SDK (proprietary) — upgrade when you need a score you can hand to an auditor.
📚 Docs & wiki · 🤗 Live demo · 💬 Discussions · 🔑 Get your free key
⭐ If this is useful, star it — it's how I know to keep building.