2026年版:おすすめのオープンソース・フラッシュカードアプリ比較
GitHubへのリンクだけでは、そのフラッシュカードアプリの実態は意外と分かりません。デスクトップクライアントはオープンソースでも、iPhoneアプリはプロプライエタリかもしれません。Dockerイメージでブラウザアプリを動かせても、ネイティブクライアントとは同期できない場合があります。オフラインで使えるアプリでも、中核部分が完全にクローズドソースということもあります。
そこで、このおすすめのオープンソース・フラッシュカードアプリ比較では、インストール後に効いてくる違いを確認します。ライセンス、対応環境、オフライン利用、スケジューラ、同期、インポートとエクスポート、そして実際にどこまでセルフホストできるかです。候補はAnki、Flashcards、Mnemosyne、SiYuanの4製品。さらに、プロプライエタリなローカルファースト製品との比較対象としてMochiも取り上げます。
開示事項: 私はKirill Markinです。ここで取り上げる製品のひとつ、Flashcardsを開発しています。候補に含めた理由は、Webアプリ、ネイティブクライアント、バックエンド、同期機能、本番インフラまで、MITライセンスで同じリポジトリに公開されているからです。ただし、無条件の最有力候補としては扱いません。Ankiはより成熟し、Mnemosyneはデスクトップに特化したワークフローと優れたAnki移行機能を備えています。SiYuanは、より広範なナレッジシステムです。オープンソースが必須でなければ、Mochiも検討しやすい選択肢です。
情報確認日: 2026年8月2日。

