Briefcase AI SDK
Governance infrastructure for AI decisions: enforce controls, record context, replay later.
Install
pip install briefcase-ai
Quick Example
import briefcase
briefcase.observe("console") # send records to stderr (or "memory" / "runs.jsonl")
@briefcase.capture(decision_type="classify_text")
def classify(text: str) -> str:
return text.upper()
classify("hello world") # a decision record is emitted
capture works immediately — no briefcase.init() required. Call init() only
when you use the native runtime features (storage backends, snapshots). Without a
call to briefcase.observe(...) (or briefcase.setup(exporter=...)), @capture
records decisions but has nowhere to send them.
Exporters. briefcase.observe(...) accepts "console", "memory" (records
collected on exporter.records), a "*.jsonl" path, or any
briefcase.exporters.BaseExporter instance — subclass BaseExporter to ship
records to your own backend.
Evaluations and RL
Two bridges emit decision records from work that is not a single function call. Both use the exporter you already configured.
from briefcase.integrations.evals import EvalRun, from_inspect_log, replay
with EvalRun("gsm8k", model="claude-opus-5") as run: # one eval.case per case,
run.log_case("q1", inputs=q, outputs=a, passed=a == target) # one eval.run
print(run.summary()["pass_rate"])
replay(from_inspect_log("logs/2026-08-12_gsm8k.eval")) # inspect-ai .json/.eval
The parsers are stdlib only and never import the eval framework, so a log can be
replayed on a machine that has neither installed. See
examples/eval_runs/.
from briefcase.integrations.gym import GuardrailGymEnv, capture_episodes
env = GuardrailGymEnv(guardrail, tasks, injections) # a guardrail as a gym.Env
env = capture_episodes(env) # rl.step / rl.episode records
Needs pip install briefcase-ai[gym]. See examples/rl_gym/.
capture_episodes exports on a background thread by default, since step capture
is on the hot path. A script that exits right after close() can lose its
records; pass capture_episodes(env, async_capture=False) in short runs.
EvalRun already defaults to async_capture=False for that reason.
Logging
The library is silent by default (it installs only a NullHandler). Turn on
visible logs explicitly:
import briefcase
briefcase.enable_logging("DEBUG") # or set BRIEFCASE_LOG_LEVEL=DEBUG
Using with AI tools (Cursor, Claude Code, Codex, …)
This repo ships machine-readable usage guidance: llms.txt /
llms-full.txt, an AGENTS.md, and copy-paste
editor rules under docs/llm/. An MCP server is available via
pip install briefcase-ai[mcp] then briefcase-mcp.
Extras
| Extra | Description |
|---|---|
replay |
Deterministic replay engine for recorded decisions |
drift |
Drift scoring and cost calculation for model outputs |
sanitize |
Built-in PII redaction utilities |
otel |
OpenTelemetry helpers |
storage |
Rust-backed SQLite storage engine |
validate |
Prompt validation engine |
guardrails |
Guardrail framework, wrappers, and registries |
rag |
Versioned embedding pipeline and instrumented retrieval |
rag-chroma / rag-pinecone / rag-weaviate |
Vector-store adapters (each adds its client) |
correlation |
Workflow and trace correlation helpers |
external |
External data snapshot tracking |
events |
Structured event type and emitter interface |
kafka / webhook / gcp-logging |
Event transports and the Cloud Logging exporter (webhook is stdlib) |
routing |
Router protocol, agent router, versioned policy registry |
opa |
OPA HTTP router with cached decisions and internal-router fallback (adds httpx) |
lakefs |
lakeFS versioned storage client, branch manager, lineage, staged commits |
vcs |
VCS client base protocol plus DVC, Nessie, Pachyderm, ArtiVC, DuckLake, Iceberg, and git-LFS adapters |
vcs-dvc / vcs-pachyderm / vcs-ducklake / vcs-iceberg |
Per-provider VCS clients (the rest are HTTP/subprocess based) |
gym |
Gymnasium bridge: guardrail env adapter and RL episode capture |
evals |
Eval-harness bridge: EvalRun logger, inspect-ai / lm-eval parsers (adds zstandard for .eval archives on Python < 3.14) |
bitemporal |
Bitemporal evidence store, as-of views, append-only corrections |
bitemporal-iceberg |
pyiceberg-backed bitemporal store (any supported catalog) |
bitemporal-glue |
AWS Glue catalog auth for the Iceberg backend (adds boto3) |
kdb |
kdb+ bitemporal backend (adds KX-licensed pykx; excluded from all) |
compliance |
Examiner bundles joining decision, evidence, and policy version |
compliance-kms |
KMS-signed examiner bundles against your own AWS KMS key (adds boto3) |
controls |
Gateway, quota, throttle classification, and retry (no extra dependencies) |
integrity |
Tamper-evident hash chains, canonical JSON, Ed25519 signing over digests and JSON manifests (signing adds pynacl) |
langchain / crewai / llamaindex / autogen / ag2 / pageindex / openai-agents |
Framework auto-instrumentation via briefcase.auto (each adds its framework) |
mcp |
MCP server (briefcase-mcp) exposing the SDK to AI agents |
dev |
Dev tooling: pytest, mypy, flake8, moto |
all |
Installs every optional extra listed above except kdb |
Most features are native- or pure-Python-backed and ship with the base package —
their extras (replay, drift, sanitize, storage, routing, bitemporal,
compliance, …) are convenience groupings that pull in no additional
dependencies. The extras that install third-party packages are otel,
lakefs, bitemporal-iceberg, bitemporal-glue, kdb, compliance-kms,
gym, evals, mcp, opa, kafka, gcp-logging, integrity, the rag-* and vcs-*
store adapters, and the framework auto-instrumentation extras.
Managed platform
Every library feature runs against infrastructure you own: storage
backends (in-memory, SQLite, pyiceberg, Glue-authenticated Iceberg, kdb+),
KMS-signed examiner bundles, guardrails, RBAC/ABAC/OPA policy evaluation,
routing, replay, framework auto-instrumentation (briefcase.auto), lakeFS
branching and lineage, vector-store and VCS adapters, event transports, and
the controls layer, in both Python and TypeScript
(@briefcase-ai/controls).
The commercial offering is the hosted platform, not gated code: a managed control plane, catalog provisioning and credential brokering, operational runbooks (DR failover, catalog migration, key rotation), certified retention and regulator attestations, licensed market-data ingest (Bloomberg BPIPE, Refinitiv, ICE), and SOC 2 / FedRAMP posture with SLA support.
Contact sales@briefcasebrain.com for the managed platform.
Telemetry
The SDK can report anonymous usage metrics (SDK version, OS, architecture, backend
type) to help prioritize development. No personal data or decision content is ever
collected. Telemetry is only transmitted when a collection endpoint is configured
via BRIEFCASE_API_URL (it defaults to localhost, i.e. a no-op), and you can
disable it entirely at any time:
export BRIEFCASE_TELEMETRY=0 # also accepts: false, no, off (case-insensitive)
Links
- Docs: briefcaseai.io
- GitHub: github.com/briefcasebrain/briefcase-ai-sdk
- Contributing: CONTRIBUTING.md
Release files for briefcase-ai 4.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| briefcase_ai-4.3.1.tar.gz | 335.6 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| briefcase_ai-4.3.1-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| briefcase_ai-4.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| briefcase_ai-4.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| briefcase_ai-4.3.1-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| briefcase_ai-4.3.1-cp39-abi3-macosx_10_12_x86_64.whl | CPython 3.9 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 40.5 MB
Release files / briefcase_ai-4.3.1.tar.gz
| Download URL | briefcase_ai-4.3.1.tar.gz |
|---|---|
| Size | 335.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7c581d8b886a9155f6773fa1599b429d1c414d26988357baa62031b4e20e1d91
|
|
BLAKE2b-256 checksum How to use checksums |
43e991f0704ded31d0b53f021efeef82adaa989e9793343b66acba874f0005db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / briefcase_ai-4.3.1-cp39-abi3-win_amd64.whl
| Download URL | briefcase_ai-4.3.1-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 7.6 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
cc3092b5dc655fbae443c68158d8a5cac9640bf0cfcb9e54dda6294eb60431b7
|
|
BLAKE2b-256 checksum How to use checksums |
45c7ed2f6cb1326a82eb9bf98787c532021f6e33f6a879d563dbeb49cacdc0bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / briefcase_ai-4.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | briefcase_ai-4.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
8cc019cfaa4fc325c12d1ba1c103d89bd525a6a84b899090073221dbc4d08e5b
|
|
BLAKE2b-256 checksum How to use checksums |
312ea54bf18997d6caf6d11316df1a347813f8db1ad44464d57cce8bdfe216f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / briefcase_ai-4.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | briefcase_ai-4.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 8.4 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
33bb879ea397e026f04a6cc36e4892e2f14e0c67bbdb73f9e34c91dd3d15910d
|
|
BLAKE2b-256 checksum How to use checksums |
952d36173066cc0fba09bd4509b7a87d915262f37f8f8debed7dfe39cb388629
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / briefcase_ai-4.3.1-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | briefcase_ai-4.3.1-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 7.9 MB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
94a8c96f100bf228df663053cda6bf2f07f4265a9004296e80dc5bf29cc46826
|
|
BLAKE2b-256 checksum How to use checksums |
182aba7dd9c449aa6811a8614d05b7c43a515a3488c1e8200ce627b53b58fe5e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / briefcase_ai-4.3.1-cp39-abi3-macosx_10_12_x86_64.whl
| Download URL | briefcase_ai-4.3.1-cp39-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 8.0 MB |
| Tags | CPython 3.9 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
cd15192f83c210ef592e349eacf3d4f08d37f392c9f4448a8d74a51869fc6dca
|
|
BLAKE2b-256 checksum How to use checksums |
af96f2111cf8661b60f574237efd87070ce3aca87bc7335c3fcfe55f3d49a72f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log