Framework Integrations
Vienna OS connects to your agent frameworks, notification channels, and deployment pipelines. Any system that makes HTTP requests can integrate.
Agent Frameworks
OpenClaw
First-class native integration. OpenClaw agents submit intents through the Agent Intent Bridge.
curl -X POST https://console.regulator.ai/api/v1/agent/intent \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VIENNA_API_KEY" \
-d '{
"action": "send_email",
"source": {"platform": "openclaw", "agent_id": "agt-123"},
"tenant_id": "prod",
"parameters": {
"to": "customer@example.com",
"subject": "Your order has shipped"
}
}'LangChain
Wrap Vienna's Intent API as a LangChain Tool for governed agent execution.
from langchain.tools import BaseTool
import requests
class ViennaTool(BaseTool):
name = "vienna_governed_action"
description = "Execute actions through Vienna OS governance"
def _run(self, action: str, **kwargs) -> str:
response = requests.post(
"https://console.regulator.ai/api/v1/agent/intent",
headers={"Authorization": f"Bearer {VIENNA_API_KEY}"},
json={
"action": action,
"source": {"platform": "langchain"},
"tenant_id": "prod",
"parameters": kwargs
}
)
return response.json()CrewAI
Route high-risk crew actions through Vienna's approval pipeline before execution.
from crewai import Agent, Task, Crew
import requests
def governed_callback(output):
response = requests.post(
"https://console.regulator.ai/api/v1/agent/intent",
headers={"Authorization": f"Bearer {VIENNA_API_KEY}"},
json={
"action": output.get("action", "crew_task"),
"source": {"platform": "crewai"},
"tenant_id": "prod",
"parameters": output
}
)
result = response.json()
if result["data"]["status"] == "denied":
raise Exception(f"Governance denied: {result['data']['reason']}")
return result["data"]AutoGen / Custom
Any framework that makes HTTP requests integrates via the REST API.
const vienna = {
async submitIntent(action: string, parameters: any) {
const response = await fetch("https://console.regulator.ai/api/v1/agent/intent", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${process.env.VIENNA_API_KEY}`
},
body: JSON.stringify({
action,
source: { platform: "autogen", agent_id: "your-agent" },
tenant_id: "prod",
parameters
})
});
const result = await response.json();
if (result.data.status === "denied") {
throw new Error(`Action denied: ${result.data.reason}`);
}
return result.data;
}
};Notifications & Deployment
Slack
T1/T2 approval requests sent to Slack with interactive buttons. Real-time governance notifications.
GitHub
Governed deployments with warrant metadata. PR status checks and audit trail comments.
Approval request emails, execution notifications, and daily governance digest.
Webhooks
Generic webhook endpoints for custom integrations and external monitoring.
TypeScript SDK
@vienna-os/sdk
Full TypeScript SDK with typed client, intent submission, policy management, fleet monitoring, compliance reporting, and approval workflows.
import { ViennaClient } from '@vienna-os/sdk';
const vienna = new ViennaClient({
baseUrl: 'https://console.regulator.ai',
apiKey: process.env.VIENNA_API_KEY!
});
// Submit governed intent
const result = await vienna.intent.submit({
action: 'deploy_service',
parameters: {
service: 'api-gateway',
environment: 'production',
strategy: 'rolling'
}
});
// Wait for approval if required
if (result.status === 'pending_approval') {
const approval = await vienna.approvals.wait(result.approvalId, {
timeoutMs: 300_000 // 5 minutes
});
console.log(`✅ Approved by ${approval.approver}`);
}
// Check execution result
console.log(`🔒 Warrant: ${result.warrant.warrantId}`);
console.log(`✨ Result: ${result.executionResult}`);Need a custom integration?
Vienna OS exposes a full REST API. Any system that makes HTTP requests can integrate. Check out our interactive API explorer to get started.