WebSocket URL: ws://localhost:3002/runtime (or configured Kit-Manager)
{
"type": "console_subscribe",
"id": "msg-123",
"appId": "VEA-my-app"
}Response:
{
"type": "console_subscribed",
"id": "msg-123",
"clientId": "client-uuid",
"appId": "VEA-my-app"
}{
"type": "console_output",
"executionId": "VEA-my-app",
"stream": "stdout",
"output": "line content",
"timestamp": "2026-01-08T10:00:00.000Z"
}Streams: stdout, stderr
{
"type": "console_unsubscribe",
"id": "msg-123",
"appId": "VEA-my-app"
}{
"type": "app_output",
"id": "msg-123",
"appId": "VEA-my-app",
"lines": 100
}{
"type": "list_deployed_apps",
"id": "msg-123"
}Response:
{
"type": "list_deployed_apps-response",
"id": "msg-123",
"apps": [
{
"id": "VEA-my-app",
"name": "My App",
"type": "python",
"status": "running",
"createdAt": "2026-01-08T10:00:00.000Z"
}
],
"total": 1,
"running": 1,
"paused": 0,
"stopped": 0,
"error": 0
}Statuses: installing, installed, starting, running, paused, stopped, uninstalling, error
App Types: python, binary, docker, mock-service, kuksa-server
{
"type": "deploy_request",
"id": "deploy-123",
"prototype": {
"id": "my-app",
"name": "My App",
"type": "python",
"code": "import asyncio\nfrom sdv import VehicleApp\n...",
"config": {}
},
"vehicle_id": "default-vehicle"
}{
"type": "run_app",
"id": "msg-123",
"appId": "VEA-my-app"
}{
"type": "stop_app",
"id": "msg-123",
"appId": "VEA-my-app"
}{
"type": "pause_app",
"id": "msg-123",
"appId": "VEA-my-app"
}{
"type": "resume_app",
"id": "msg-123",
"appId": "VEA-my-app"
}{
"type": "uninstall_app",
"id": "msg-123",
"appId": "VEA-my-app"
}{
"type": "mock_service_start",
"id": "mock-start-123",
"mode": "echo-all"
}Modes: echo-all, echo-specific, random, static, off
{
"type": "mock_service_stop",
"id": "mock-stop-123"
}{
"type": "mock_service_configure",
"id": "mock-config-123",
"mode": "echo-specific",
"signals": ["Vehicle.Body.Lights.Beam.High.IsOn"]
}{
"type": "mock_service_status",
"id": "mock-status-123"
}{
"type": "subscribe_apis",
"id": "msg-123",
"apis": ["Vehicle.Speed", "Vehicle.Body.Lights.*"]
}{
"type": "write_signals_value",
"id": "msg-123",
"data": {
"Vehicle.Speed": 100
}
}{
"type": "get_signals_value",
"id": "msg-123",
"apis": ["Vehicle.Speed"]
}HTTP: GET http://localhost:3003/health
Response:
{
"status": "healthy",
"runtimeId": "uuid",
"kitManagerConnected": true,
"timestamp": "2026-01-08T10:00:00.000Z"
}All error responses follow this format:
{
"type": "error",
"id": "msg-123",
"error": "Error message description",
"timestamp": "2026-01-08T10:00:00.000Z"
}The runtime advertises these capabilities via Kit-Manager:
python_app_executionbinary_app_executionconsole_outputapp_status_monitoringvehicle_signalsvss_managementsignal_subscription