Oko iOS
Oko iOS is the mobile companion to Oko Desktop on macOS. It gives the founder a read and chat client for company strategy, team velocity and goals, and conversations with Oko.
Architecture
The macOS application depends on terminals, PTYs, Git processes, network listeners, and agent spawning that are not portable to iOS. The mobile application instead reuses only portable logic and talks to the same backends:
- `Sources/Core` (`OkoIOSCore`) — pure Foundation models for the
company_*andauto_goals_snapshotSupabase tables, aSupabaseClientfor email-code sign-in and RLS-scoped reads, and aChatClient. - `Sources/Features` (`OkoIOSUI`) — SwiftUI views for Strategy, Goals and Velocity, Chat, authentication, and the root tab view.
- `Sources/App` — the
@mainapplication shell and only Xcode-only source.
Both library targets also build on the host, so their logic and SwiftUI can be type-checked outside the application target.
Security boundary
Only the Supabase anon key, a publishable client key protected by Row Level Security, ships in the application. The service-role key and model-router HMAC secret never reach the device.
Chat requests go through the oko-chat Supabase Edge Function owned by wisent-supabase-oko. That function signs the model-router request server-side. Do not move either server credential into the client or add it to generated Xcode configuration.
Requirements
- iOS 17 or newer
- Swift 6 and Xcode 16 or newer
- XcodeGen to regenerate the application project
Build and run
swift build
swift test
xcodegen generate
open Oko.xcodeprojThe first two commands exercise the portable Core and UI targets on the host. Generate the project before opening it, then select an iOS Simulator or connected device in Xcode.
Source
The mobile client is maintained in wisent-ai/oko-ios. Product, desktop, CLI, relay, and transcript-intelligence documentation remain under the owning Oko site.