IntelliFiller AI - Multi-Provider Prompt Orchestrator

AnkiWeb addon 1149226090

Fork of IntelliFiller ChatGPT (AI-detected; may be wrong)

1 other version of this addon exists. Compare versions ↓

Automatically fills Anki note fields using multiple LLM providers, with customizable prompts, batch processing, selective retries, and encrypted backups.
AI-generated summary; may contain mistakes.

card-creationaibackup-maintenancefork-or-reupload

Open on AnkiWeb GitHub Find alternatives

AnkiWeb

Votes
2 (πŸ‘ 0 Β· πŸ‘Ž 2)
Updated
2026-06-16
Anki versions
25.09.4~
License
MIT (from the GitHub repository)
Virus scan
No ClamAV match A match does not prove malware. No match does not prove that the code is safe.
Languages
Python, JSON, CSV, Handlebars, XML, Twig, YAML, Batchfile
Description language
en

Maintenance

active

  • Last update or commit: 2026-10-13 (19 days before the snapshot).
  • Test files: 12.
  • Commits in the last year: 244.
  • Issues: 1 open, 0 closed.
  • Pull requests: 0 open, 0 merged.
  • Median first response: 306 hours (1 answered issues and pull requests).

Will it work on my Anki?

Version branches
Min AnkiMax AnkiUpdated
24.06.325.09.4+2026-06-16
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
IntelliFiller ChatGPT original supported stale 9 Mar 2025 πŸ‘ 23 Β· πŸ‘Ž 6 62% –
↳ IntelliFiller AI - Multi-Provider Prompt Orchestrator this addon (AI-detected; may be wrong) likely active 13 Oct 2026 πŸ‘ 0 Β· πŸ‘Ž 2 0% 3

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

IntelliFiller ChatGPT has 1 fork β†’

Autofills Anki card fields using ChatGPT or Claude via customizable prompts that reference field names, with saved prompts and batch filling across multiple selected cards.

card-creationai

29 votes 62% approval πŸ‘ 23 Β· πŸ‘Ž 6 Anki 24.11~ Updated 2025-03-09
LLM Card Fill

Queries Anthropic or OpenAI APIs with custom prompts to fill Anki note fields, supporting batch updates, card creation, and per-note-type configurations.

card-creationainote-management

2 votes 9% approval πŸ‘ 1 Β· πŸ‘Ž 1 ⭐ 1 Anki 26.09~ Updated 2026-09-24
OmniPrompt-Anki

Generates AI-powered flashcard content such as definitions, translations, and explanations from multiple cloud or local providers, with reusable prompts, batch processing, and multi-field output.

card-creationainote-managementformattingshortcuts

7 votes 65% approval πŸ‘ 7 Β· πŸ‘Ž 0 ⭐ 9 Anki 2.1.66~ Updated 2026-04-23

Description

IntelliFiller AI - Multi-Provider Prompt Orchestrator

Version License: MIT AnkiWeb

This is an enhanced version of the IntelliFiller addon for Anki, allowing you to automatically fill note fields using various Large Language Models (LLMs).

For a detailed history of changes, please view the release-notes.md file or the Releases Page.

[!IMPORTANT] Upgrading from v2.22.12 (or older) on Windows? Please follow the preliminary Transition Instructions to avoid file lock errors during installation.

Attribution & Source

This add-on is a modified fork of IntelliFiller by ganqqwerty.

[!NOTE] Cross-Platform Ready (Linux & macOS)

Developed & Validated Environments:

  • Anki-Current
    • OS: Windows 11 (Python 3.9.13 via Microsoft Store)
    • Anki: Version 24.06.3 (d678e393) - (Python 3.9.18 / Qt 6.6.2 / PyQt 6.6.1)
  • Anki-Next (Anki 25 Support)
    • OS: Windows 11 (Python 3.13.0 from official installer)
    • Anki: Version 25.09.4 (d52ca669) - (Python 3.13.5 / Qt 6.9.1 / Chromium 122)

Table of Contents

Features

  • Multi-Provider Support: Use models from OpenAI, Anthropic, Google Gemini, OpenRouter, Ollama, and Ollama Cloud.
  • Custom Endpoints: Support for any OpenAI-compatible API (local LLMs, etc.).
  • Configurable Models: Easily switch between models (e.g., GPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Pro).
  • Smart Batch Processing:
    • Batch Processing: Select multiple cards in the browser and fill them in bulk.
    • Configurable Delays: Set fixed and random delays between batches to avoid rate limits and disperse requests.
    • Execution Queue: Queue multiple batch tasks to run sequentially.
    • Pause/Resume: Manually pause processing to inspect results or yield to other tasks.
    • Progress Tracking: Real-time progress dialog with live countdown, pause/resume, and copyable deck path.
    • Connection Watchdog: Actively monitors connection requests and alerts users if a request stalls or hangs.
    • Failures Summary Dialog: Tabbed overview (Successful, Skipped, JSON Failures, Network Failures) showing notes status.
    • Selective Retry: Rerun only the highlighted notes from the failure tabs directly without reprocessing the whole batch.
  • Flexible Prompting:
    • Design prompts that use existing field data (e.g., {{{Sentence}}}) to generate new content.
    • Multi-Field Updates: Support for JSON responses to update multiple fields from a single prompt.
  • Advanced Prompt Management:
    • Master-Detail Interface: Manage your prompts with an intuitive split-view editor.
    • Save & Reuse: Store your favorite prompts for quick access.
  • Secure Backups: Automatic, encrypted backups of your settings and prompts.

Return to Top

Prerequisites

  • Anki (Latest version recommended)
  • Python 3.9 (For building from source)

Return to Top

Installation

Method 1: AnkiWeb (Recommended)

  1. Open Anki.
  2. Go to Tools -> Add-ons.
  3. Click Get Add-ons...
  4. Enter the code: 1149226090
  5. Restart Anki.

Method 2: Manual Installation (Release File)

  1. Download the latest .ankiaddon file from the Releases Page.
  2. Open Anki.
  3. Go to Tools -> Add-ons.
  4. Click Install from file...
  5. Select the downloaded .ankiaddon file.
  6. Restart Anki.

Return to Top

Advanced / Developer Installation

