inhold Book a call

Quickstart

How do I try Inhold on my laptop?

Inhold runs on a laptop in about 15 minutes with Python 3.12 and synthetic data. You write context, watch a second agent get denied and export the pack.

Last checked 31 Oct 2026, written by Vivek

Inhold is being built. No customers yet. Repo goes public 9 Nov 2026.

Four steps

From install to a denied read

Install and start the API

git clone the repo, then inside a virtualenv:

pip install -e ".[dev]"
make serve

The API listens on 127.0.0.1:8700 and keeps its data in out/. make serve turns on the demo tokens; real installs use OIDC for people.

An agent writes context

In a second terminal:

API=http://127.0.0.1:8700
curl -s -H "Authorization: Bearer dev-prior-auth-agent" -H 'Content-Type: application/json' \
  -d '{"kind":"output","body":"Requesting MRI lumbar spine. Diagnosis M54.16.","purpose":"prior_auth"}' \
  $API/v1/context

The response carries "labels":["PHI"]. The purpose labels everything it writes PHI, and the tagger also spots the ICD-10 code. Copy the id.

A second agent is denied

curl -s -H "Authorization: Bearer dev-billing-agent" "$API/v1/context/$ID?purpose=billing"

A 403 that reads not found or not permitted, the same answer as for an id that does not exist. Its search for MRI returns nothing.

Run the whole demo

Or skip the curl and run the scripted demo:

python -m demo.run_demo

A nurse's correction becomes an approved skill, the billing agent is denied twice, the pack exports and verifies, and the run makes zero outbound connections.

What you will see

The demo, trimmed

Real output from main 92819c3. The full walk-through, with skills and the evidence pack by hand, is docs/GETTING_STARTED.md, public from 9 Nov 2026.

$ python -m demo.run_demo
Skill 'cite-conservative-therapy' v1 approved by nurse.rivera
billing-agent search (purpose=billing): 0 results
  get as purpose=billing: DENIED
  get as purpose=prior_auth: DENIED
Audit chain: 24 rows, ok=True
Same pack with row 3 rewritten and the chain rehashed: ok=False
Outbound connection attempts during the run: 0