AnkiSpark

AnkiWeb addon 739443485

Fork of Anki AI - Enhance Your Flashcards with ChatGPT and other LLMs

2 other versions of this addon exist. Compare versions ↓

Enriches Anki notes with AI-generated text, images, and speech, and adds YouGlish/OAAD links, with configurable profiles, provider options, overwrite protection, auto-run queues, and scheduled processing.
AI-generated summary; may contain mistakes.

card-creationainote-managementfork-or-reupload

Open on AnkiWeb GitHub Find alternatives

AnkiWeb

Votes
0 (👍 0 · 👎 0)
Updated
2026-02-08
Anki versions
25.09~
License
MIT (from the license file in the package)
Virus scan
No ClamAV match A match does not prove malware. No match does not prove that the code is safe.
Languages
Python, JSON
Description language
en

Maintenance

stale

  • Last update or commit: 2026-02-08 (266 days before the snapshot).
  • Test files: 1.
  • Commits in the last year: 15.
  • Issues are turned off.
  • Pull requests: 0 open, 0 merged.

Will it work on my Anki?

Version branches
Min AnkiMax AnkiUpdated
2.1.5025.09+2026-02-08
History across monthly snapshots

Loading…

Compare versions

The original addon and its forks. The best value in each column is in bold.

VersionWorks on Anki 26.09.3MaintenanceLast activity VotesApprovalGitHub starsNotes
Anki AI - Enhance Your Flashcards with ChatGPT and other LLMs original supported active 22 Oct 2026 👍 33 · 👎 2 81% 8
↳ AI Field Generator - Custom Base URL & Model Support likely stale 9 Jan 2026 👍 0 · 👎 0 – 0
↳ AnkiSpark this addon likely stale 8 Feb 2026 👍 0 · 👎 0 – 1

Forks can add features or work in a different way. Read the description before you change to another version. Fork detection is incomplete, so other versions can exist.

Similar addons

Anki Ai Automation

Transforms Anki note fields in bulk using OpenAI from Browser selections or saved workflows for cleanup, rewriting, tagging, and content generation.

ainote-managementtagging

1 votes 21% approval 👍 1 · 👎 0 ⭐ 3 Anki 25.09.2~ Updated 2026-04-20
Gemini Speak

Uses Google Gemini AI to rewrite selected Anki text for natural speech, then generates audio with voice, model and processing-mode controls, smart caching and no external dependencies.

card-creationai

13 votes 58% approval 👍 11 · 👎 2 ⭐ 0 Anki 2.1.66~ Updated 2025-06-11

Description

AnkiSpark

Fork of the original anki-ai-field-generator by rroessler1

AnkiSpark is an Anki add-on for enriching notes with AI-generated text, images, speech, and dictionary/video links.

AnkiWeb add-on page: https://ankiweb.net/shared/info/739443485

Why this fork

This repository is a maintained fork of rroessler1/anki-ai-field-generator with a stronger configuration system and a production-oriented runtime flow.

Main additions in this fork:

  • Multi-profile config store in config.json (config/config_store.py)
  • Profile scoping by note type
  • Consistent runtime/config-manager UI sections
  • Text/Image/Speech provider separation with per-provider API keys
  • Auto-run queue for newly added notes
  • Scheduled processing controls
  • YouGlish and OAAD link generation with configurable source/target fields
  • Field-update strategy with Fill Empty, This Run, and Permanent controls

Key features

  • AI generation: text, image, and speech pipelines in one run
  • Provider flexibility: OpenAI, Claude, Gemini, DeepSeek, or custom endpoints
  • Profile management: create, duplicate, delete, and activate named configs
  • Safe updates by default: default behavior is Fill Empty Only
  • Overwrite controls:
    • Overwrite existing values by default (Permanent)
    • Overwrite existing values for this run only (This Run)
  • Protected fields:
    • Permanent protected fields (saved in config)
    • This Run protected fields (one-time only)
  • Conflict dialog: choose overwrite / skip / abort when conflicts are detected
  • Auto queue: process new notes in background when enabled
  • Scheduled runs: periodic processing with query, batch limit, and daily cap
  • Link tools: batch OAAD / YouGlish link updates from browser menu

