KAnki is a spaced repetition flashcard application designed specifically for jailbroken Kindle devices. It helps users learn vocabulary in any language through digital flashcards with a spaced repetition system.
Huge thanks to PolishPenguin for lending a hand — couldn't do it without them!
You can now use Uben as a companion tool to manage your decks more easily.
Since Kindle itself cannot process .apkg files directly, the workflow is:
.apkg into Uben. kanki_config.js. kanki_config.js to your Kindle (replace your existing file). Advantage of this approach:
- You get a much better UI for editing and creating decks for KAnki on Uben.
- Once you’re done, you just export the ready-to-use configuration to your Kindle.
- No need to manually type out decks on Kindle anymore!
Community - For more information / doubts / suggestions join our discord - https://discord.gg/JtcrpG7ECA
kanki.sh script to the documents folder on your Kindlekanki/js/kanki_config.js file and edit the configuration to match your language.language.ttf and place it in:
kanki/assets/fonts/language.ttfkanki/js/vocabulary.js or kanki/js/kanki_config.js file if you have been using KAnki, ignore if you are a new userkanki/js/kanki_config.js filekanki_config.jslanguage.ttf font file to the new kanki/assets/fonts/language.ttf locationReload button after clicking the 3 dots in the top chromebar in the app to apply changes.Note for users updating to the starred cards version: When updating from a previous version without the star functionality, all your existing cards will initially be unstarred. You'll need to manually star your important cards after updating.
KAnki makes it easy to study any language by changing just a few files:
Download or convert a TTF font file that supports your target language. Rename it to language.ttf and place it in:
kanki/assets/fonts/language.ttf
Edit kanki/js/kanki_config.js to include your language configuration and vocabulary:
/**
* KAnki Configuration
* Edit these settings to customize the app for your language
*/
var KANKI_CONFIG = {
language: "Spanish", // Change this to your language name
levels: ["A1", "A2", "B1"] // These should match the keys in your VOCABULARY object
};
/**
* Vocabulary Data
* Organized by proficiency level
*/
var VOCABULARY = {
"A1": [
{"front": "hello", "back": "hola", "notes": "Greeting"},
// Add more words...
],
"A2": [
{"front": "tomorrow", "back": "mañana", "notes": "Time"},
// Add more words...
],
// Add more levels...
};
For languages with different writing systems, use the reading property:
{"front": "こんにちは", "reading": "konnichiwa", "back": "Hello", "notes": "Greeting"}
For an easy way to manage your flashcards visually, you can use the KAnki Web Editor:
This online editor allows you to: - Upload your existing flashcard configuration files - Add, edit, and delete cards and decks through a user-friendly interface - Preview how your flashcards will look on different Kindle generations - Export your modified configuration back to your Kindle
If you want to convert your KAnki configuration to Anki's .apkg format for the desktop/mobile Anki application, you can use the KankiToAnki converter:
KAnki saves your progress and card statistics using the Kindle's localStorage feature. All your data is stored locally on your device at:
/Kindle/.active_content_sandbox/kanki/resource/LocalStorage/file__0.localstorage
If you ever want to reset all progress or encounter issues with saved data, you can:
kanki.sh # Startup script
kanki/
config.xml # Application configuration
index.html # Main HTML file
main.css # Styles
main.js # Application logic
assets/
fonts/
language.ttf # Language font file
js/
kanki_config.js # Language configuration and vocabulary
polyfill.min.js # ES5 polyfills
sdk.js # Kindle-specific functions
starred property that persists with the deck data$ claude mcp add KAnki \
-- python -m otcore.mcp_server <graph>