Clients

Architecture, trust boundaries, requirements, and local setup for the Oko mobile client.

Migrated from oko-ios/README.md

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_* and auto_goals_snapshot Supabase tables, a SupabaseClient for email-code sign-in and RLS-scoped reads, and a ChatClient.
  • `Sources/Features` (`OkoIOSUI`) — SwiftUI views for Strategy, Goals and Velocity, Chat, authentication, and the root tab view.
  • `Sources/App` — the @main application 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

sh
swift build
swift test
xcodegen generate
open Oko.xcodeproj

The 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.