Skip to main content

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

Live

First-class native integration. OpenClaw agents submit intents through the Agent Intent Bridge.

OpenClaw Integrationbash
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

Compatible

Wrap Vienna's Intent API as a LangChain Tool for governed agent execution.

LangChain Integrationpython
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

Compatible

Route high-risk crew actions through Vienna's approval pipeline before execution.

CrewAI Integrationpython
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

Compatible

Any framework that makes HTTP requests integrates via the REST API.

AutoGen / Custom Integrationtypescript
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

Live

T1/T2 approval requests sent to Slack with interactive buttons. Real-time governance notifications.

Interactive approval buttons
Execution status notifications
Policy violation alerts
Color-coded risk tiers
🔄

GitHub

Live

Governed deployments with warrant metadata. PR status checks and audit trail comments.

Deployment governance
PR status checks
Audit trail comments
Warrant-gated merges
📧

Email

Live

Approval request emails, execution notifications, and daily governance digest.

Approval request emails
Execution notifications
Daily digest reports
One-click console links
🔗

Webhooks

Live

Generic webhook endpoints for custom integrations and external monitoring.

Custom event handlers
HMAC signature verification
Retry with backoff
Event filtering

TypeScript SDK

@vienna-os/sdk

Available

Full TypeScript SDK with typed client, intent submission, policy management, fleet monitoring, compliance reporting, and approval workflows.

SDK Usagetypescript
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.