rotascale

Developers — SDKs

Four packages, one vocabulary.

All open source. The engine, the evidence store and the console are the product; the clients are not, because a governance client you cannot read is a governance client you cannot check.

This page is the argument. The Python SDK reference is the detail, kept next to the code rather than next to the marketing.

rotascale — Python
The reference client. Witness, authorize, outcome, and the capability extra when a grant names a resource and you want the token verified. reference →
@rotascale/sdk — TypeScript
The same vocabulary for Node and the edge. reference →
rotascale-mcp — MCP server
Exposes governance as MCP tools, so an agent host can ask for authority without an SDK dependency. reference →
rotascale-mcp-proxy — MCP proxy
Sits between the agent and its MCP server. It reads the tool name off the wire and the agent gets no vote — which is why its decisions record scope as observed rather than asserted, and why it is a genuine enforcement point rather than a convenience. reference →

Published under the company namespace: rotascale on PyPI, @rotascale on npm. The product is RotaGrant; the packages are Rotascale's.

The runtimes you already have

One line each, and the adapter captures what your framework was already doing. You keep the orchestration you chose — the governed unit is the action, not the framework.

Models
watch_openai, watch_anthropic, watch_gemini, watch_bedrock — and any endpoint that speaks the OpenAI shape, which covers most self-hosted serving.
Agent frameworks
watch_langchain, watch_langgraph, watch_adk, watch_crew, watch_strands, watch_autogen.
Tools
watch_mcp for MCP from the client side, and the proxy for governing a server without touching the agent at all.

None of them asks for authority. That stays an explicit call, because a middleware that quietly authorised would turn an import into a spend decision. Capture fails open; enforcement fails closed. every adapter →