brane-core state, and one for the full future platform. This page covers both so you know exactly what you can use today.
Package
brane-core is the local, framework-independent Python runtime. It has no external service dependencies. It runs in your process and enforces policies before and after capability calls.
Implemented Today
All primitives and the core interception loop are implemented:RuntimeCapabilityEffectSideEffectScopeAgentActionDecisionwithallowanddenyPolicyContextPolicyCapabilityRegistryPolicyRegistryPolicyEngineInterceptRequestInterceptResultCapabilityInterceptorCallableCapabilityInterceptorCapabilityDeniedErrorCapabilityNotFoundError@runtime.capabilitydecorator@runtime.before_capabilitydecorator@runtime.after_capabilitydecoratorruntime.wrap_capabilityruntime.create_actionruntime.evaluate_action- Exact and wildcard policy target matching
- Policy priority ordering
- Deny-wins composition
Partially Implemented
Planned Next
- Audit events and pluggable
AuditSink approval_requiredDecision type- Async function wrappers
- Error stage policy interception
transform_inputandtransform_outputDecision typesredactDecision type- Capability grants and
GrantRegistry - Framework adapter base contract
- LangGraph adapter
- CrewAI adapter
- OpenAI Agents SDK adapter
- MCP adapter
Future Platform
- Brane Cloud: remote policy evaluation
- Audit ingestion API
- Approval workflow API
- Policy bundles and versioning
- Brane Dashboard
- Brane CLI
- Model governance
- Memory governance
- Retrieval governance
- Filesystem governance
- Secret governance
- Sandbox governance
- Browser and computer-use governance
- Multi-agent governance
Known Limitations
- Synchronous callables only. Async wrappers are planned.
- No streaming support. Streaming interception is planned.
- No input mutation.
transform_inputdecisions are planned. - No output mutation.
redactandtransform_outputare planned. - No approval pausing.
approval_requireddecisions are planned. - No audit persistence.
AuditSinkis planned. - No agent grant system. Scope checking is name-match only today.
- Install command may change before stable release.
Open Questions
- Will the package name be
brane,brane-core, orbrane-runtime? - Will dataclasses migrate to Pydantic models?
- Should allow-by-default remain when no policy matches?
- What should
approval_requireddo before approval providers exist? - Which integration ships first?