Install

  1. Open Anki.
  2. Go to Tools -> Add-ons -> Get Add-ons....
  3. Enter add-on code: 739443485.
  4. Restart Anki.

Quick start

  1. Open Anki Browser and select notes.
  2. Open Anki AI -> Update Your Flashcards with AI.
  3. Choose a configuration (or click Manage...).
  4. Set provider credentials, prompts, and field mappings.
  5. Run.

Menu actions

From Browser menu Anki AI:

  • Update Your Flashcards with AI
  • Manage AI Configurations
  • Show Running Tasks
  • Open YouGlish Link
  • Update YouGlish Links (<active-config>)
  • Open OAAD Link
  • Update OAAD Links (<active-config>)

Field update strategy

Default behavior: Fill Empty Only.

Precedence (high to low):

  1. Protected fields (This Run and Permanent) are never written
  2. Overwrite This Run
  3. Overwrite by Config (Permanent)
  4. Legacy per-feature overwrite options (OAAD/YouGlish)
  5. Fill empty only

Runtime save-back behavior:

  • If you change persistent settings in the run panel, you are prompted to sync changes back to the active profile in config.json.
  • This Run options are not persisted.

Configuration model

A profile can include:

  • Note type scope
  • Text/image/speech providers and credentials
  • Prompt mappings
  • Retry strategy
  • Auto-run and schedule options
  • OAAD/YouGlish settings
  • Field overwrite and protected field strategy

Profiles are stored in config.json at repository root.

Sanitized examples are provided in:

  • config.json.example (English)
  • config.json.zh.example (中文)

Provider credentials

You need your own API keys and billing setup for providers.

Typical sources:

  • OpenAI: https://platform.openai.com/
  • Anthropic: https://console.anthropic.com/
  • Gemini: https://aistudio.google.com/app/apikey
  • DeepSeek: https://platform.deepseek.com/

Development

Setup

python3 -m pip install -r requirements-dev.txt

Formatting and linting

./pre_checkin.sh

Smoke tests

python3 -m unittest tests.speech.unit_gemini_tts_payload_test -v
python3 -m unittest tests.image.test_gemini_image -v

Note: image test is skipped if GEMINI_API_KEY is not set.

Repository layout

  • __init__.py: add-on entrypoint
  • core/: runtime orchestration (client_factory.py, note_processor.py, scheduler.py)
  • ui/: run window, config manager, progress dialog, shared widgets
  • providers/: LLM and speech clients
  • config/: settings, profile model/store, prompt and speech config
  • utils/: helpers and shared exceptions
  • tests/: smoke/unit tests
  • docs/: requirements and implementation notes

Known scope

  • Desktop Anki add-on only
  • OAAD integration is link-based (no dictionary body scraping)
  • Some advanced scheduler features are still tracked in docs/requirements.md

Contributing

  • Follow style and workflow in AGENTS.md
  • Keep changes scoped and testable
  • Do not commit API keys or sensitive credentials

Credits

  • Original author: Ryan Roessler
  • Fork maintainer: Felix Huo
  • Contributors: Ryan Roessler, Felix Huo, Codex

License

MIT (see LICENSE).

README

AnkiSpark

Fork of the original anki-ai-field-generator by rroessler1

AnkiSpark is an Anki add-on for enriching notes with AI-generated text, images, speech, and dictionary/video links.

AnkiWeb add-on page: https://ankiweb.net/shared/info/739443485

Why this fork

This repository is a maintained fork of rroessler1/anki-ai-field-generator with a stronger configuration system and a production-oriented runtime flow.

Main additions in this fork:

  • Multi-profile config store in config.json (config/config_store.py)
  • Profile scoping by note type
  • Consistent runtime/config-manager UI sections
  • Text/Image/Speech provider separation with per-provider API keys
  • Auto-run queue for newly added notes
  • Scheduled processing controls
  • YouGlish and OAAD link generation with configurable source/target fields
  • Field-update strategy with Fill Empty, This Run, and Permanent controls

