OpenInterpretability
  • Ekbasis
  • Guide
  • Pricing
  • Research
  • Lab
  • Tools
  • Notes
  • Registry
  • Manifesto
Sign inGet API keyAPI key
OpenInterpretability

Ekbasis API: know what an action will do before your agent runs it. From an independent lab for AI-agent safety. Open weights, Apache-2.0.

Get your API key
Ekbasis API
  • Console · sign in
  • Getting started
  • Pricing
  • For agents (agents.md)
  • Results and models
  • Client and CLI
  • Cookbook
The lab
  • About the lab
  • Open tools
  • Observatory
  • ProbeBench
  • InterpScore
  • Academy
Research
  • Manifesto
  • Roadmap
  • Papers & posts
  • Docs
Community
  • GitHub org
  • Notebooks
  • SDK (openinterp)
  • HuggingFace
© 2026 OpenInterpretability — Apache-2.0 for code, CC-BY 4.0 for docs.Built in public.
Introducing the Ekbasis API · read the announcement

Know what an action will do before your agent runs it.

Ekbasis is a consequence model. Send the state and the action; get a calibrated probability for what happens — lost work, a failed payment, a leaked file — in one call.

Get your API key How to use it (5 min)

$0.30 per 1M input tokens · no output charge · pay in USDC or USDT · sign in with GitHub, Google or email

State you send

Working tree: app.py, utils.py and README.md have uncommitted changes (2 hours of edits, never committed or stashed).

About to: git reset --hard

Question

Will uncommitted work be lost?

Ekbasis answers

uncommitted changes are gone98.5%
nothing is lost1.5%

One forward pass · 135 input tokens ≈ $0.000005 · 0.19 s on the server

Real responses of Ekbasis-27B on the hosted API, recorded on 10 Oct 2026. Nothing is generated: the answer is read from the model in one pass.

Measured, pre-registered, failures published too

Studies run by us and one third-party benchmark: every plan was hashed before the runs, and the hypotheses that failed are published next to the ones that held. Read them before you rely on the numbers.

6/24 → 1/24

tasks where Claude Sonnet did harm on real apps (Gitea, Nextcloud, Roundcube): 25.0% → 4.2%

secondary contrast, one run per task; for Claude Haiku the pre-registered hypotheses failed

Read the paper, failures included →

24/36 → 2/36

harmful runs by Claude Haiku operating a real Kubernetes cluster: 66.7% → 5.6%

asking the human every time also reached 0%, with 3× the questions; matching a Sonnet guard failed by one case

Read the study, failures included →

~50% → 0–6%

harmful runs by an open agent (GLM-5.3-Flash) in each of 3 runs of the same 47 tasks on our demo apps: 23, 24, 26 → 3, 0, 0 — two runs through this API

the same tasks and agent each time; apps built for the study, consequences hidden from the agent

Read the study, failures included →

97.5 F1

on AgentDojo prompt injections in TS-Bench, a third-party benchmark (GPT-4o published: 56.6); rewriting the injections changed none of 301 decisions

weak on its AgentHarm and ASB subsets (F1 54.6 and 64.3); our untested reading: those labels follow the request or the tool, not the step

Read the benchmark, failures included →

How it works

Not a chatbot and not a judge. A forecaster: it tells you what will happen, and your code — or a person — decides what to do about it.

1

Describe the state

The facts the action touches: files, balances, branches, recipients, rules. End with “About to: …”. The CLI writes it for you for git.

2

Ask typed questions

Choice among outcomes you list, yes/no with criteria, or a count. Several questions about one state go in one request.

3

Act on calibrated odds

Each option gets a probability. High risk: stop and ask the human. Low confidence: a fact is missing — go read it. Can’t foresee: treat it as risky.

Plug it in where your agent acts

Same key, same endpoint. Start with the guard in a minute; go to the API when the action is not a command.

Git and shell guard

One command. The CLI reads your repository and writes the state for you.

