AI-Powered German Language Learning for English Speakers
Achieve conversational fluency with personalized, AI-driven lessons that adapt to your learning pace
Quick Start โข Features โข Architecture โข GPU Setup โข Examples โข Contributing
DeutschBuddy helps English speakers achieve conversational fluency in German through personalized, AI-driven lessons that adapt to your learning pace and style. The app focuses on practical language skills you'll actually use in real-world conversations.
| Problem | DeutschBuddy Solution |
|---|---|
| Generic one-size-fits-all lessons | Personalized Learning Path adapted to your weaknesses |
| Forgetting vocabulary quickly | Spaced Repetition System for optimal retention |
| Unclear progression | CEFR-Aligned Curriculum (A1 โ B1) |
| Passive learning | Interactive Practice with conversations & quizzes |
| Waiting for corrections | Immediate AI Feedback on grammar & vocabulary |
| Struggling with German grammar | English-Focused lessons addressing common pain points |
This project is highly experimental. deutschbuddy is a work in progress and is being actively developed. You may encounter:
- ๐ Bugs and unexpected behavior
- ๐ง Incomplete features or changing functionality
- ๐ Evolving curriculum content
- ๐ Frequent updates that may break existing workflows
Use at your own risk. This app is intended for learning purposes and should not be considered a complete replacement for formal German language education or professional language tutoring.
If you encounter issues or have suggestions, please open an issue!
๐ง AI-Powered Learning
- Personalized Learning Path: AI curriculum agent analyzes your performance and recommends lessons targeting your specific weaknesses
- Spaced Repetition System: Automatically schedules vocabulary and grammar reviews at optimal intervals
- Dual-Layer Curriculum: Static YAML content + dynamic AI guidance for reliable, adaptive learning
๐ Structured Content
- CEFR-Aligned Levels: Progress through A1 โ A2 โ B1 with confidence
- Grammar Explanations: Clear explanations with English comparisons
- Practice Exercises: Interactive quizzes and conversations with instant feedback
๐ฎ Interactive Interface
- TUI Dashboard: Beautiful terminal-based interface with keyboard navigation
- Progress Tracking: Visual mastery scores and completion statistics
- Review Queue: Targeted practice for vocabulary you're about to forget
# Python 3.11+
python --version # Should be 3.11 or higher
# Ollama (https://ollama.ai)
ollama --version# 1. Clone the repository
git clone https://github.com/Web-Dev-Codi/deutschbuddy.git
cd deutschbuddy
# 2. Install dependencies with uv
uv sync
# 3. Pull required AI models
ollama pull llama3.1:8b-instruct
ollama pull mistral:7b-instruct
# 4. Launch DeutschBuddy
uv run deutschbuddyVoilร ! ๐ Press l to start your first lesson!
DeutschBuddy uses a dual-layer curriculum system combining static content with dynamic AI guidance:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Learner completes lesson โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ AI Curriculum Agent โ โ
โ โ โข Analyzes performance โข Identifies knowledge gaps โ โ
โ โ โข Recommends next lesson โข Adjusts difficulty โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ YAML Content Library โ โ
โ โ โข A1/ โข A2/ โข B1/ lesson files โ โ
โ โ โข Grammar โข Vocabulary โข Exercises โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ Learner studies โ Repeat โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Location | Purpose |
|---|---|
data/curriculum/A1/ |
Beginner: greetings, articles, present tense |
data/curriculum/A2/ |
Elementary: past tenses, modal verbs, cases |
data/curriculum/B1/ |
Intermediate: passive, Konjunktiv II, complex clauses |
Responsibilities:
- ๐ Analyze learner performance and mastery scores
- ๐ฏ Recommend optimal next lessons based on individual needs
- ๐ Track CEFR level progression (A1 โ A2 โ B1)
- ๐ Provide personalized paths based on strengths/weaknesses
๐ก Recommended Next Lesson: A1-GRM-015 (Accusative Prepositions)
Why this lesson?
โข You've mastered nominative case (95% accuracy)
โข Accusative prepositions need practice (62% accuracy)
โข Builds on your existing knowledge
๐ Review Queue: 3 cards due
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โ Word โ Last Review โ Next Review โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโค
โ der Apfel โ 2 days ago โ NOW โ
โ sprechen โ 5 days ago โ NOW โ
โ das Haus โ 1 day ago โ Tomorrow โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
DeutschBuddy uses Ollama for local model inference, so Linux GPU acceleration depends on the backend Ollama supports for your hardware:
- NVIDIA: CUDA backend, Compute Capability 5.0+, driver 531+
- AMD: ROCm backend for supported Radeon / Radeon Pro / Instinct GPUs
- Intel: Vulkan backend on Linux, currently experimental in Ollama
- Fallback: CPU mode if no supported GPU backend is available
The app is not limited to Ubuntu or Arch. It can run with GPU acceleration on the major Linux distro families as long as the correct vendor drivers and runtime libraries are installed:
- Ubuntu / Debian: Ubuntu 22.04+, Debian 12+, with Ollama plus vendor CUDA / ROCm / Vulkan packages
- Fedora / RHEL: Fedora, RHEL, Rocky, AlmaLinux, with Ollama plus vendor driver repositories or distro packages
- Arch-based: Arch, Manjaro, EndeavourOS, with current GPU drivers and Vulkan utilities
- openSUSE: Tumbleweed and Leap, with Ollama plus vendor drivers and Vulkan utilities
- Other Linux distros: any modern systemd-based distro with the
matching kernel driver, userspace runtime, and
ollama serve
๐ฆ Step 1: Install Ollama on Linux (click to expand)
curl -fsSL https://ollama.com/install.sh | sh
ollama -v๐ฉ NVIDIA GPUs (CUDA) (click to expand)
Install the current NVIDIA driver / CUDA stack for your distro, then verify detection:
nvidia-smi
ollama serve- Ollama supports NVIDIA GPUs with Compute Capability 5.0+
- Recommended if you have GeForce RTX, RTX A-series, Quadro RTX, Tesla, or newer supported cards
- If you have multiple NVIDIA GPUs, you can limit visibility with
CUDA_VISIBLE_DEVICES
๐ NVIDIA CUDA downloads: developer.nvidia.com/cuda-downloads
๐ฅ AMD GPUs (ROCm) (click to expand)
Install ROCm for your distro, then verify detection:
rocm-smi
ollama serve- Best path for supported AMD Radeon RX, Radeon Pro, and Instinct GPUs on Linux
- If your GPU is close to a supported ROCm target but not recognized, you can try an override
Example for an RX 7800 XT:
export HSA_OVERRIDE_GFX_VERSION=11.0.2
ollama serve๐ AMD ROCm Linux install guide: rocm.docs.amd.com
๐ฆ Intel GPUs and additional Vulkan-capable GPUs (click to expand)
On Linux, Ollama also has experimental Vulkan support, which is the most relevant path for Intel GPUs and some additional AMD setups.
Install your distro's Vulkan driver stack and verification tools, then run:
export OLLAMA_VULKAN=1
vulkaninfo --summary
ollama serve- Best fit for Intel Arc and other Linux systems where Vulkan is the available acceleration path
- Vulkan support in Ollama is still experimental, so stability may vary more than CUDA or ROCm
- If you need to restrict Vulkan devices, use
GGML_VK_VISIBLE_DEVICES
๐ Intel Linux GPU docs: dgpu-docs.intel.com
โ Step 2: Verify your backend (click to expand)
Use the command that matches your GPU vendor:
# NVIDIA
nvidia-smi
# AMD
rocm-smi
# Intel / Vulkan
vulkaninfo --summaryCUDA_VISIBLE_DEVICES: limit NVIDIA GPUs visible to OllamaROCR_VISIBLE_DEVICES: limit AMD GPUs visible to OllamaHSA_OVERRIDE_GFX_VERSION: override AMD GFX target for unsupported-but-similar AMD GPUsOLLAMA_VULKAN: enable Vulkan backendGGML_VK_VISIBLE_DEVICES: limit Vulkan-visible GPUsOLLAMA_GPU_OVERHEAD: reserve VRAM headroom if you hit OOMOLLAMA_NUM_GPU: control GPU offload, though auto-detection is usually fine
- NVIDIA: if GPU detection breaks after suspend/resume, reloading
nvidia_uvmmay help - AMD: on some distros, the
ollamauser may need access to therendergroup - Intel / Vulkan: install both Vulkan drivers and
vulkaninfotooling for your distro - All vendors: if GPU setup is incomplete, Ollama will still run on CPU
๐ก 16 GB VRAM class GPUs such as the RX 7800 XT or RTX 4070 Ti-class cards are usually a strong fit for
llama3.1:8bandmistral:7blocally.
DeutschBuddy follows the Common European Framework of Reference for Languages:
| Level | Badge | Description | Lessons |
|---|---|---|---|
| A1 | ๐ข | Beginner โ greetings, articles, present tense | 20 lessons |
| A2 | ๐ก | Elementary โ Perfekt, modals, cases | 15 lessons |
| B1 | ๐ต | Intermediate โ passive, Konjunktiv II, complex clauses | 10 lessons |
| Key | Action |
|---|---|
q |
Quit |
h |
Home (dashboard) |
? |
Toggle help |
Ctrl+R |
Review queue |
Esc |
Back / Close |
| Key | Action |
|---|---|
l |
Start lesson |
p |
View progress |
r |
Review vocabulary |
s |
Settings |
Press s from home or navigate to Settings in the sidebar.
| Setting | Description | Default |
|---|---|---|
| Curriculum model | AI for lesson recommendations | llama3.1:8b-instruct |
| Interaction model | AI for quizzes & tutoring | mistral:7b-instruct |
| Ollama host | Ollama instance URL | http://localhost:11434 |
Settings are persisted to config/settings.toml.
Contributions are welcome! ๐
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
# Clone your fork
git clone https://github.com/YOUR_USERNAME/deutschbuddy.git
cd deutschbuddy
# Install in dev mode
uv sync --dev
# Run tests (if available)
uv run pytest๐ See CONTRIBUTING.md for detailed guidelines.
- CEFR Framework - Official language proficiency levels
- Ollama Documentation - Local AI model management
- German Grammar Guide - supplementary learning
This project is licensed under the MIT License - see the LICENSE file for details.
Made with โค๏ธ for German learners everywhere