To install this addon from the source code (for development purposes), follow these steps:

  1. Clone this repository.
  2. Copy the IntelliFiller folder into your Anki addons21 directory.
    • To find this directory, open Anki, go to Tools -> Add-ons, click View Files.
  3. Install dependencies (see Build Instructions).
  4. Restart Anki.

Return to Top

Updating

It is recommended to backup your data using the addon's backup feature (Backup tab in settings) before updating. If the "Backups" tab is not available in your current version, please manually copy the entire addon folder from your addons21 directory to a safe location before proceeding.

Updating via .ankiaddon File

  1. Download the new .ankiaddon file from Releases.
  2. Install it using Install from file... in Anki's Add-on menu. This will overwrite the old version while preserving your user files.

Windows Update Instructions

Note: Versions v2.14.8+ include an automatic "Atomic Update" mechanism to prevent file locking errors. Future updates should proceed smoothly.

If you are updating from an older version (< v2.14.8), or if you encounter a PermissionError:

Method 1: Smooth Update (Recommended)

  1. Go to Tools -> Add-ons.
  2. Select IntelliFiller and toggle it to Disabled.
  3. Restart Anki.
  4. Check for updates and install the update.
  5. Enable the addon and Restart Anki.

Method 2: Recovering from a Failed Update If you tried to update without disabling and received an error (and the addon now appears as a number like 1149226090):

  1. Select the numbered addon entry (e.g. 1149226090).
  2. Click Check for Updates again and confirm the update.
  3. Once finished, Restart Anki. The addon should work correctly and the name will be restored.

Technical Note: Atomic Updates

The addon works around Windows file locking by hooking into Anki's update process. Instead of deleting the old folder, it renames it to _IntelliFiller_trash_TIMESTAMP and immediately deletes __init__.py and manifest.json from it. This prevents Anki from loading the trash folder on startup while ensuring the locked binary files can be cleaned up later.

Your persistent settings and prompts (in user_files) will be preserved.

Return to Top

Transition Instructions: Upgrading to v2.24.0 (Windows)

If you are upgrading from v2.22.12 (or older) to v2.24.0 on Windows, you will likely encounter a PermissionError: [WinError 5] Access is denied on _Salsa20.pyd because the old version imported pyzipper at startup, locking the binary files.

To complete the upgrade, you must perform these preliminary steps to release the locks:

Method 1: Via Anki's UI (Recommended)

  1. In Anki, go to Tools -> Add-ons.
  2. Select IntelliFiller and click Toggle Enabled (disabling the addon).
  3. Restart Anki (this starts Anki without loading the addon, releasing all file locks).
  4. Go to Tools -> Add-ons, click Install from file..., and select the new v2.24.0 .ankiaddon file.
  5. Select IntelliFiller, click Toggle Enabled (re-enabling it), and Restart Anki once more.

Method 2: Manual Update

  1. Close Anki completely.
  2. Open Windows Explorer or PowerShell and navigate to your Anki addons directory: C:\Users\voothi\AppData\Roaming\Anki2\addons21\
  3. Delete the entire 1149226090 folder.
  4. Start Anki and install the new v2.24.0 .ankiaddon file.

[!NOTE] Once you have upgraded to v2.24.0, all future updates (e.g. to v2.24.1+) will update automatically and seamlessly without needing these steps because the new version does not load native binaries on startup.

Return to Top

Build Instructions

This project includes structured packaging scripts to manage Python dependencies required by the addon and build distributable releases. All configuration parameters, exclusions, and pipeline steps are defined in packaging.ini.

Unified Release Pipeline (Recommended)

To run a complete clean build (which automatically sets up local vendor packages, executes the pytest suite, and compiles the .ankiaddon archive), run:

python scripts/make_release.py

Manual Packaging Steps

If you want to perform individual steps manually, the following scripts are available in the scripts/packaging/ directory:

1. Setup Local Vendor

To setup the IntelliFiller/vendor directory for your current OS and architecture (cleaning any old or deprecated packages):

python scripts/packaging/setup_local_vendor.py

2. Pre-Build Vendor for All Platforms

To fetch and pre-build binary wheels for all target deployment platforms (Windows, macOS ARM/Intel, Linux):

python scripts/packaging/build_all_vendors.py

3. Create Addon ZIP

To package the compiled addon assets into an .ankiaddon file manually:

python scripts/packaging/create_addon_zip.py

You can optionally specify a custom output directory:

python scripts/packaging/create_addon_zip.py --out "C:/My/Builds"

Packaging Safety Features:

  • Automatically excludes sensitive user files (user_files directory).
  • Excludes secrets (meta.json, credentials.json, settings.json).
  • Logs warnings if potentially sensitive files are detected in deep vendor subfolders.

Return to Top

Usage

  1. Open Anki Browser: Go to the card browser.
  2. Select Cards: Select one or more cards you want to fill.
  3. Right-Click: Choose IntelliFiller from the context menu.
  4. Configure:
    • Select your Provider (OpenAI, Anthropic, Gemini, etc.).
    • Enter your API Key.
    • Choose or type the Model Name.
    • Write your prompt using field placeholders like {{{Front}}}.
    • Select the Destination Field for the result.
    • (Optional) Use the Prompts tab to save or load existing prompt configurations.
  5. Run: Click Run to process the cards.

Editor Integration

You can also launch IntelliFiller directly from the note editor using the dedicated button in the editor toolbar.

Return to Top

Testing

The project includes a unified pytest suite for offline testing of core configurations, API client payload structures, and settings editor UI mapping.

Setup Test Environment

Before running the tests, install the test dependencies from the root directory:

pip install -r tests/requirements.txt

Running Tests

Execute pytest from the project root:

  • Run all tests:
    python -m pytest
    
  • Run only unit tests:
    python -m pytest tests/unit/
    

Mocking Details

To allow tests to run offline without a running Anki desktop instance or PyQt GUI loop:

  • Anki/Qt Mocks: tests/conftest.py mocks aqt, anki, and PyQt elements pre-emptively.
  • Pyzipper & Cryptodome Mocks: Prevents loading native binaries in the third-party vendor directory that might mismatch system Python architectures.
  • Isolated Config: An autouse fixture isolates all ConfigManager load/save operations to a temporary directory per-test, avoiding any pollution of developer/user configuration files.

Return to Top

Configuration Guide

