An easy-to-install Swift package for connecting to Omi devices. Get started in seconds with local Whisper-based transcription - no cloud API required.
Native iOS/macOS support Whisper runs on-device Connect in minutesGet transcription working in 2 minutes:
Replace your `ViewController.swift` with:```swift
import UIKit
import omi_lib
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.lookForDevice()
}
func lookForDevice() {
OmiManager.startScan { device, error in
print("starting scan")
if let device = device {
print("got device ", device)
self.connectToOmiDevice(device: device)
OmiManager.endScan()
}
}
}
func connectToOmiDevice(device: Device) {
OmiManager.connectToDevice(device: device)
self.listenToLiveTranscript(device: device)
self.reconnectIfDisconnects()
}
func reconnectIfDisconnects() {
OmiManager.connectionUpdated { connected in
if connected == false {
self.lookForDevice()
}
}
}
func listenToLiveTranscript(device: Device) {
OmiManager.getLiveTranscription(device: device) { transcription in
print("transcription:", transcription ?? "no transcription")
}
}
}
```
<Note>
There's no UI in this example - transcription appears in the Xcode logs.
</Note>
<img
src="https://github.com/user-attachments/assets/636b33ac-7ea7-4e1c-b490-8ec99b1feef8"
alt="Xcode Console Output"
style={{maxWidth: '600px'}}
/>
| Method | Description |
|---|---|
startScan(callback) |
Start scanning for Omi devices |
endScan() |
Stop scanning |
connectToDevice(device) |
Connect to a discovered device |
connectionUpdated(callback) |
Monitor connection state changes |
getLiveTranscription(device, callback) |
Receive real-time transcription |
getLiveAudio(device, callback) |
Receive audio file URLs |