Break vendor lock-in for physical security
Open Physical Security Graph is an edge-native protocol that unifies access control, cameras, alarms, and IoT sensors into one real-time event stream.
Core Architecture
Four universal primitives that work across every physical security vendor and protocol.
Resources
Any addressable entity: doors, cameras, sensors, zones, or custom devices.
Capabilities
What a resource can do: unlock, stream video, trigger alarms, or read sensors.
Signals
Real-time events and telemetry: door opened, alarm triggered, motion detected.
Actions
Commands sent to resources: unlock door, enable camera, silence alarm.
Built for the edge. Designed for scale.
Physical security systems are trapped in proprietary silos. Every vendor speaks a different protocol, uses different APIs, and locks you into their ecosystem.
OPSG changes that. Deploy edge agents near your devices, write connectors once, and integrate everything through a universal graph protocol.
// Example: Unlock a door
import { opsg } from '@opsg/client';
const client = opsg.connect({
endpoint: 'localhost:8080'
});
await client.sendAction({
targetId: 'door-lobby-main',
action: 'access.unlock',
params: { duration: 10 },
requestedBy: 'user:alice'
});
// Subscribe to real-time events
client.onSignal((signal) => {
console.log(signal.kind, signal.data);
});Write connectors, not integrations
Connectors are lightweight adapters that translate vendor protocols into OPSG primitives.
Example Connectors
- • Access Control (HID, S2, Genetec)
- • Video (ONVIF, RTSP)
- • Alarms (Honeywell, DSC)
- • IoT (MQTT, Modbus)
Simple Interface
- • Register resources + capabilities
- • Emit signals to the bus
- • Handle incoming actions
- • That's it
Built with TypeScript
- • Full type safety
- • Auto-generated from proto
- • Hot reload in dev mode
- • Production-ready
Ready to break free?
OPSG is in active development. Star the repo, join the community, or start building connectors.