Overview
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 minutesQuick Start
Get 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")
}
}
}
```
1. Select your development team
2. Connect your iPhone via cable (simulators don't support Bluetooth)
3. Run the project
1. Turn on your Omi device
2. The app should connect automatically
3. Speak - you'll see transcription in the Xcode console
<Note>
There's no UI in this example - transcription appears in the Xcode logs.
</Note>
<img
src="https://img-transfer.gitcode.com?p=https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F636b33ac-7ea7-4e1c-b490-8ec99b1feef8&projectId=GitHub_Trending/fr/Friend&pageUrl=https%3A%2F%2Fgitcode.com%2FGitHub_Trending%2Ffr%2FFriend%2Ftree%2Fmain%2Fsdks%2Fswift%2F"
alt="Xcode Console Output"
style={{maxWidth: '600px'}}
/>
OmiManager Methods
| 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 |