Open sourceAGPL-3.0Chaque ligne est lisible.
Le client iOS, Android et web complet, sous AGPL-3.0-or-later. Pas de compte, pas d’abonnement, rien qui nous fasse remonter quoi que ce soit. Lisez-le, modifiez-le, hébergez-le vous-même.
$ 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
Le dépôt ne contient aucun binaire précompilé — ni APK, ni .ipa. L’édition communautaire, ce sont des sources que vous compilez vous-même.
Ce que contient le dépôt
iOS · SwiftUI
Une interface SwiftUI avec un transcript UIKit et un stockage GRDB. Ouvrez le projet dans Xcode 26, choisissez votre propre équipe dans Signing, et il tourne sur votre téléphone.
Android · Compose
Jetpack Compose, Room, Koin, Ktor et OkHttp. Avec JDK 21 et le SDK Android, un seul assembleDebug produit un build.
Web · Next.js
Next.js App Router, React, Zustand, TypeScript. C’est la seule partie du projet à avoir un serveur, et elle ne stocke ni clés ni messages.
macOS · en développement
Le client macOS natif est en développement et arrivera dans ce répertoire. La couche wire Swift sur laquelle il s’appuie est déjà écrite et sous tests.
Trois clients qui implémentent chacun « comment appeler un fournisseur » finissent toujours par diverger. shared/ écrit ce comportement sous forme de données — capabilityrecipe définit comment une requête est construite, model-contracts définit ce qu’un client a le droit de faire, test-fixtures sont de vraies réponses enregistrées, et OriveoProviderKit est le noyau wire en Swift 6.1. Les trois clients écrivent leurs assertions contre les mêmes JSON.
Une base de code, deux façons de la faire tourner
Les trois clients partagent les mêmes sources. La différence tient aux comptes, à la synchronisation cloud et aux modèles que nous payons.
| Capacité | Édition communautaire | Oriveo officiel |
|---|---|---|
| Code source | AGPL-3.0-or-later | Build commercial |
| Discuter avec vos propres clés fournisseur | Oui | Oui |
| Relay et serveurs de modèles locaux | Oui | Oui |
| Notes, dossiers, Skills, pièces jointes | Oui | Oui |
| Suivi des dépenses sur l’appareil | Oui | Oui |
| Compte | Compte Oriveo | |
| Stockage | Sur l’appareil ; export et restauration manuels | Local d’abord, plus la synchronisation cloud entre appareils |
| Usage Insights et alertes de budget | Oui | |
| Modèles payés par Oriveo (Oriveo AI / Oriveo Free) | Oui | |
| Analytics et rapports de plantage | Oui |
Les builds communautaires utilisent le préfixe d’identifiant ai.oriveo.community : ils cohabitent donc avec la version du store sur le même appareil, sans partager le trousseau ni les données locales.
Commencez là où vous êtes
Prenez une issue
Pour tout ce qui dépasse une correction de bug, ouvrez d’abord une issue. Être en désaccord sur une approche dans une issue coûte beaucoup moins cher que dans un diff.
Signalez une faille en privé
N’ouvrez pas d’issue publique pour un problème de sécurité. Passez par le signalement privé de vulnérabilité de GitHub, ou écrivez à [email protected] avec SECURITY en objet. Vous aurez une réponse en quelques jours.
Ajoutez une langue
L’interface est livrée en 16 langues, le README aussi. Si une traduction sonne mal, ou si vous voulez ajouter une langue, les pull requests sont les bienvenues.
Clonez le dépôt entier — les trois clients résolvent les fixtures de contrat de shared/ depuis la racine du dépôt, et un checkout superficiel ne passera pas les tests.
Proposez-le comme service, et vos modifications sortent aussi.
Pour un client capable de détenir vos API keys, c’est exactement la bonne contrainte : quel que soit celui qui en héberge une version, vous pouvez lire ce que cette version fait réellement. Le compiler pour vous et l’utiliser vous-même n’est en rien affecté. Les contributions sont acceptées aux mêmes conditions AGPL-3.0-or-later.
Tous les modèles. Une app. Vos clés.
Gratuit pour commencer · sans carte · sans marge