Open sourceAGPL-3.0Every line of it is readable.

The full iOS, Android and web client, under AGPL-3.0-or-later. No account, no subscription, nothing reporting back to us. Read it, change it, host it yourself.

oriveo — bash
$ git clone https://github.com/oriveo/oriveo.git
$ cd oriveo

# Web · Node 22.22+ $ cd web && npm install $ npm run dev:app # localhost:3001
# iOS · Xcode 26, iOS 18+ $ open ios/Oriveo/Oriveo.xcodeproj
# Android · JDK 21 + Android SDK $ cd android && ./gradlew :app:assembleDebug

The repository ships no prebuilt artifacts — no APK, no .ipa. The Community Edition is source you build yourself.

What is in the repository

ios/

iOS · SwiftUI

A SwiftUI interface with a UIKit transcript and GRDB storage. Open the project in Xcode 26, pick your own team under Signing, and it runs on your phone.

android/

Android · Compose

Jetpack Compose, Room, Koin, Ktor and OkHttp. With JDK 21 and the Android SDK, one assembleDebug produces a build.

web/

Web · Next.js

Next.js App Router, React, Zustand, TypeScript. It is the only part of the project with a server, and it stores neither keys nor messages.

macos/

macOS · in development

The native macOS client is in development and will land in this directory. The Swift wire layer it builds on is already written and under test.

shared/

Three clients each implementing “how to call a provider” will drift apart. shared/ writes that behaviour down as data — capabilityrecipe defines how a request is built, model-contracts defines what a client may do, test-fixtures are recorded real responses, and OriveoProviderKit is the Swift 6.1 wire kernel. All three clients assert against the same JSON.

Community vs official

One codebase, two ways to run it

The three clients are the same source. The difference is accounts, cloud sync, and the models we pay for.

CapabilityCommunity EditionOfficial Oriveo
Source codeAGPL-3.0-or-laterCommercial build
Chat with your own provider keysYesYes
Relay and local model serversYesYes
Notes, folders, Skills, attachmentsYesYes
On-device spend trackingYesYes
AccountOriveo account
StorageOn the device; manual export and restoreLocal-first, plus cross-device cloud sync
Usage Insights and budget alertsYes
Models Oriveo pays for (Oriveo AI / Oriveo Free)Yes
Analytics and crash reportingYes

Community builds use the ai.oriveo.community identifier prefix, so they can live alongside the store build on the same device without sharing keychain or local data.

Start where you are

Pick up an issue

For anything larger than a bug fix, open an issue first. Disagreeing about an approach in an issue is much cheaper than disagreeing in a diff.

Browse issues

Report a vulnerability privately

Do not open a public issue for security problems. Use GitHub’s private vulnerability reporting, or email [email protected] with SECURITY in the subject. You will get a reply within a few days.

Read the security policy

Add a language

The interface ships in 16 languages and so does the README. If a translation reads badly, or you want to add a language, pull requests are welcome.

Open readme_i18n/

Clone the whole repository — all three clients resolve the shared/ contract fixtures from the repository root, and a shallow checkout will not pass the tests.

Offer it as a service, and your changes go out too.

That is exactly the right constraint for a client that can hold your API keys: whoever hosts a version of it, you can read what that version actually does. Building it for yourself and using it yourself is unaffected. Contributions are accepted under the same AGPL-3.0-or-later terms.

Every model. One app. Your keys.

Free to start · no credit card · no markup