Pick your stack. Register actions. Ship.
Every SDK speaks the same typed wire protocol with an on-device validator, the one already exercised end-to-end in production. Your app decides what an agent can see and do; the SDK enforces it.
1 · Add the package
Download the package and add it in Xcode (File → Add Package Dependencies → Add Local…), or vendor the folder into your repo. Requires iOS 16+ and pulls livekit/client-sdk-swift ≥ 2.0.
Download ScreenSteerKit (.zip)2 · Register & redact
Mark what an agent may invoke and what must never leave the device. Everything else simply doesn't exist on the wire.
3 · Start with consent
session.start() is called only from your approved consent sheet. The banner, control sheet, and Stop are included as drop-in SwiftUI views.
Beta. The protocol core has a bundled contract suite, including golden-vector checks against the production wire bytes. The capture/UI layer still needs validation on your target device and LiveKit version; run CommandValidatorTests first.
import ScreenSteerKit let session = ScreenSteerSession( config: ScreenSteerConfig( baseURL: URL(string: "https://screensteer.com")!, publishableKey: "pk_dev_…")) Button("Refresh work orders") { store.refresh() } // the ONLY thing an agent can run: .screenSteerAction("workorders.refresh", session: session) { store.refresh() } AccountDetailsView() // masked BEFORE publication: .screenSteerRedacted("account-details", session: session) // from YOUR consent sheet: await session.start(externalUserId: user.id)
Unity, MAUI, Xamarin, and Godot (C#) consume the same build-verified .NET client, which ships a netstandard2.1 build alongside net9. Electron, Ionic, and Capacitor apps run the Web SDK directly in their Chromium/WebView renderer. Need another stack? The wire protocol is small and typed; tell us and we'll port it.
Try it before you integrate
The browser device simulator implements this exact protocol, run the two-window demo against your own console, then wire the SDK knowing the control plane already works. Follow the simulator verification guide or deep-dive the security model in Why we will never inject touches.