Problem Deploy Demo Regulations Security Pricing GitHub FAQ

PlainReal  /  Deployment Modes

Start anywhere.
Promote what matters.

Two capture layers. One record. Same CLI to verify.
Auto-instrument records every LLM call made through the instrumented client, with zero code changes, for EU AI Act Article 12 and GDPR record-keeping. The decorator wraps specific regulated functions, built for OCC examination and litigation. We recommend running both in production.

@plainreal.consequential  ·  Decorator plainreal run  ·  Auto-instrument
How it works

One artifact. Two capture points.

Both modes capture evidence at a different layer of the same call stack. Both produce a record signed with the same Ed25519 algorithm, committed to the same WORM storage, verifiable with the same CLI.

Business function called e.g. approve_loan(), flag_fraud() Business layer
②D
Decorator capture Business inputs cryptographically hashed and committed into the authorization token BUSINESS_LAYER
LLM client call OpenAI / Anthropic / any API
④A
Auto-instrument capture LLM request cryptographically hashed and committed at the client boundary LLM_LAYER
LLM responds Model output returned
🔐
record issued Ed25519-signed · WORM-committed · RFC 3161 timestamped Same artifact. both modes
② Decorator capture. BUSINESS_LAYER
@plainreal.consequential

Wraps your business function. Hashes the business inputs before the function runs. at the point where a regulated decision is being made, not at the LLM call. A tampered input produces no artifact. Sets capture_layer = BUSINESS_LAYER, consequential = true.

④ Auto-instrument capture. LLM_LAYER
plainreal run / PLAINREAL_AUTO_INSTRUMENT=1

Process-level monkey-patch of LLM client libraries. Captures every call at the client boundary. same pattern as ddtrace-run and opentelemetry-instrument. Zero code changes. Sets capture_layer = LLM_LAYER, consequential = false by default.

⛓️
Both modes produce the same record.

Same Ed25519 signing. Same S3 Object Lock COMPLIANCE mode WORM storage. Same RFC 3161 trusted timestamp. Same standalone plainreal verify CLI. The capture_layer field tells the auditor which forensic claim applies. The 4-pillar evidence chain is identical. Functions wrapped with the decorator skip auto-capture automatically. a ContextVar guard ensures exactly one record per call, never two.

Side by side

Choose your capture layer.

Not alternatives. complements. The question is which capture layer a given decision requires, not which product to use.

@plainreal.consequential
Decorator mode
plainreal run
Auto-instrument mode
Tagline
"Prove the decision."
"Capture every call."
Capture point
BUSINESS_LAYER
Business function boundary. before the function runs
LLM_LAYER
LLM client library boundary. every API call
Code change
One decorator per regulated function
@plainreal.consequential(..)
Zero
plainreal run python app.py or PLAINREAL_AUTO_INSTRUMENT=1
What it proves
Principal X was authorised to take action Y with input committed to hash H under policy version Z. The action executed against the same input. Cryptographic proof an examiner or opposing counsel can verify for themselves.
Every LLM call this process made was captured at the client boundary, signed, WORM-committed, and timestamped. Complete audit trail, right there.
capture_layer
BUSINESS_LAYER
LLM_LAYER
consequential
true
false (default)
Primary buyer
Chief Compliance Officer
General Counsel
Head of Risk
CISO
Security Architect
VP Engineering
Regulations
  • OCC Bulletin 2026-13 + Spring 2026 SRP. agentic AI supervision
  • NYDFS Part 500. NY-licensed entities
  • SOC2 CC6.1. non-human identity authorization
  • Litigation defense. The record holds up when opposing counsel challenges it
  • EU AI Act Article 12 (Annex III deferred to 2 Dec 2027)
  • GDPR Article 22. automated decisions
  • NIST AI RMF. audit trail controls
  • SOC2 CC4.1. audit logging coverage
Pricing
$20K/yr starter$40–80K/yr enterprise  ·  $15–25K 90-day pilot
Contact usEntry tier  ·  designed as path to decorator
Start here if…
You face OCC examination, NYDFS review, or litigation discovery for AI-assisted decisions.
EU AI Act Article 12 or GDPR Article 22 record-keeping is your near-term driver.
Get started

Two quickstarts. Same destination.

Both terminate at plainreal verify. the standalone CLI your auditor runs independently.

Recommended for regulated decisions
@plainreal.consequential
OCC · NYDFS · Litigation · SOC2 CC6.1
1
pip install plainreal
2
# Wrap the regulated function from plainreal import consequential @consequential( action_type="LOAN_APPROVAL", policy="credit-policy-v3", risk_level="HIGH" ) def approve_loan(application_id, amount): # your existing code unchanged ..

One decorator per regulated function. No changes to internal logic.

3
result = approve_loan("app_9f3a2c", 45000) print(result.record_id) # dp_9f3a2c1e-4b7d-4e8a · BUSINESS_LAYER · consequential=true
Verify independently using the CLI
plainreal verify dp_9f3a2c1e-4b7d-4e8a
Recommended for LLM audit logging
plainreal run
EU AI Act Art 12 · GDPR Art 22 · NIST AI RMF · SOC2 CC4.1
1
pip install plainreal
2
# Zero code changes to your application plainreal run python app.py # Or set the environment variable PLAINREAL_AUTO_INSTRUMENT=1 python app.py

Same pattern as ddtrace-run and opentelemetry-instrument. Every LLM call is captured.

3
# Record produced automatically per LLM call plainreal list-records --limit 5 # dp_7c3b1a2e · LLM_LAYER · consequential=false # dp_4e9d8f1c · LLM_LAYER · consequential=false
Same verify CLI. Same artifact format.
plainreal verify dp_7c3b1a2e
Run both.
One artifact per decision.

The decorator and auto-instrument are designed to run together. The ContextVar coexistence guard detects when a function decorated with @plainreal.consequential is in the call stack and suppresses the auto-instrument capture for that path. This means:

Decorated functions produce BUSINESS_LAYER records. the stronger evidence, the kind that holds up in litigation.

All other LLM calls produce LLM_LAYER records automatically.

One record per decision. Never two.

Recommended customer journey
1
Deploy auto-instrument Zero code change. EU AI Act Article 12 and GDPR Article 22 audit logging starts immediately. Every LLM call captured.
2
Identify regulated decision paths Loan approvals, fraud flags, refund authorizations. the 20% of code paths that face OCC examination or litigation discovery.
3
Promote to decorator Add @plainreal.consequential to those functions. BUSINESS_LAYER artifacts replace LLM_LAYER for those paths. Evidence designed for OCC and NYDFS examination.
4
Both run in production ContextVar guard handles coexistence automatically. No configuration needed.
Pricing

Three ways to start.

All tiers produce the same record, verified by the same standalone CLI. The tier determines evidence grade and support level.

Design Partner Pilot
Pilot
$15–25K
90 days · 50% upfront · by scope
  • Decorator mode (BUSINESS_LAYER)
  • Auto-instrument included
  • You define the artifact format
  • Built to your auditor's specification
  • Preferred annual pricing locked
  • Reference rights negotiated

Two design partners only

Enterprise
Enterprise
$40–80K / year starting
Contact for custom scope
  • Everything in Starter
  • Unlimited regulated decision paths
  • Dedicated support and onboarding
  • SOC2 evidence pack for your auditor (when PlainReal SOC2 is complete)
  • Multi-region WORM storage options (roadmap)
  • +Dedicated signing key available

Dedicated signing key: add-on, contact for pricing

Ready to start?

One conversation to see which deployment mode fits your environment and which regulatory deadlines to prioritise.