手元のデータから
Anki カードを生成。

Anki Forge は、Rust コアと Rust、Python、Node.js のインターフェースを備えた、オープンソースの Anki APKG 生成ライブラリです。メディアをまとめ、独自のテンプレートを使い、配布前に更新内容を確認できます。

4つのカードタイプ。1つの Anki デッキ。

プログラミング言語を選択。

公開パッケージ 0.3.1 で spanish.apkg を出力します。通常のエクスポートに Anki のインストールは不要です。

Rust

Rust 1.92+
cargo add ankiforge@0.3.1
Rust で作る

Node / TypeScript

Node.js 22.13+
npm install --include=optional ankiforge@0.3.1
Node / TypeScript で作る

Python

CPython 3.11+
python -m pip install ankiforge==0.3.1
Python で作る

AI と Anki Forge を使う。

プログラミング言語を選び、作りたいものを記入して、依頼文を AI コーディングアシスタントに貼り付けます。

Rust

AI への依頼文 · Anki Forge 0.3.1
Rust アプリケーションで Anki Forge 0.3.1 を使う作業を手伝ってください。
実行環境の要件: Rust 1.92+

公開パッケージ `ankiforge` と、このバージョンの文書に記載された公開 API だけを使ってください。
git/path 依存関係、内部ツール、ソース専用 API、未公開のメソッド、推測したメソッドは使わないでください。

作りたいもの:
<作りたいものを記入してください>

次の要件に従ってください。
1. ファイルを変更する前に、既存プロジェクトを確認します。
2. 必要な設定と正確なインストールコマンドを示します: cargo add ankiforge@0.3.1
3. 最小限かつ完全に実行できるプログラムを作り、追加・編集するすべてのファイル名を示します。
4. 永続的な `.apkg` ファイルを生成し、安定した名前空間とノートキーを使います。
5. 実行コマンド、想定される出力、検証手順を含めます。
6. メディア、独自テンプレート、画像穴埋め、更新が必要な場合は API を推測せず、文書化された手順に従います。
   更新では、前回配布時のオリジナル APKG を基準として保持します。Anki から再エクスポートしたファイルは使いません。
7. 言語、入力形式、出力パス、識別情報のルールが不明な場合に、その解消に必要な質問だけをします。

クイックスタート: https://ankiforge.dev/ja/docs/quickstart/
Rust 1.92+
cargo add ankiforge@0.3.1

Node / TypeScript

AI への依頼文 · Anki Forge 0.3.1
Node / TypeScript アプリケーションで Anki Forge 0.3.1 を使う作業を手伝ってください。
実行環境の要件: Node.js 22.13+

公開パッケージ `ankiforge` と、このバージョンの文書に記載された公開 API だけを使ってください。
git/path 依存関係、内部ツール、ソース専用 API、未公開のメソッド、推測したメソッドは使わないでください。

作りたいもの:
<作りたいものを記入してください>

次の要件に従ってください。
1. ファイルを変更する前に、既存プロジェクトを確認します。
2. 必要な設定と正確なインストールコマンドを示します: npm install --include=optional ankiforge@0.3.1
3. 最小限かつ完全に実行できるプログラムを作り、追加・編集するすべてのファイル名を示します。
4. 永続的な `.apkg` ファイルを生成し、安定した名前空間とノートキーを使います。
5. 実行コマンド、想定される出力、検証手順を含めます。
6. メディア、独自テンプレート、画像穴埋め、更新が必要な場合は API を推測せず、文書化された手順に従います。
   更新では、前回配布時のオリジナル APKG を基準として保持します。Anki から再エクスポートしたファイルは使いません。
7. 言語、入力形式、出力パス、識別情報のルールが不明な場合に、その解消に必要な質問だけをします。

クイックスタート: https://ankiforge.dev/ja/docs/node-quickstart/
Node.js 22.13+
npm install --include=optional ankiforge@0.3.1

Python

AI への依頼文 · Anki Forge 0.3.1
Python アプリケーションで Anki Forge 0.3.1 を使う作業を手伝ってください。
実行環境の要件: CPython 3.11+

公開パッケージ `ankiforge` と、このバージョンの文書に記載された公開 API だけを使ってください。
git/path 依存関係、内部ツール、ソース専用 API、未公開のメソッド、推測したメソッドは使わないでください。

