オープンソースAGPL-3.0コードは、一行残らず読めます。
iOS・Android・Webのクライアント一式を、AGPL-3.0-or-laterで公開しています。アカウントもサブスクリプションも不要で、当社へデータを送り返す仕組みもありません。コードを読み、改変し、セルフホストしてください。
$ 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
リポジトリにはビルド済みの成果物(APKや.ipa)を含めていません。コミュニティ版は、ご自身でビルドするためのソースコードです。
リポジトリの構成
iOS · SwiftUI
SwiftUIの画面に、会話表示はUIKit、保存はGRDB。Xcode 26でプロジェクトを開き、Signingでご自身のTeamを選べば、手元のiPhoneで動かせます。
Android · Compose
Jetpack Compose、Room、Koin、Ktor、OkHttpで構成しています。JDK 21とAndroid SDKがあれば、assembleDebugを1回実行するだけでビルドできます。
Web · Next.js
Next.js App Router、React、Zustand、TypeScriptで構成しています。プロジェクトで唯一サーバーを持つ部分ですが、APIキーもメッセージも保存しません。
macOS · 開発中
ネイティブのmacOS版は開発中で、このディレクトリに追加される予定です。土台となるSwiftの通信レイヤーは実装済みで、テストも進めています。
「プロバイダーをどう呼び出すか」を3つのクライアントが別々に実装すれば、いずれ挙動がずれていきます。shared/はその振る舞いをデータとして定義したものです。capabilityrecipeがリクエストの組み立て方を、model-contractsがクライアントに許される動作を定義し、test-fixturesには実際のレスポンスを記録し、OriveoProviderKitはSwift 6.1の通信カーネルです。3つのクライアントはすべて同じJSONに対してテストしています。
コードベースはひとつ、使い方は2通り
3つのクライアントのソースは同じです。違いは、アカウント、クラウド同期、そして当社が費用を負担するモデルの有無だけです。
| 機能 | コミュニティ版 | 公式版Oriveo |
|---|---|---|
| ソースコード | AGPL-3.0-or-later | 商用ビルド |
| 自分のプロバイダーのAPIキーでチャット | 対応 | 対応 |
| Relayとローカルモデルサーバー | 対応 | 対応 |
| ノート・フォルダー・Skills・添付ファイル | 対応 | 対応 |
| 端末内での利用額の記録 | 対応 | 対応 |
| アカウント | Oriveoアカウント | |
| 保存先 | 端末内(エクスポートと復元は手動) | 初期設定は端末内。複数の端末間のクラウド同期も選べます |
| Usage Insightsと予算アラート | 対応 | |
| 当社が費用を負担するモデル(Oriveo AI / Oriveo Free) | 対応 | |
| アクセス解析とクラッシュレポート | 対応 |
コミュニティ版のビルドはai.oriveo.communityで始まる識別子を使うため、同じ端末にストア版と並べてインストールしても、キーチェーンや端末内のデータは共有されません。
できるところから参加する
Issueに取り組む
バグ修正より大きな変更は、先にIssueを立ててください。方針の食い違いは、コードを書いたあとより、Issueの段階で話し合うほうがずっと楽です。
脆弱性は非公開で報告する
セキュリティ上の問題は公開のIssueに書かないでください。GitHubの非公開の脆弱性報告を使うか、件名に「SECURITY」と入れて[email protected]までメールでご連絡ください。数日以内に返信します。
言語を追加する
画面表示もREADMEも16言語に対応しています。翻訳が読みにくい箇所を見つけたときや、新しい言語を追加したいときは、プルリクエストをお待ちしています。
リポジトリは全体をcloneしてください。3つのクライアントはいずれもリポジトリのルートからshared/の契約フィクスチャを読み込むため、shallow cloneではテストが通りません。
サービスとして提供する場合は、変更点も公開が必要です。
APIキーを預かることもあるクライアントだからこそ、この条件が合っています。誰がどこでホストしていても、その版が実際に何をしているかをコードで確かめられるからです。自分でビルドして自分で使う分には影響ありません。コントリビューションも同じAGPL-3.0-or-laterの条件で受け付けています。