pip install ekbasis
export EKBASIS_URL=https://openinterp.org/api/v1
export EKBASIS_API_KEY=ekb_...

ekbasis git-check -- "git reset --hard"
# Ekbasis: RISKY (lose uncommitted work: 99%)  → exit 2

Claude Code hook

Before every Bash command, the hook asks you only when something could be lost.

// ~/.claude/settings.json
{"hooks": {"PreToolUse": [{"matcher": "Bash",
  "hooks": [{"type": "command",
             "command": "ekbasis-claude-hook", "timeout": 30}]}]}}

MCP server

check_git_commands, predict_consequences and preflight_command for any MCP client.

claude mcp add --scope user ekbasis \
  -e EKBASIS_URL=https://openinterp.org/api/v1 \
  -e EKBASIS_API_KEY=ekb_... -- ekbasis-mcp

Migration guard (GitHub Action)

On every pull request: will its PostgreSQL migrations fail or lose data? One comment, before the merge. How it works and what we measured →

- uses: OpenInterpretability/ekbasis/actions/[email protected]
  with:
    api-key: ${{ secrets.EKBASIS_API_KEY }}
# Risky: …/05_add_visit_id — may fail on existing data (96%);
#        nothing in the file would be applied

REST API

Any action, any language: describe the state, ask typed questions.

curl https://openinterp.org/api/v1/v1/systemone \
  -H "Authorization: Bearer $EKBASIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"state": "Balance: $1,020.00. About to: wire $1,000 + $25 fee.",
       "questions": {"q": {"type": "choice",
         "instructions": "What happens with the wire?",
         "options": ["succeeds", "fails: exceeds the balance"]}}}'

Building an agent? Point it at openinterp.org/ekbasis/agents.md — the same guide written for language models.

The mistakes it is built to see

Git

reset, checkout, clean, branch -D, stash drop, force-push over commits the remote holds

Files and shell

rm and redirects over data without a backup, unset variables in paths, symlinks

Databases

DELETE or UPDATE without a narrow WHERE, DROP, migrations on real data

Payments and apps

transfers and fees, refunds in flight, cancellations that take the return flight too

Messages and sharing

reply-all with an external recipient, links that expose more than the folder you meant

Cloud and infra

the wrong kubectl context, compose down -v on a volume with data, overwrites on S3

Measured in 21 domains — 168 of 168 scored scenarios right, written by us with the deciding facts in the state: every result · every example with its real answer: the guide.

Pricing

$0.30 per 1M input tokens

No output charge: the model only reads. A check is about 1,500 tokens, so roughly $0.45 per 1,000 checks.

  • Prepaid credit packs: $5 · $20 · $50 — no subscription, no minimum, credits never expire
  • Pay in USDC or USDT on Polygon, Arbitrum, Base or Ethereum — no card
  • Out of credits it fails closed: “cannot foresee”, treated as risky
  • Self-host the open weights for free (27B · FP8 · INT4 · MLX)

Start in three steps

  1. 1. Sign in at the console with GitHub, Google or a one-time email code.
  2. 2. Create an API key (shown once) and add credits.
  3. 3. Run your first check with the CLI or one curl.
Open the consolePricing details →

Built to be checked

Open weights

Apache-2.0. Run it on your own GPU or Mac and nothing leaves your machine.

Pre-registered

Plans hashed before the runs. The studies that missed their bars are published next to the ones that held.

Fails closed

No key, no credits, no answer in time: “cannot foresee”, which every tool treats as risky.

Contents never stored

The API logs metadata to bill and operate (time, account, tokens, latency) — never your states or questions.

A warning layer that can be wrong, not a security boundary. It is strongest where the state states the facts and weakest on domains far from its training — read the limits.

From OpenInterpretability

An independent lab for AI-agent safety. Ekbasis came out of our research on why agents fail; the papers, datasets and the other open tools are all public.

ResearchThe lab

Let your agent look before it leaps.

Get your API key Results and models