A tool for practice.
Keiko is a simple spaced repetition CLI. It prioritizes practical effectiveness over features.
Currently, Keiko is only available via this repo. This means having Rust installed on your local machine is a prerequisite for installation:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shClone the repo:
git clone https://github.com/gregfromstl/keiko.git ~/keikoBuild and alias the project:
cd ~/keiko && cargo build -r
echo "alias keiko='~/code/keiko/target/release/keiko'" >> ~/.zshrc && source ~/.zshrcWarning
Replace ~/.zshrc with ~/.bashrc if you are using bash rather than zsh.
Add a question with: keiko add or keiko add "question" "answer"
Pracice with: keiko or keiko practice
All items are stored in a SQLite table with the following structure:
{
"id": 1,
"question": "How would you center a header in markdown?",
"answer": "<h1 align='center'>Title</h1>",
}Notice the question could have a variety of answers. Answers are self-assessed to support more open-ended questions like this.
During practice, these atoms are shown to the user in primary order of how recently they were incorrect (oldest first) and secondary order of time since last practiced times 2 to the power of the number of consecutive correct responses. This is similar to spaced repetition but without a prescriptive time between practicing or concept of practice being "due". You are never done practicing and may do so as much or as little as your time allows.
Tip
As part of Keiko's philosophy there's no tagging or categories. What needs to be practiced will surface naturally and what does not will wait until it does.
When an attempt is recorded based on user input, it's stored as follows:
{
"atom": 1,
"time": "2024-04-12 11:37:46",
"response": "<h2 align='center'>Title</h2>",
"correct": 1
}