For advanced users who prefer editing JSON files or need to understand the underlying keys, here is an explanation of the configuration parameters.

Keys Explanation

  • apiKey: Your personal OpenAI GPT API key.
  • emulate: Set to "yes" to use fake responses for testing, "no" for real API requests.

Prompt Configuration

The prompts section is a list of prompt objects. Each object contains:

  • prompt: The text template sent to the AI.

    Using Placeholders: The prompt field can contain placeholders in the form of {{{field_name}}}. Each field_name must correspond to a field in your Anki notes.

    Example:

    If you have a note with a "Word" field containing "apple", using {{{Word}}} in your prompt will replace it with "apple".

    Prompt: "Explain the usage of {{{Word}}} in a sentence." Sent to AI: "Explain the usage of apple in a sentence."

  • targetField: The field name where the API response will be stored.

  • promptName: A descriptive name for this prompt shown in the UI.

Return to Top

Troubleshooting & Known Issues

Known Conflicts

  • HyperTTS: This extension may conflict with HyperTTS due to shared dependencies (typing_extensions.py). If you see errors related to this, try disabling HyperTTS temporarily.

Architecture Errors

  • M1/M2 Mac Users: Ensure you are using the ARM64 version of Python and pip when building from source.
  • Intel Mac Users: Use the x86_64 version.

Return to Top

Original Project

This project is a fork of IntelliFiller AI addon for Anki (forked from version 2.1.0). Significant improvements have been made to support a wider range of AI providers and configuration options.

Return to Top

Kardenwort Ecosystem

This project is part of the Kardenwort environment, designed to create a focused and efficient learning ecosystem.

Return to Top

License

This project is licensed under the MIT License.

See the LICENSE file for details.

IntelliFiller Release Notes

Table of Contents

Release Notes v2.24.8

πŸš€ New Features

  • βš™οΈ Configurable Max Network Retries
    • Added a settings option (maxNetworkRetries) to customize the maximum number of network retry attempts (defaulting to 4).
    • Supported range from -1 (finite/disabled endless retry checks) up to 999999 using a flexible SpinBox control in the settings editor.
  • πŸ“‹ Tabbed Summary Dialog Enhancements
    • All Failures Tab: Added a consolidated failures overview tab, displaying all failed notes for convenient selection, copy, and selective retry operations.
    • Smart Tab Selection: Automatically activates the "All Failures" tab when opening the Summary Dialog if errors or failures are present.
    • Retry Recovery Tracking: Displays the number of retries it took for successfully recovered notes.
    • Tooltips & Clipboard Copy: Detailed error logs for each retry attempt are accumulated and shown as tooltips, and can be copied to the clipboard directly using the Ctrl+C shortcut in the tables.
  • πŸ“‹ Prompt Duplication
    • Added a new "Duplicate" button in the Settings window's Prompts tab, allowing users to clone selected prompts instantly and create new ones based on them.
  • πŸ—£οΈ Phrase Translation & Prompt Refinement
    • Adapted English and German prompts into separate Vocabulary Analysis and Phrase Translation templates.
    • Reworked the phrase translation prompt templates to automatically fallback to WordSourceInflectedForm when WordSource is empty, including detailed grammar commentary options.

πŸ› Bug Fixes & Polish

  • πŸ–₯️ UI Scaling and DPI Compatibility
    • Resolved dialog shrinking issues on laptops and high-DPI screens by adding scroll containers for long tabs and adjusting vertical constraints, ensuring the Settings window fits properly without clipping or overlapping the taskbar.
  • πŸ”‡ Reduced Warning Noise
    • Redirected native Anki startup/troubleshooting warning messages to standard output instead of standard error, suppressing unwanted popups while retaining useful terminal logs.
  • 🧹 Cleaned Up Prompts
    • Removed obsolete templates and cleaned up overall settings files and config schemas.

Full Changelog: https://github.com/voothi/20251206123938-intellifiller-ai-addon-for-anki/compare/v2.24.0...v2.24.8

https://www.virustotal.com/gui/file/52fd31b6bfc2541ac86dadd6252d05bf45961daca18a6a74e66fa8cfd765c433

Return to Top

Release Notes v2.24.0

[!IMPORTANT] Upgrading from v2.22.12 (or older) on Windows? Please follow the preliminary Transition Instructions to avoid file lock errors during installation.

