No description
- Nim 100%
| data | ||
| src | ||
| .gitignore | ||
| CLAUDE.md | ||
| custom_deck_spec.md | ||
| defaults.json | ||
| instructions.md | ||
| klash | ||
| klash-gui | ||
| klash.nimble | ||
| klash_gui | ||
| more_vocab1list.txt | ||
| newstructure | ||
| nim.cfg | ||
| nimble.lock | ||
| README.md | ||
| structurejson.md | ||
| test_numbers | ||
klash
Korean flashcard CLI - A terminal-based spaced repetition system (SRS) for learning Korean.
Quick Start
# Build CLI version
nimble build
# Build GUI version (recommended for Korean display)
nimble task gui
# Run GUI with perfect Korean fonts (SDL2)
./klash-gui
# Or run CLI in terminal
./klash
Features
- Bidirectional drilling: Korean→English or English→Korean
- Politeness levels: Practice casual, polite, formal, honorific forms
- Fuzzy matching: Accepts minor typos with adaptive tolerance
- Character drilling: Hangul jamo characters with romanization
- Number systems: Both native Korean and Sino-Korean numbers
- Custom decks: Create curated vocabulary lists
- SRS tracking: Tracks performance statistics across sessions
- In-session editing: Edit, delete, or create new cards during quiz
Font Support
For best Korean character display, use the klash-gui launcher which opens in a new terminal with proper Korean font support (Noto Sans Mono + CJK).
Requirements:
# Check if Korean fonts are installed
fc-list :lang=ko
# Install if needed (Arch Linux)
sudo pacman -S noto-fonts-cjk
Usage Examples
# Run with Korean-optimized font
./klash-gui
# Create custom deck
./klash --cmd
cmd> .newdeck my-vocab
cmd> .editdeck my-vocab
deck:my-vocab>> .add 0 1 2 5-10
deck:my-vocab>> .savedeck
# Run custom deck
./klash-gui --deck my-vocab
# Character drilling only
./klash-gui --characterCardChance 100
# Practice with specific politeness level
./klash-gui --politeness polite,casual
In-Session Commands
During quiz sessions, use dot commands:
.quit/.q- Exit session.skip/.s- Move card to end.back/.b- Go back one card.r- Show romanization (if enabled).edit- Edit current card.delete- Delete card permanently.drop- Remove from session/deck.new- Create new word/phrase.cmd- Enter command mode
Configuration
Edit defaults.json to customize:
- Card type percentages
- Korean vs English serving ratio
- Fuzzy matching tolerance
- Politeness preferences
- Tag filtering
- And more...
Documentation
- CLAUDE.md - Comprehensive developer documentation
- instructions.md - JSON schema and converter specification
- custom_deck_spec.md - Custom deck format details
License
MIT