Key features

  • AI generation: text, image, and speech pipelines in one run
  • Provider flexibility: OpenAI, Claude, Gemini, DeepSeek, or custom endpoints
  • Profile management: create, duplicate, delete, and activate named configs
  • Safe updates by default: default behavior is Fill Empty Only
  • Overwrite controls:
    • Overwrite existing values by default (Permanent)
    • Overwrite existing values for this run only (This Run)
  • Protected fields:
    • Permanent protected fields (saved in config)
    • This Run protected fields (one-time only)
  • Conflict dialog: choose overwrite / skip / abort when conflicts are detected
  • Auto queue: process new notes in background when enabled
  • Scheduled runs: periodic processing with query, batch limit, and daily cap
  • Link tools: batch OAAD / YouGlish link updates from browser menu

Install

  1. Open Anki.
  2. Go to Tools -> Add-ons -> Get Add-ons....
  3. Enter add-on code: 739443485.
  4. Restart Anki.

Quick start

  1. Open Anki Browser and select notes.
  2. Open Anki AI -> Update Your Flashcards with AI.
  3. Choose a configuration (or click Manage...).
  4. Set provider credentials, prompts, and field mappings.
  5. Run.

Menu actions

From Browser menu Anki AI:

  • Update Your Flashcards with AI
  • Manage AI Configurations
  • Show Running Tasks
  • Open YouGlish Link
  • Update YouGlish Links (<active-config>)
  • Open OAAD Link
  • Update OAAD Links (<active-config>)

Field update strategy

Default behavior: Fill Empty Only.

Precedence (high to low):

  1. Protected fields (This Run and Permanent) are never written
  2. Overwrite This Run
  3. Overwrite by Config (Permanent)
  4. Legacy per-feature overwrite options (OAAD/YouGlish)
  5. Fill empty only

Runtime save-back behavior:

  • If you change persistent settings in the run panel, you are prompted to sync changes back to the active profile in config.json.
  • This Run options are not persisted.

Configuration model

A profile can include:

  • Note type scope
  • Text/image/speech providers and credentials
  • Prompt mappings
  • Retry strategy
  • Auto-run and schedule options
  • OAAD/YouGlish settings
  • Field overwrite and protected field strategy

Profiles are stored in config.json at repository root.

Sanitized examples are provided in:

  • config.json.example (English)
  • config.json.zh.example (中文)

Provider credentials

You need your own API keys and billing setup for providers.

Typical sources:

  • OpenAI: https://platform.openai.com/
  • Anthropic: https://console.anthropic.com/
  • Gemini: https://aistudio.google.com/app/apikey
  • DeepSeek: https://platform.deepseek.com/

Development

Setup

python3 -m pip install -r requirements-dev.txt

Formatting and linting

./pre_checkin.sh

Smoke tests

python3 -m unittest tests.speech.unit_gemini_tts_payload_test -v
python3 -m unittest tests.image.test_gemini_image -v

Note: image test is skipped if GEMINI_API_KEY is not set.

Repository layout

  • __init__.py: add-on entrypoint
  • core/: runtime orchestration (client_factory.py, note_processor.py, scheduler.py)
  • ui/: run window, config manager, progress dialog, shared widgets
  • providers/: LLM and speech clients
  • config/: settings, profile model/store, prompt and speech config
  • utils/: helpers and shared exceptions
  • tests/: smoke/unit tests
  • docs/: requirements and implementation notes

Known scope

  • Desktop Anki add-on only
  • OAAD integration is link-based (no dictionary body scraping)
  • Some advanced scheduler features are still tracked in docs/requirements.md

Contributing

  • Follow style and workflow in AGENTS.md
  • Keep changes scoped and testable
  • Do not commit API keys or sensitive credentials

Credits

  • Original author: Ryan Roessler
  • Fork maintainer: Felix Huo
  • Contributors: Ryan Roessler, Felix Huo, Codex

License

MIT (see LICENSE).