作りたいもの:
<作りたいものを記入してください>

次の要件に従ってください。
1. ファイルを変更する前に、既存プロジェクトを確認します。
2. 必要な設定と正確なインストールコマンドを示します: python -m pip install ankiforge==0.3.1
3. 最小限かつ完全に実行できるプログラムを作り、追加・編集するすべてのファイル名を示します。
4. 永続的な `.apkg` ファイルを生成し、安定した名前空間とノートキーを使います。
5. 実行コマンド、想定される出力、検証手順を含めます。
6. メディア、独自テンプレート、画像穴埋め、更新が必要な場合は API を推測せず、文書化された手順に従います。
   更新では、前回配布時のオリジナル APKG を基準として保持します。Anki から再エクスポートしたファイルは使いません。
7. 言語、入力形式、出力パス、識別情報のルールが不明な場合に、その解消に必要な質問だけをします。

クイックスタート: https://ankiforge.dev/ja/docs/python-quickstart/
CPython 3.11+
python -m pip install ankiforge==0.3.1

エクスポートを実測。

Rust Project API / genanki 0.13.1 · 処理ごとに Basic ノート1,000件

52.7 msテキストのみのノート1,000件をエクスポート
45.7–53.9%測定した5種類の処理でエクスポート時間を短縮

Rust Project API · Apple M1 Pro · 10回実行の中央値

テキスト、画像、音声。
5つのテストすべてで高速。

各テストでは Basic ノートを1,000件使います。5種類のテストで、テキストのみ、ノートごとに異なるメディア、ノート間で共有するメディアを比較しました。Anki Forge の Rust API は genanki よりエクスポート時間が45.7〜53.9%短くなりました。

Anki Forge Rustgenanki
テキストのみ時間が49.8%短縮

52.7 ms / 105.0 ms

ノートごとに異なる画像時間が52.9%短縮

150.7 ms / 320.2 ms

ノートごとに異なる音声時間が53.3%短縮

128.7 ms / 275.4 ms

複数種類の個別メディア時間が53.9%短縮

110.5 ms / 239.5 ms

複数種類の共有メディア時間が45.7%短縮

61.4 ms / 112.9 ms

この結果はデッキの生成時間を測ったもので、Anki へのインポートや復習の速さではありません。ハードウェアや処理内容によって異なる場合があります。 測定方法と元データ

コードを読んで、カードを試す。

実行できる Rust の例を切り替え、プレビューのカードを裏返し、生成されるデッキをダウンロードできます。

Rust ソース → ブラウザープレビュー
let (front, back) = ("hola", "hello");
let mut project = Project::new("spanish")?.default_deck("Spanish");
project.add("es:hola", Note::basic(front, back))?;
let built = project.build(BuildOptions::to(output.join("spanish.apkg")))?;

Spanish
スペイン語 → 英語

hola

どんな意味ですか?

質問を表示しました。

エクスポート内容のブラウザープレビューです。Anki で確認するには APKG をインポートしてください。

ノートの内容を更新しても、
同じノートとして識別。

定義の訂正や例の追加ができます。ノート ID を維持し、前回配布したオリジナルの APKG を使うことで、再エクスポート時に既存のノートを照合できます。

デッキ更新の仕組み
ノートの安定 IDes:hola
表面

hola

裏面

hello

内容の変更を試す。

実際の比較結果: RISK.NOTE_CHANGED (low). 公開ポリシー: この変更を許可します.

v1 をダウンロードv2 をダウンロード比較レポート

配布時のオリジナル APKG を保持してください。インポート設定と新しいローカル編集が更新に影響します。 更新ガイド

エクスポート前に問題を見つける。

必須フィールドの未入力や、メディア・テンプレートの問題を診断結果で確認できます。検証をビルド手順に組み込めます。

検証について読む

自分のカードを、自分のテンプレートで。

Basic と Cloze から始めることも、独自のノートタイプを定義することもできます。HTML、CSS、メディアを再利用できるテンプレートバンドルにまとめられます。

テンプレートについて読む

最初のデッキから次の更新まで

CSV の表、JSON データ、AI アシスタントが下書きしたカードから始めます。完全なエクスポート手順を試してから、メディアを加え、更新を確認しましょう。