ここでいう「オープンソース」「オフライン」「セルフホスト」とは
中核となるユーザー向けアプリのソースが、明示されたライセンス条件とともに公開されている製品を、オープンソースの候補に含めました。そのうえで、リポジトリのスター数を品質スコアに見立てるのではなく、すべての製品を同じ実用上の問いで確認しています。
- オープンソースとは、コードに付与された法的権利を指します。オフライン利用、継続的に保守されるモバイルアプリ、インストール可能なサーバーまで約束されるわけではありません。
- オフライン利用とは、インストール済みのクライアントがサーバーへ接続せず、ローカルデータを使ってカードを作成・復習できることです。プロプライエタリなソフトウェアでも、この条件は満たせます。
- セルフホスト同期とは、クライアント間でデータをやり取りするサービスを自分で運用することです。ブラウザ用の画面は一切提供されない場合もあります。
- Webアプリ全体のセルフホストとは、ブラウザから利用できるアプリケーションまでデプロイに含まれることです。それでもネイティブクライアントには、別途ビルドや配布、別の同期システムが必要な場合があります。
この記事で最も大切なのは、この区別です。「ソースが公開されている」「オフラインで動く」「Dockerで動く」は、同じことを約束しているわけではありません。
オープンソースのフラッシュカードアプリを比較
最初の4製品は、中核アプリが実際にオープンソースです。Mochiを最後に置いたのは、オフライン動作と持ち運びやすい形式が同じ検索ニーズに合う一方、中核アプリはプロプライエタリだからです。
| 製品 | ライセンス / ソースの状態 | 対応環境 | オフライン | スケジューラ | 同期 | インポート / エクスポート | セルフホストできる正確な範囲 |
|---|---|---|---|---|---|---|---|
| Anki | デスクトップの中核部分はAGPL-3.0-or-later、一部はBSD-3-Clause。AnkiDroidは別のオープンソースプロジェクト。公式AnkiMobileはプロプライエタリ | Windows、macOS、Linux。AndroidはAnkiDroid、iOSはAnkiMobile。AnkiWebではホスト型のブラウザ学習が可能 | ネイティブのデスクトップ・モバイルクライアントはオフラインで動作 | FSRSと従来のSM-2 | AnkiWebまたは公式のセルフホスト同期サーバー | テキスト、パッケージ化されたAnkiデッキ、Mnemosyneの.dbをインポート。テキスト、.apkg、.colpkgへエクスポート |
同期のみ。 公式サーバーはセルフホスト版AnkiWebではなく、ブラウザ学習画面も追加されない |
| Flashcards | MIT。Web、iOS、Android、バックエンド、同期、インフラをひとつのリポジトリで公開 | Web、iOS、Android | IndexedDBまたはSQLiteへローカル優先で書き込み、保留中の変更は再接続後に同期 | FSRS | ホスト型同期またはセルフホストした本番スタック | flashcards.zipで移せるのはカード、タグ、関連メディアのみ。AI支援でTXT/CSVから作る下書きはユーザーの確認が必要で、情報も失われる。.apkgの直接インポートには非対応 |
注意点つきのフルスタック。 本番環境はAWS中心で、複数の外部サービスに依存。Docker Composeは開発専用 |
| Mnemosyne | コンポーネントごとにライセンスが異なる。中核部分はAGPL v3に名称・帰属表示の追加条項を加えたもの、openSM2syncはLGPL v3 | Windows、macOS、Linux、Android。稼働中のデスクトップサーバーを介してブラウザで復習可能 | デスクトップではローカル利用、Androidではオフライン復習が可能。Androidではカードを編集できない | 0〜5の想起評価に基づく適応型スケジューリング | 自分のデスクトップまたはヘッドレスサーバーを使う組み込み同期 | カスタムカードタイプと学習データを含むAnkiの完全インポート。ほかにプレーンテキストや旧形式にも対応。共有用・テキストのエクスポートは完全なバックアップではない | 同期と限定的なブラウザ復習。 Mnemosyneインスタンスを自分で動かす方式であり、ホスト型Web製品ではない |
| SiYuan | AGPL-3.0。公式プロジェクトから、オープンソースのAndroid、iOS、HarmonyOSクライアントにもリンクされている | Windows、macOS、Linux、Android、iOS、HarmonyOS。Docker経由でブラウザ利用 | 完全なローカル利用がオフラインで可能 | FSRS | 公式のエンドツーエンド暗号化同期、または有料会員向けのサードパーティ製クラウドストレージ対応 | 通常のアプリではMarkdownとデータをインポートし、Markdown、PDF、Word、HTML、データをエクスポートできる。文書化された.apkgインポーターはない |
Dockerでブラウザアプリ全体を稼働可能。 Docker版はブラウザ専用で、デスクトップ・モバイルクライアントの同期先にはならない |
| Mochi | 中核部分はプロプライエタリ。公開リポジトリにあるのは連携機能で、アプリ本体ではない | Web、Windows、macOS、Linux、iOS、Android | アカウントなしで完全にオフライン利用可能。ブラウザの保存データはブラウザに消去される場合がある | Remembered / Forgotの回答と、初期値90%の目標想起率を使う、詳細非公開の適応型スケジューラ | 有料のホスト型同期 | .mochi、Ankiの.apkg、Markdown、CSVをインポート。.mochi、Markdown、CSVへエクスポートできるが、保持されるメタデータは形式によって異なる |
なし。 中核アプリや同期サービスをセルフホストする公式対応はない |
この表は選択の手がかりであって、機能の充実度を点数化したものではありません。10年分の復習履歴があるなら、.apkgを直接読み込めることのほうがセルフホストより重要かもしれません。教室では、モバイルで編集できることよりブラウザ画面が重要な場合もあります。まずは、満たせなければそのアプリを候補から外す要件を決めてください。
Anki:成熟して柔軟だが、周辺の構成は複雑
複雑な既存コレクションを持っているなら、Ankiは今も最も無難な選択です。カードテンプレート、アドオンのエコシステム、スケジューリング設定、パッケージ形式は、長い年月をかけて成熟してきました。それらがAnkiを使う理由なら、新しいアプリへ移っても何も解決しないかもしれません。
ソースの状況は、すべてが一様にオープンというわけではありません。デスクトップ版のライセンスはAGPL-3.0-or-laterで、一部はBSD-3-Clause、同梱コンポーネントにはさらに別のライセンスが適用されます。AnkiDroidは別のオープンソースAndroidプロジェクトです。公式iOSアプリのAnkiMobileはプロプライエタリで、AnkiWebはホスト型のブラウザサービスです。ネイティブクライアントはオフラインで動作し、ホスト型のエコシステムを利用する場合はAnkiWebからブラウザで学習できます。
AnkiはFSRSと従来のSM-2スケジューラの両方に対応しています。移行機能は、この比較で最も充実しています。テキストファイル、パッケージ化されたデッキ、Mnemosyne 2.0データベースをインポートでき、テキスト、.apkg、.colpkgパッケージへエクスポートできます。メディアやスケジューリングデータを含めるかどうかも設定可能です。
セルフホストの意味は、より限定的です。公式同期サーバーは、AnkiWebを使いたくない上級運用者向けに、互換性のあるAnkiクライアント間を同期します。AnkiWebの画面をホストするものではないため、ブラウザ学習も、セルフホストしたアカウント用Webサイトも提供されません。プロトコルが変われば、クライアントとサーバーのバージョン互換性も保つ必要があります。
成熟したテンプレート、アドオン、信頼できるパッケージ移行、幅広いクライアント対応を求めるなら、Ankiが向いています。この比較での弱点は機能ではありません。オープンなデスクトップ中核部分、別プロジェクトのAndroid版、プロプライエタリな公式iOSクライアント、ホスト型Webサービスに分かれていることです。
Flashcards:フルスタックのソースと、AWS規模の運用作業
Flashcardsは、別のトレードオフを選んでいます。MITライセンスのリポジトリに、ブラウザアプリ、iOS・Androidクライアント、バックエンド、オフライン同期、インフラが含まれます。運用者はAnkiの公式同期サーバーより広い範囲の製品スタックを扱えますが、そのぶん作業量もかなり増えます。
WebアプリはローカルデータをIndexedDBに保存し、iOSはSQLite、AndroidはSQLite上のRoomを使います。オフラインファーストのアーキテクチャでは、まずローカルに書き込み、操作をoutboxへ積み、クライアントの再接続後に送信します。復習にはFSRSを使います。ホスト型とセルフホスト型のデプロイは、同じWeb、同期、APIを軸にした製品モデルに対応します。
「フルスタックのセルフホスト」には、詳しい説明が必要です。公式の本番セルフホストガイドが使うのはAWS CDKであり、ベンダーに依存しない本番用Dockerバンドルではありません。AWSインフラとCognito、Cloudflare DNS、Resendのメール配信、Sentryの設定が必要です。シークレット、マイグレーション、アラーム、バックアップ、復元テスト、アップグレードは自分で管理します。リポジトリのDocker Compose構成が起動するのは、ローカル開発用のPostgreSQLとマイグレーションです。本番環境用ではないことが明記されています。ネイティブアプリもリポジトリにありますが、非公開のiOS・Androidビルドは別途ビルドして配布しなければなりません。ワンコマンドでデプロイできると考える前に、アーキテクチャ概要を読んでください。
ユーザーにとって、より大きな制約は移行です。flashcards.zipパッケージは、Flashcardsワークスペース間でカード、タグ、関連メディアを移します。復習履歴、FSRSの状態、ワークスペース設定、完全なデッキ構造、アカウントは移しません。これはコンテンツの転送であって、完全なバックアップでも、ホスト型環境からセルフホスト環境への無損失移行でもありません。
Ankiの.apkgを直接インポートする機能はありません。公式のTXT/CSV移行手順では、エクスポートしたテキストからAIにカードの下書きを作らせ、ユーザーがその内容を確認します。テンプレート、スケジューリング状態、デッキ構造は保持されず、単純なコンテンツでも確認が必要です。主にテキストで構成されたカードを作り直すには役立ちますが、Ankiとの完全な互換性をうたえる方法ではありません。
モダンなオープンソースのWeb・ネイティブスタック、FSRS、オフラインファーストのクライアント、運用者が管理するバックエンドを明確に求めるなら、Flashcardsが向いています。コレクションを忠実に保ちたいならAnki、従来型のローカルアプリと自前の同期で必要な管理範囲を満たせるならMnemosyneを選びましょう。
Mnemosyne:デスクトップ学習に特化し、同期も自分で運用
Mnemosyneは、この中で最も機能を広げすぎていない選択肢です。ローカル動作に強い従来型のデスクトップ間隔反復アプリで、Androidの復習クライアント、Ankiからの移行機能、デスクトップまたはヘッドレス環境でホストできる同期プロトコルを備えています。
ライセンスは正確に説明する必要があります。ルートのライセンスファイルには、コンポーネントごとに異なるライセンスを使うと記載されています。Mnemosyne中核部分のライセンスはAGPL v3に追加条項を加えたもので、派生物にはMnemosyneの名称を明確に表示し、具体的な表示方法をメンテナーと協議するよう求めています。リポジトリ内のopenSM2syncライセンスはLGPL v3です。ひとつのリンクだけでは、両方のコンポーネントを正確に説明できません。
現在のダウンロードページには、Windows、macOS、Linux向けのバージョン2.11と、オフライン復習とデスクトップ同期に対応するAndroidクライアントが掲載されています。ほかのモバイル環境で文書化されている選択肢は、デスクトップで稼働するWebサーバーを介したブラウザ復習です。Androidクライアントではカードを編集できないため、完全なモバイル編集アプリではなく、復習用の補助クライアントです。
スケジューリングでは0〜5の自己評価を使い、次回までの間隔を調整します。Mnemosyneには、スケジューラやデータベースなど中核部分を置き換えられるプラグインアーキテクチャもあります。組み込みの同期機能は、複数のマシン間でカードと学習データを統合し、1台のデスクトップまたはヘッドレスプロセスをサーバーにできます。デスクトップのWebサーバーを使えばブラウザで復習できますが、公式の機能ページは、このブラウザサーバーにセキュリティ機能がないと警告しています。洗練されたマルチユーザーWebサービスではありません。
Mnemosyneへ乗り換える大きな理由のひとつが、インポート機能です。プロジェクトの説明では、カスタムカードタイプと学習データを含むAnkiの完全インポートに加え、プレーンテキスト、SuperMemo、CueCard形式にも対応しています。エクスポートには、さらに注意が必要です。.cardsの手順は選択したカードを共有するためのもので、完全な学習状態を保持するものではありません。完全な移行やバックアップには、複数コンピューター向けガイドに従ってデータディレクトリをコピーします。
クラウドアプリケーション一式を運用せずに、デスクトップのローカルデータを自分で管理し、同期もセルフホストしたいなら、Mnemosyneが向いています。デスクトップ以外から利用する前に、Androidの編集制限とブラウザサーバーのセキュリティ境界を確認してください。
SiYuan:フラッシュカード機能も備えたセルフホスト型ナレッジベース
SiYuanは、オープンソース製品の中では異色です。中心となるのは、ブロック参照、文書、データベース、組み込みのFSRSフラッシュカードを備えた、プライバシー重視のナレッジ管理システムです。ノートからカードを作る人には魅力的ですが、復習キューだけが欲しい人には、機能が多すぎると感じるかもしれません。
公式リポジトリはAGPL-3.0で、オープンソースのUI、カーネル、Android、iOS、HarmonyOSプロジェクトへリンクしています。デスクトップ・モバイルアプリはデータをローカルに保存し、オフラインでも使い続けられます。ネイティブアプリはSiYuanのエンドツーエンド暗号化クラウド同期を利用でき、有料会員は対応するサードパーティ製クラウドストレージを設定できます。このネイティブ同期の仕組みは、Dockerホスティングとは別です。
Dockerでは、ブラウザから実際に使えるSiYuanアプリケーションを動かせます。ただし、リポジトリには重要な制約が3つ記載されています。デスクトップ・モバイルアプリから接続できない、Markdownをインポートできない、PDF、HTML、Wordへエクスポートできない、という制約です。つまりDockerモードはブラウザ専用で、ネイティブクライアント用のプライベート同期サーバーではありません。
通常のアプリケーションでは、より幅広くインポート・エクスポートできます。インポートはMarkdownとSiYuanデータパッケージ、エクスポートはアセット付きMarkdown、PDF、Word、HTML、データ形式に対応します。こうした通常モードの機能を、そのままDocker版の機能として扱うことはできません。公式ドキュメントには、Ankiの.apkgを直接読み込むインポーターは見つかりませんでした。
主な目的がローカルまたはセルフホストのナレッジベースで、その中にフラッシュカードを置きたいなら、SiYuanが向いています。Ankiからの移行に特化するなら、AnkiかMnemosyneのほうがカードモデルは直接的で、学習データの移行方法も明確です。
Mochi:優れたオフライン動作でも、中核部分がオープンソースとは限らない
Mochiはオープンソースの候補には入りませんが、この比較には含める価値があります。macOS、Windows、Linux、iOS、Android、Webに対応する、落ち着いたMarkdown指向のフラッシュカード兼ノートアプリです。デスクトップ・モバイルアプリは、アカウントなしで完全にオフライン動作できます。Web版もオフラインのブラウザストレージを使いますが、ドキュメントでは、ブラウザによってデータが予期せず消去される可能性があると警告しています。
スケジューラの回答はRememberedとForgotの2つです。ドキュメントでは、適応型の復習間隔、再学習の動作、初期値90%の目標想起率を説明していますが、計算式は公開していません。端末間の同期は、有料のホスト型機能です。
データを持ち運びやすいことは強みです。Mochiは、復習履歴を含むAnkiの.apkgファイルをインポートできます。ただしCSSとJavaScriptは削除され、HTMLはMarkdownへ変換されるため、カスタム表示はそのまま移りません。Markdown、CSV、ネイティブの.mochi形式もインポートできます。
ネイティブの.mochiアーカイブには、デッキ、カード、添付ファイル、タグ、テンプレート、復習データを含められます。MarkdownとCSVへのエクスポートはほかのツールで確認しやすい一方、復習履歴、順序、テンプレートなど、ドキュメントに記載されたメタデータが失われます。したがって、Mochiのエクスポートには復習履歴が一切含まれないという以前の説明は、現在のドキュメントからは裏付けられません。ネイティブ形式には含められます。
Mochiのオープンソース・リポジトリにあるのは、連携機能、プラグイン、関連ツールです。中核アプリやデプロイ可能な同期サービスではありません。公式に対応するセルフホスト方法もありません。ソースへアクセスできることより、オフライン利用、Markdown、.apkgからの移行が重要なら、Mochiが向いています。
譲れない条件に合う間隔反復アプリはどれか
自動的に決まる勝者はいません。まず、何を妥協できないかで選ぶのが実用的です。
- Ankiを選ぶ: 最も成熟したテンプレート、アドオン、パッケージ移行、クライアントのエコシステムを求める場合。公式にセルフホストできるのは同期であり、AnkiWebではありません。
- Flashcardsを選ぶ: Web、ネイティブ、バックエンドをひとつのMITライセンスのリポジトリで公開し、公式に対応した本番環境一式を求める場合。AWS中心のスタック、外部サービスへの依存、運用作業、情報が失われるAnki移行を受け入れる必要があります。
- Mnemosyneを選ぶ: ローカルのデスクトップ学習、優れたAnkiインポート、自前の同期サーバーを求める場合。Androidでは編集できず、ブラウザ復習には自分のインスタンスを稼働させておく必要があります。
- SiYuanを選ぶ: ノートと文書を中心に据え、FSRSフラッシュカードをその中で使いたい場合。Dockerで得られるのはブラウザアプリであり、ネイティブクライアントの同期ではありません。
- Mochiを選ぶ: プロプライエタリでも、完全にオフラインで使えるMarkdownアプリと
.apkgの直接インポートを受け入れられる場合。中核部分のソースもセルフホスト方法もありません。
Ankiですでに問題がなく、ここで挙げた制約にも困っていないなら、そのまま使うのが妥当な結論です。間隔反復アプリの乗り換えには、実際に手間がかかります。テンプレート、メディア、何年分ものスケジューリング履歴がある場合は、なおさらです。オープンソース以外の製品も含めて探すなら、Anki代替アプリの詳しい比較も参考にしてください。
全データを移す前の移行チェックリスト
コレクション全体に触れる前に、代表的なデッキをひとつ使ってください。カスタムフィールド、穴埋め、画像、音声、入れ子のデッキ、タグ、そしてスケジューラの違いが分かるだけの復習履歴など、扱いにくいカードも含めます。
- 現在のアプリから完全なバックアップをエクスポートし、そのファイルには手を加えずに残す。
- カード数、フィールド名、タグ、デッキ構造、メディア数、復習予定日のサンプルを記録する。
- 移行先がネイティブ形式を読めるのか、テキスト、CSV、Markdownだけに対応するのかを確認する。単語をインポートすることと、コレクションをそのまま保つことは同じではない。
- テストインポート後に、書式、穴埋め、テンプレート、メディア、タグ、復習履歴を個別に確認する。
- 使う予定のすべての端末でオフライン復習を試す。どの編集がローカルで送信待ちになり、どの編集にはサーバーが必要なのかを確認する。
- あとで破棄できる競合編集を作り、実際の教材を任せる前に、同期が競合をどう解決するか確認する。
- フラッシュカード環境をセルフホストするなら、アップグレード、バックアップ、実際の復元まで試す。コンテナが動いているだけでは、復旧計画にならない。
- 古い環境を削除、凍結、リセットする前に、数日間は両方のアプリで学習する。
エクスポート形式は個別に確認する価値があります。Ankiのパッケージは、テキストよりはるかに多くの情報を保持できます。Mnemosyneの共有用エクスポートには学習データが含まれません。Flashcardsのパッケージが移すのはコンテンツであり、完全な学習状態ではありません。Mochiのネイティブアーカイブは、MarkdownやCSVへのエクスポートより多くのメタデータを保持します。SiYuanのDockerデプロイでは、通常のアプリで使えるインポート・エクスポートコマンドが利用できません。
ScholarsomeとOpenCardsを候補に含めなかった理由
Scholarsomeはオープンソースでセルフホストできますが、公式サイトでは現在も「Spaced repetition system implementation」を今後追加予定の機能に挙げています。ほかの学習モードが役立つとしても、継続的にスケジュールされた復習を中心とする比較には含められません。
OpenCardsは、PowerPointとMarkdownファイルを使うデスクトップ向けフラッシュカードアプリです。候補から外したのは、公式リポジトリの最新タグ付きリリースが2017年1月のv2.5.1で、リポジトリの最新コミットが2018年6月だからです。これは正確なプロジェクト情報であり、ソフトウェアに価値がないという主張ではありません。それでも、2026年に新しい複数端末環境向けとして勧めるのは難しいでしょう。
忖度なしの候補一覧
Ankiには、最も深く成熟したフラッシュカードのエコシステムがあります。ただしAndroid、iOS、ホスト型Webアクセス、セルフホスト同期を分けて考えると、「オープンソースのAnki」は単純な話ではありません。Flashcardsは、ここで最も広い製品スタックを公開していますが、本番運用の負担が最も大きく、無損失移行には最も弱い製品です。Mnemosyneは、ローカル学習と自前の同期に焦点を絞っています。SiYuanは、さらに大きなノートシステムの中に、Dockerでセルフホストできる本格的なブラウザアプリを備えています。Mochiは、オープンソースの中核部分がなくても、優れたオフライン動作と移植性を実現できることを示しています。
おすすめのオープンソース・フラッシュカードアプリは、自分が管理したい範囲と実際の要件が一致するものです。ライセンスを確認し、最も難しい移行ケースを試し、必要なのがローカルデータなのか、セルフホスト同期なのか、ブラウザアプリ全体のデプロイなのかを決めてください。それぞれが解決する問題は異なります。