πŸš€ New Features

  • πŸ¦™ Ollama & Ollama Cloud Integration
    • Local Ollama Support: Full support for local Ollama deployments (defaulting to http://localhost:11434/api/generate and the llama3 model).
    • Ollama Cloud Integration: Integrated support for Ollama Cloud (defaulting to https://ollama.com/v1 and requiring an API key).
  • πŸ“Š Tabbed Processing Summary Dialog
    • Granular Categories: A new tabbed interface (Successful, Skipped, JSON Failures, Network Failures) showing detailed lists of notes processed.
    • Retry Selected: Users can select one or more failed notes inside the summary tabs and trigger a retry execution queue for only the selected items.
    • Ported from contribution by emilythedev.
  • πŸ§ͺ Robust Testing Infrastructure
    • Pytest Framework: Integrated a full pytest architecture under tests/ with 160+ unit tests covering atomic installers, backup management, LLM providers, and data request logic.
  • βš™οΈ Platform & Packaging Enhancements
    • Configurable Python Version: Added options to target specific Python versions (e.g. --python-version defaulting to Python 3.13) for Linux wheel selection during package vendoring, ensuring future-proofing for Anki v25.
    • Ported from contribution by HummerGJB.

🧹 Maintenance & Cleanup

  • Vendor Clean-up: Removed redundant external dependencies (openai and httpx libraries) from the vendor folder, relying on standard library urllib for OpenAI-compatible and custom endpoints.
  • Clean Packaging & Build Wrappers:
    • Moved release automation scripts into a clean scripts/packaging/ folder.
    • Moved hardcoded packaging options, target platforms, exclusions, and pipeline steps to packaging.ini.
    • Added a root-level delegator scripts/make_release.py that cleans vendor folders, executes the test suite, and compiles the .ankiaddon package dynamically.

Full Changelog: https://github.com/voothi/20251206123938-intellifiller-ai-addon-for-anki/compare/v2.22.12...v2.24.0

Return to Top

Transition Instructions: Upgrading to v2.24.0 (Windows)

If you are upgrading from v2.22.12 (or older) to v2.24.0 on Windows, you will likely encounter a PermissionError: [WinError 5] Access is denied on _Salsa20.pyd because the old version imported pyzipper at startup, locking the binary files.

To complete the upgrade, you must perform these preliminary steps to release the locks:

Method 1: Via Anki's UI (Recommended)

  1. In Anki, go to Tools -> Add-ons.
  2. Select IntelliFiller and click Toggle Enabled (disabling the addon).
  3. Restart Anki (this starts Anki without loading the addon, releasing all file locks).
  4. Go to Tools -> Add-ons, click Install from file..., and select the new v2.24.0 .ankiaddon file.
  5. Select IntelliFiller, click Toggle Enabled (re-enabling it), and Restart Anki once more.

Method 2: Manual Update

  1. Close Anki completely.
  2. Open Windows Explorer or PowerShell and navigate to your Anki addons directory: C:\Users\voothi\AppData\Roaming\Anki2\addons21\
  3. Delete the entire 1149226090 folder.
  4. Start Anki and install the new v2.24.0 .ankiaddon file.

[!NOTE] Once you have upgraded to v2.24.0, all future updates (e.g. to v2.24.1+) will update automatically and seamlessly without needing these steps because the new version does not load native binaries on startup.

Return to Top

Release Notes v2.22.12

πŸš€ New Features

  • πŸ›‘οΈ Connection Watchdog System

    • Automated Stall Detection: A new background monitoring system ("Watchdog") now actively supervises network requests. If a connection silently hangs (stops sending data without throwing an error), the interface explicitly warns you with a "Stalled?" message in red.
    • Intelligent UI Feedback: The "Stalled" warning automatically clears and switches to a "Resuming..." state as soon as network activity is detected again, preventing false alarms during active retries.
  • πŸ”Œ Enhanced Network Controls

    • Configurable Timeout: You can now adjust the Network Timeout directly in the Settings API tab (default: 10 seconds). This controls how long the system waits for a server response before attempting an automatic retry.
    • "Restart" Button: The "Restart Connection" button has been renamed to "Restart" and its logic improved to accurately resume processing from the exact note where it left off, preventing skipped cards or double-counts.

πŸ› Bug Fixes

  • Fixed Timeout Defaults: Resolved an issue where the system could fall back to a hardcoded 60-second timeout even if the configuration was missing. The fallback is now strictly synchronized to 10 seconds across all modules.
  • Queue Logic Fixes: Fixed a bug where waiting/queued windows would incorrectly trigger the "Stalled" warning. The watchdog now correctly ignores tasks that haven't started running yet.
  • Visual improvements: The "Stalled" warning color now matches the "Restart" button color for better visual consistency.

βš™οΈ Configuration

  • Expanded Prompt Library: Added a new built-in prompt "English Analysis and Translation (JSON)". This complex prompt demonstrates how to analyze English words (Lemma, IPA, Morphology) and translate them into multiple target languages (RU, DE, UA) simultaneously using JSON output mode.

Return to Top

Release Notes v2.22.2

πŸš€ New Features

  • ⏸️ Smart Execution Queue & Pause Control Significant overhaul of the batch processing engine to support managing multiple tasks and granular control:

    • Execution Queue: You can now launch multiple batch operations sequentially. If a task is running, subsequent requests are automatically queued and will start processing as soon as the current one finishes.
    • Pause/Resume: Added a manual Pause button to the progress dialog. Pausing a task cleanly stops execution (transactionally after the current note) and yields the execution slot to the next waiting task in the queue.
    • Window Title Updates: The window title now dynamically reflects the queue position (e.g., Queue: #1) when waiting.
  • πŸ–₯️ UI Refinements

    • Deck Path Display: Added a dedicated, read-only field showing the full deck path of the active note.
    • Copy Button: Included a clickable "Copy" icon (page symbol) inside the deck field to instantly copy the full path to the clipboard.
    • Responsive Layout: The progress window is now fully resizeable with a standardized default size.

πŸ› Bug Fixes

  • Fixed Race Condition: Resolved a potential race condition where resuming a paused task could conflict with another active task. The system now correctly re-queues resumed tasks.
  • PyQt6 Compatibility: Fixed an AttributeError related to icon loading on newer Anki versions using PyQt6.

Return to Top

Release Notes v2.20.2

πŸš€ New Features

  • 🎲 Configurable Random Delay Introduced advanced controls for batch processing:
    • Enable Random Delay: A new toggle allows users to add a layer of jitter to batch pauses.
    • Min/Max Random Delay: Users can now precisely configure the random duration range (in seconds). This helps disperse requests, preventing potential rate limits or synchronization issues during high-volume processing.

βš™οΈ Improvements

  • ⚑ Better Default Batch Settings Updated the default "Batch Processing" configuration to provide a smoother, more efficient experience for most users:
    • Batch Size: 20 notes.
    • Fixed Delay: 5 seconds.
    • Random Variance: 0–10 seconds (enabled by default).

Return to Top

Release Notes v2.18.12

πŸ› Bug Fixes

  • Fixed Crash in "Prompts" Submenu Resolved a NameError that caused the addon to crash when attempting to run a prompt solely from the "Prompts" submenu context. The missing underlying helper functions have been restored, ensuring reliable launching of prompts from all menu locations (Favorites/History and the nested Submenu).

Return to Top

Release Notes v2.18.10

βš™οΈ Improvements

  • πŸ”“ Readable Encrypted Backups Refined the logic for password-protected backups. When creating an encrypted archive:
    • The add-on now automatically de-obfuscates your credentials (e.g., API keys) before adding them to the archive.
    • Security: Since the ZIP file itself is protected by your chosen password (AES-256), your sensitive data remains secure during transport.
    • Portability: This ensures that once extracted, the config.json is human-readable and contains valid keys, allowing for easier manual restoration or migration to a new machine without fighting against internal masking mechanisms.

Full Changelog: https://github.com/voothi/20251206123938-intellifiller-ai-addon-for-anki/compare/v2.18.8...v2.18.10

Return to Top

Release Notes v2.18.8

πŸ›‘οΈ Enhanced Backup System

This release introduces a significant upgrade to the automated backup engine, ensuring your data is even safer:

  • Recursive User Files Backup: The backup system now recursively scans the entire user_files directory. This means any nested folders, assets, or sub-directories you create within your user files are now fully preserved in backups.
  • Smart Exclusions:
    • Loop Prevention: The system intelligently identifies if your backup folder is located inside the user_files directory and excludes it from the backup process to prevent recursive "backing up of backups."
    • Cleaner Archives: File exclusion logic has been refined to keep backup archives clean of system files like signatures.json.
  • Robust Zip Creation: The archive generation process has been rewritten to support these recursive structures while maintaining cross-platform compatibility.

βš™οΈ Configuration & Content

  • Expanded Defaults: The default configuration (config.json) has been significantly expanded, likely introducing a robust set of default prompts, presets, or examples to help new users get started immediately.

🧹 Maintenance & Cleanup

  • Documentation Refinement: Removed obsolete developer documentation (DEVELOPER_README.md) and consolidated project information into the main README.md.
  • Asset Cleanup: Removed unused static image assets (editor-button.png, installation.png, etc.) to reduce the overall package size.
  • License Update: Updated the LICENSE file.

Full Changelog: https://github.com/voothi/20251206123938-intellifiller-ai-addon-for-anki/compare/v2.16.2...v2.18.8

Return to Top

Release Notes v2.16.2

πŸš€ Enhancements & Refinements

  • Smart Batch Processing with Countdown:

    • Added a visual countdown timer to the progress dialog during batch processing pauses. Users can now see exactly how many seconds remain before the next batch begins.
    • Live Browser Refresh: The Anki Browser list now automatically refreshes during these batch pauses, allowing users to verify generated content incrementally without waiting for the entire queue to finish.
  • Improved Error Management:

    • Reduced Error Noise: Implemented a new error suppression logic. The native Anki error dialog will now appear only once for the first error encountered during a batch operation. Subsequent errors (e.g., network timeouts) are handled silently or skipped, preventing the user from being flooded with pop-ups and allowing the rest of the batch to proceed smoothly.
  • Robust Cancellation & UI Logic:

    • Graceful Dialog Closing: Overhauled the Progress Dialog's closing behavior. Pressing Esc or clicking the 'X' button now properly triggers the cancellation routineβ€”stopping the worker thread and executing cleanupβ€”rather than just hiding the window.
    • Guaranteed State Reset: Improved cleanup logic to ensure the Anki Browser is always reset (reloading the note list) upon cancellation, preventing any "stuck" UI states or partial updates from being hidden.
  • Network Resilience for Batching:

    • Refined the retry logic for network-related errors (timeouts, connection issues) within the worker thread to better cooperate with the new cancellation and error damping features.

Full Changelog: https://github.com/voothi/20251206123938-intellifiller-ai-addon-for-anki/compare/v2.14.12...v2.16.2

Return to Top

Release Notes v2.14.12

🎨 User Interface Improvements

  • Prompts Tab Overhaul: The Prompts tab in the Settings window has been completely redesigned to match the Master-Detail layout of the Pipelines tab.
    • Unified Design: A list of prompts is now displayed on the left, with editable details on the right.
    • Improved Management: Adding, removing, and editing prompts is now much faster and easier, especially for users with many saved prompts.
  • Standardized Settings Dialog: The Settings window now features standard OK, Cancel, and Save (Apply) buttons, aligning with native OS dialog behaviors.

⚑ Usability Enhancements

  • Smart Change Detection: The Settings window now intelligently tracks your edits.
    • If you close the window (via Esc or 'X') without making changes, it closes immediately.
    • The "Unsaved Changes" warning now only appears if you have actually modified a setting.
  • Reduced Error Noise: Fixed an issue where connection errors during batch processing would flood the screen with popups. The system now limits error reporting to a single notification per batch operation.

πŸ›‘οΈ Security & Build

  • Packaging Upgrades: Enhanced the build scripts to strictly enforce the exclusion of sensitive development files (such as meta.json or local credentials.json) from the final .ankiaddon package.

Full Changelog: https://github.com/voothi/20251206123938-intellifiller-ai-addon-for-anki/compare/v2.14.8...v2.14.12

Return to Top

Release Notes v2.14.8

πŸš€ Key Improvements

πŸ› οΈ Robust Windows Updates (Atomic Rename)

We have completely rewritten the update mechanism for Windows users to prevent the dreaded PermissionError: [WinError 5] Access is denied.

  • The Fix: Instead of trying to delete locked files (like .pyd dependencies) during an update, the addon now "atomically renames" the old version to a temporary trash folder and "neutralizes" it.
  • Auto-Cleanup: These trash folders are automatically cleaned up silently the next time you start Anki.
  • No More Errors: This ensures future updates proceed smoothly without requiring you to manually disable the addon or restart Anki beforehand.

πŸ“¦ New Packaging Tools (For Developers)

Added a specialized packaging utility to safe-guard releases:

  • scripts/package_addon.py: Creates clean .ankiaddon builds.
  • Automatically excludes sensitive user data (user_files, credentials.json, settings.json) and development artifacts (__pycache__).
  • Includes warnings if potentially sensitive files are detected in vendor.

πŸ› Bug Fixes

  • Fixed Startup Crash: Resolved a NameError: name 'Path' is not defined that could occur on initialization.
  • Fixed "Add-on Startup Failed": Corrected an issue where Anki attempted to load "trash" folders from previous updates. We now immediately remove __init__.py and manifest.json from the old folder during the rename process, so Anki correctly ignores it.

Full Changelog: https://github.com/voothi/20251206123938-intellifiller-ai-addon-for-anki/compare/v2.14.2...v2.14.8

Return to Top

Release Notes v2.14.2

πŸ›‘οΈ Backup & Security

  • πŸ” Encrypted Backups Implemented robust AES-256 encryption for backup archives to ensure maximum user data security.

  • πŸ•°οΈ Smart Retention Policies Added configurable retention settings, allowing users to define exactly how many hourly, daily, monthly, and yearly backups to keep.

  • ⏱️ Custom Backup Intervals Users can now set specific time intervals (in minutes) for automated backups and toggle the "Backup on Settings Open" behavior.

πŸ› Bug Fixes & Improvements

  • 🐧 Cross-Platform Build Fixes Resolved critical issues with dependency packaging (specifically pyzipper) on non-Windows platforms, ensuring smoother cross-platform builds.

  • πŸ“¦ Vendor Dependency Management Improved scripts/setup_vendor.py and scripts/build_release.py to ensure correct installation and compatibility of required libraries across different operating systems.

  • 🧱 Stability General improvements to the backup manager logic to handle edge cases better and ensure reliable execution.

Full Changelog: https://github.com/voothi/20251206123938-intellifiller-ai-addon-for-anki/compare/v2.12.2...v2.14.2

Return to Top

Release Notes v2.12.2

πŸš€ New Features & Enhancements

  • πŸ”Œ Expanded LLM Provider Support Added full support for OpenRouter and Custom (OpenAI-compatible) providers, extending the existing integration options.

  • πŸ› οΈ Granular Model Configuration Users can now specify distinct model names for every provider (OpenAI, Anthropic, Gemini, OpenRouter, Custom) independently within the settings.

  • ⚑ Multi-Field Updates Introduced a JSON response format option for prompts. This allows a single AI response to update multiple Anki fields simultaneously based on a configurable field mapping.

πŸ”’ Security & UI

  • πŸ›‘οΈ Security & Obfuscation Added a toggle to obfuscate sensitive credentials in credentials.json along with support for a custom encryption key, preventing API keys from being stored in plain text.

  • πŸ–₯️ UI Modernization Updated the settings interface to accommodate new provider options, model fields, and security controls, including visual indicators for the obfuscation state.

Full Changelog: https://github.com/voothi/20251206123938-intellifiller-ai-addon-for-anki/compare/v2.8.2...v2.12.2

Return to Top

Release Notes v2.6.2

πŸ— Architecture & Core Logic

  • Pipeline Architecture: Introduced a new Pipelines concept in the configuration schema. This logic allows users to define complex workflows (chains of prompts) rather than just single prompt executions.
  • History Management: Implemented a state tracking system (History Management) to keep logs of processed notes, likely preventing redundant generations or allowing rollbacks.
  • Concurrency Model: Added threaded processing logic for multi-note operations. The backend now handles batch requests asynchronously to prevent the Anki UI from freezing during large tasks.

πŸ’» UI Components

  • Progress Dialog: Implemented a dedicated ProgressDialog class that visualizes the status of batch operations (e.g., "Processing 5/20 notes") with cancellation support.
  • Context Menu Integration: Added event handlers to inject "Generate" options into both the Browser context menu (for batch selections) and the Editor toolbar (for single notes).

βš™οΈ Configuration

  • Schema Validation: Enhanced the settings backend to strictly validate the new "Pipeline" structures and API configurations before saving.

Full Changelog: v2.4.12...v2.6.2

Return to Top

Release Notes v2.4.12

πŸ’» Codebase Changes

  • Settings Dialog Implementation: Introduced a new SettingsDialog class using the Qt framework. This creates a dedicated UI layer for configuration, decoupling user settings from manual file edits.
  • Dynamic Configuration Backend: Refactored the config module to support runtime updates. Changes to API Keys and Model Providers (OpenAI, Anthropic, Gemini) are now immediately serialized and applied without requiring an Anki restart.
  • Prompt Management Logic: Implemented the CRUD (Create, Read, Update, Delete) logic for custom prompts directly within the UI. The backend now dynamically handles prompt definitions, allowing for safer and more flexible prompt engineering.
  • Manifest Update: Updated manifest.json to reflect the new version and package structure.

Full Changelog: v2.4.2...v2.4.12

Return to Top

Release Notes v2.4.2

πŸš€ New Features

  • Core Note Processing: Implemented the primary logic for processing Anki notes with AI, enabling the core functionality of the addon.
  • UI & Configuration: Added essential UI components and configurable settings, allowing users to interact with and customize the addon's behavior more effectively.

πŸ”§ Internal Changes

  • Manifest Update: Updated manifest.json to include the correct addon name, package ID, and version information, ensuring proper recognition and installation within Anki.

Full Changelog: v2.2.4...v2.4.2

Return to Top

Release Notes v2.2.4

πŸ› Bug Fixes

  • Fix "Add Prompt" Button: Resolved an issue in the Settings Editor where the "Add Prompt" button was not functioning correctly. You can now successfully add and configure new custom prompts directly through the user interface.

πŸ”§ Internal Changes

  • Manifest Update: Updated manifest.json to strictly define the addon name (IntelliFiller AI Anki Addon) and package details, ensuring correct recognition within Anki.

Full Changelog: v2.2.2...v2.2.4

Return to Top

Release Notes v2.2.2

πŸš€ New Features

  • Multi-Provider Support: added full integration for OpenAI, Anthropic, and Google Gemini LLMs. You can now choose your preferred AI provider and configure API keys directly within the addon.
  • Advanced Settings UI: Introduced a new Settings window with dedicated tabs for API Configuration and Prompt Management, making it easier to manage models and custom prompts.
  • Batch Processing: Added support for processing multiple notes at once in the Anki browser. A new progress dialog now displays the status of batch operations.
  • Run Prompt Dialog: Implemented a new RunPromptDialog that allows you to edit and execute prompts on the fly with built-in field validation.
  • Editor Integration: Added a dedicated button in the Editor and a context menu in the Browser for quick access to AI generation tools.

βš™οΈ Improvements

  • Prompt Validation: Improved logic to validate fields before running prompts, ensuring smoother execution.
  • Cross-Platform Support: Added scripts for cross-platform vendoring of Python dependencies to ensure compatibility across different operating systems.
  • Modular Backend: Refactored the backend with a new data_request module to handle requests efficiently across different AI providers (OpenAI, Anthropic, Gemini).

πŸ“– Documentation

  • Enhanced README: Significantly updated the documentation with a Table of Contents, navigation links, and detailed guides.
  • New Visuals: Added screenshots and step-by-step instructions for Editor integration, multi-provider setup, and custom endpoint configuration.

Return to Top

README

IntelliFiller AI - Multi-Provider Prompt Orchestrator

Version License: MIT AnkiWeb

This is an enhanced version of the IntelliFiller addon for Anki, allowing you to automatically fill note fields using various Large Language Models (LLMs).

For a detailed history of changes, please view the release-notes.md file or the Releases Page.

[!IMPORTANT] Upgrading from v2.22.12 (or older) on Windows? Please follow the preliminary Transition Instructions to avoid file lock errors during installation.

Attribution & Source

This add-on is a modified fork of IntelliFiller by ganqqwerty.

[!NOTE] Cross-Platform Ready (Linux & macOS)

Developed & Validated Environments:

  • Anki-Current
    • OS: Windows 11 (Python 3.9.13 via Microsoft Store)
    • Anki: Version 24.06.3 (d678e393) - (Python 3.9.18 / Qt 6.6.2 / PyQt 6.6.1)
  • Anki-Next (Anki 25 Support)
    • OS: Windows 11 (Python 3.13.0 from official installer)
    • Anki: Version 25.09.4 (d52ca669) - (Python 3.13.5 / Qt 6.9.1 / Chromium 122)

Table of Contents


Features

  • Multi-Provider Support: Use models from OpenAI, Anthropic, Google Gemini, OpenRouter, Ollama, and Ollama Cloud.
  • Custom Endpoints: Support for any OpenAI-compatible API (local LLMs, etc.).
  • Configurable Models: Easily switch between models (e.g., GPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Pro).
  • Smart Batch Processing:
    • Batch Processing: Select multiple cards in the browser and fill them in bulk.
    • Configurable Delays: Set fixed and random delays between batches to avoid rate limits and disperse requests.
    • Execution Queue: Queue multiple batch tasks to run sequentially.
    • Pause/Resume: Manually pause processing to inspect results or yield to other tasks.
    • Progress Tracking: Real-time progress dialog with live countdown, pause/resume, and copyable deck path.
    • Connection Watchdog: Actively monitors connection requests and alerts users if a request stalls or hangs.
    • Failures Summary Dialog: Tabbed overview (Successful, Skipped, JSON Failures, Network Failures) showing notes status.
    • Selective Retry: Rerun only the highlighted notes from the failure tabs directly without reprocessing the whole batch.
  • Flexible Prompting:
    • Design prompts that use existing field data (e.g., {{{Sentence}}}) to generate new content.
    • Multi-Field Updates: Support for JSON responses to update multiple fields from a single prompt.
  • Advanced Prompt Management:
    • Master-Detail Interface: Manage your prompts with an intuitive split-view editor.
    • Save & Reuse: Store your favorite prompts for quick access.
  • Secure Backups: Automatic, encrypted backups of your settings and prompts.

Return to Top

Prerequisites

  • Anki (Latest version recommended)
  • Python 3.9 (For building from source)

Return to Top

Installation

Method 1: AnkiWeb (Recommended)

  1. Open Anki.
  2. Go to Tools -> Add-ons.
  3. Click Get Add-ons...
  4. Enter the code: 1149226090
  5. Restart Anki.

Method 2: Manual Installation (Release File)

  1. Download the latest .ankiaddon file from the Releases Page.
  2. Open Anki.
  3. Go to Tools -> Add-ons.
  4. Click Install from file...
  5. Select the downloaded .ankiaddon file.
  6. Restart Anki.

Return to Top

Advanced / Developer Installation

To install this addon from the source code (for development purposes), follow these steps:

  1. Clone this repository.
  2. Copy the IntelliFiller folder into your Anki addons21 directory.
    • To find this directory, open Anki, go to Tools -> Add-ons, click View Files.
  3. Install dependencies (see Build Instructions).
  4. Restart Anki.

Return to Top

Updating

It is recommended to backup your data using the addon's backup feature (Backup tab in settings) before updating. If the "Backups" tab is not available in your current version, please manually copy the entire addon folder from your addons21 directory to a safe location before proceeding.

Updating via .ankiaddon File

  1. Download the new .ankiaddon file from Releases.
  2. Install it using Install from file... in Anki's Add-on menu. This will overwrite the old version while preserving your user files.

Windows Update Instructions

Note: Versions v2.14.8+ include an automatic "Atomic Update" mechanism to prevent file locking errors. Future updates should proceed smoothly.

If you are updating from an older version (< v2.14.8), or if you encounter a PermissionError:

Method 1: Smooth Update (Recommended)

  1. Go to Tools -> Add-ons.
  2. Select IntelliFiller and toggle it to Disabled.
  3. Restart Anki.
  4. Check for updates and install the update.
  5. Enable the addon and Restart Anki.

Method 2: Recovering from a Failed Update If you tried to update without disabling and received an error (and the addon now appears as a number like 1149226090):

  1. Select the numbered addon entry (e.g. 1149226090).
  2. Click Check for Updates again and confirm the update.
  3. Once finished, Restart Anki. The addon should work correctly and the name will be restored.

Technical Note: Atomic Updates

The addon works around Windows file locking by hooking into Anki's update process. Instead of deleting the old folder, it renames it to _IntelliFiller_trash_TIMESTAMP and immediately deletes __init__.py and manifest.json from it. This prevents Anki from loading the trash folder on startup while ensuring the locked binary files can be cleaned up later.

Your persistent settings and prompts (in user_files) will be preserved.

Return to Top

Transition Instructions: Upgrading to v2.24.0 (Windows)

If you are upgrading from v2.22.12 (or older) to v2.24.0 on Windows, you will likely encounter a PermissionError: [WinError 5] Access is denied on _Salsa20.pyd because the old version imported pyzipper at startup, locking the binary files.

To complete the upgrade, you must perform these preliminary steps to release the locks:

Method 1: Via Anki's UI (Recommended)

  1. In Anki, go to Tools -> Add-ons.
  2. Select IntelliFiller and click Toggle Enabled (disabling the addon).
  3. Restart Anki (this starts Anki without loading the addon, releasing all file locks).
  4. Go to Tools -> Add-ons, click Install from file..., and select the new v2.24.0 .ankiaddon file.
  5. Select IntelliFiller, click Toggle Enabled (re-enabling it), and Restart Anki once more.

Method 2: Manual Update

  1. Close Anki completely.
  2. Open Windows Explorer or PowerShell and navigate to your Anki addons directory: C:\Users\voothi\AppData\Roaming\Anki2\addons21\
  3. Delete the entire 1149226090 folder.
  4. Start Anki and install the new v2.24.0 .ankiaddon file.

[!NOTE] Once you have upgraded to v2.24.0, all future updates (e.g. to v2.24.1+) will update automatically and seamlessly without needing these steps because the new version does not load native binaries on startup.

Return to Top

Build Instructions

This project includes structured packaging scripts to manage Python dependencies required by the addon and build distributable releases. All configuration parameters, exclusions, and pipeline steps are defined in [packaging.ini](file:///u:/voothi/20251206123938-intellifiller-ai-addon-for-anki/scripts/packaging/packaging.ini).

Unified Release Pipeline (Recommended)

To run a complete clean build (which automatically sets up local vendor packages, executes the pytest suite, and compiles the .ankiaddon archive), run:

python scripts/make_release.py

Manual Packaging Steps

If you want to perform individual steps manually, the following scripts are available in the [scripts/packaging/](file:///u:/voothi/20251206123938-intellifiller-ai-addon-for-anki/scripts/packaging/) directory:

1. Setup Local Vendor

To setup the IntelliFiller/vendor directory for your current OS and architecture (cleaning any old or deprecated packages):

python scripts/packaging/setup_local_vendor.py

2. Pre-Build Vendor for All Platforms

To fetch and pre-build binary wheels for all target deployment platforms (Windows, macOS ARM/Intel, Linux):

python scripts/packaging/build_all_vendors.py

3. Create Addon ZIP

To package the compiled addon assets into an .ankiaddon file manually:

python scripts/packaging/create_addon_zip.py

You can optionally specify a custom output directory:

python scripts/packaging/create_addon_zip.py --out "C:/My/Builds"

Packaging Safety Features:

  • Automatically excludes sensitive user files (user_files directory).
  • Excludes secrets (meta.json, credentials.json, settings.json).
  • Logs warnings if potentially sensitive files are detected in deep vendor subfolders.

Return to Top

Usage

  1. Open Anki Browser: Go to the card browser.
  2. Select Cards: Select one or more cards you want to fill.
  3. Right-Click: Choose IntelliFiller from the context menu.
  4. Configure:
    • Select your Provider (OpenAI, Anthropic, Gemini, etc.).
    • Enter your API Key.
    • Choose or type the Model Name.
    • Write your prompt using field placeholders like {{{Front}}}.
    • Select the Destination Field for the result.
    • (Optional) Use the Prompts tab to save or load existing prompt configurations.
  5. Run: Click Run to process the cards.

Editor Integration

You can also launch IntelliFiller directly from the note editor using the dedicated button in the editor toolbar.

Headless Mode (CLI)

IntelliFiller can run headlessly from the command line on any vocabulary TSV file without launching Anki.

Installation

To install the SendTo shortcut for headless mode, run the installer:

python install.py

This will register the IntelliFiller Fill shortcut in your Windows "Send to" menu.

Command Line Interface

You can call the headless entrypoint directly:

python IntelliFiller/headless_entrypoint.py --tsv "[tsv_path]" --prompt "[prompt_name]" [--field-mapping "[json_mapping]"]
  • Arguments:

    • --tsv: Absolute or relative path to the .tsv file containing your vocabulary data.
    • --prompt: Name of the prompt to apply (e.g., English Vocabulary Analysis and Translation (JSON)).
    • --field-mapping: (Optional) JSON string mapping JSON response keys to TSV column headers (e.g., {"ru": "WordDestination"}).
  • Behavior:

    • Automatically loads settings and prompts from the local user_files/ directory.
    • Resolves placeholders like {{{WordSource}}} from TSV column values for each row.
    • Invokes the configured LLM API (OpenAI, Anthropic, Gemini, Ollama, etc.).
    • Writes back the filled columns atomically (preserving other fields).

Return to Top

Testing

The project includes a unified pytest suite for offline testing of core configurations, API client payload structures, and settings editor UI mapping.

Setup Test Environment

Before running the tests, install the test dependencies from the root directory:

pip install -r tests/requirements.txt

Running Tests

Execute pytest from the project root:

  • Run all tests:
    python -m pytest
    
  • Run only unit tests:
    python -m pytest tests/unit/
    

Mocking Details

To allow tests to run offline without a running Anki desktop instance or PyQt GUI loop:

  • Anki/Qt Mocks: [tests/conftest.py](file:///u:/voothi/20251206123938-intellifiller-ai-addon-for-anki/tests/conftest.py) mocks aqt, anki, and PyQt elements pre-emptively.
  • Pyzipper & Cryptodome Mocks: Prevents loading native binaries in the third-party vendor directory that might mismatch system Python architectures.
  • Isolated Config: An autouse fixture isolates all ConfigManager load/save operations to a temporary directory per-test, avoiding any pollution of developer/user configuration files.

Return to Top

Configuration Guide

For advanced users who prefer editing JSON files or need to understand the underlying keys, here is an explanation of the configuration parameters.

Keys Explanation

  • apiKey: Your personal OpenAI GPT API key.
  • emulate: Set to "yes" to use fake responses for testing, "no" for real API requests.

Prompt Configuration

The prompts section is a list of prompt objects. Each object contains:

  • prompt: The text template sent to the AI.

    Using Placeholders: The prompt field can contain placeholders in the form of {{{field_name}}}. Each field_name must correspond to a field in your Anki notes.

    Example:

    If you have a note with a "Word" field containing "apple", using {{{Word}}} in your prompt will replace it with "apple".

    Prompt: "Explain the usage of {{{Word}}} in a sentence." Sent to AI: "Explain the usage of apple in a sentence."

  • targetField: The field name where the API response will be stored.

  • promptName: A descriptive name for this prompt shown in the UI.

Return to Top

Troubleshooting & Known Issues

Known Conflicts

  • HyperTTS: This extension may conflict with HyperTTS due to shared dependencies (typing_extensions.py). If you see errors related to this, try disabling HyperTTS temporarily.

Architecture Errors

  • M1/M2 Mac Users: Ensure you are using the ARM64 version of Python and pip when building from source.
  • Intel Mac Users: Use the x86_64 version.

Return to Top

Original Project

This project is a fork of IntelliFiller AI addon for Anki (forked from version 2.1.0). Significant improvements have been made to support a wider range of AI providers and configuration options.

Return to Top

Kardenwort Ecosystem

This project is part of the Kardenwort environment, designed to create a focused and efficient learning ecosystem.

Return to Top

License

This project is licensed under the MIT License.

See the LICENSE file for details.