# Show HN: Pratevenn – A speaking buddy for Norwegian (Bokmål) learners

> Source: <https://github.com/UrukiApp/pratevenn>
> Published: 2026-10-06 18:56:44+00:00

Pratevenn lets you practice speaking Norwegian with an AI on your own computer while everything stays on your machine.

- Full real-time conversation in natural Norwegian Bokmål with a simple UI
- Fully private and offline (no internet or cloud accounts needed)
- Shows grammar tips as you chat and lets you review your mistakes
- Supports both CPU and NVIDIA GPUs (for faster replies)

Important

Pratevenn is in early development, so bugs and breaking changes are expected.
Please use the [issues page](https://github.com/UrukiApp/pratevenn/issues) to report bugs or request features.

Before you begin, make sure you have [Docker](https://docs.docker.com/get-docker/) (with Compose V2) installed on your system.

Use the included [compose.yaml](https://github.com/UrukiApp/pratevenn/blob/main/compose.yaml), or save the text below as `compose.yaml`:

```
services:
    pratevenn:
        image: ghcr.io/urukiapp/pratevenn-cpu:${PRATEVENN_VERSION:-latest}
        environment:
            - PRATEVENN_MODEL_DIR=/models
            - PRATEVENN_HOST=0.0.0.0
            - PRATEVENN_DATA_DIR=/data
        ports:
            - "127.0.0.1:${PORT:-8000}:8000"
        volumes:
            - models:/models
            - data:/data
        restart: unless-stopped

    pratevenn-cuda:
        image: ghcr.io/urukiapp/pratevenn-cuda:${PRATEVENN_VERSION:-latest}
        environment:
            - PRATEVENN_MODEL_DIR=/models
            - PRATEVENN_HOST=0.0.0.0
            - PRATEVENN_DATA_DIR=/data
            - NVIDIA_VISIBLE_DEVICES=all
            - NVIDIA_DRIVER_CAPABILITIES=compute,utility
        ports:
            - "127.0.0.1:${PORT:-8000}:8000"
        volumes:
            - models:/models
            - data:/data
        deploy:
            resources:
                reservations:
                    devices:
                        -   driver: nvidia
                            count: all
                            capabilities: [ gpu ]
        profiles:
            - cuda
        restart: unless-stopped

volumes:
    data:
        driver: local
    models:
        driver: local
```

Download all the models before starting the container:

```
docker compose run --rm pratevenn setup --full
```

You only need to do this one time, at the start. It also may take a while, depending on your internet speed.

Start the CPU version:

```
docker compose up -d
```

If you have an NVIDIA GPU on your machine, start the CUDA version instead:

```
docker compose --profile cuda up -d pratevenn-cuda
```

Important

Using the CUDA image (using an NVIDIA GPU with 8GB of VRAM or more) is the recommended way of running Pratevenn.
Note that normally on Linux you need to have
the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) installed.

Open [http://localhost:8000](http://localhost:8000) in your browser and click *Start conversation*.

Use standard Docker Compose commands to manage Pratevenn:

```
docker compose up -d                    # Start Pratevenn
docker compose stop                     # Stop Pratevenn (keeps your models and data)
docker compose down                     # Remove containers
docker compose down -v                  # Remove containers (with downloaded models and saved chats)
docker compose logs -f                  # Check the logs
```

The diagram below shows the architecture of Pratevenn and its components in detail.

See [CONTRIBUTING.md](https://github.com/UrukiApp/pratevenn/blob/main/CONTRIBUTING.md) to learn how to contribute.

The logo is generated with the help of [ChatGPT](https://chatgpt.com/).

Additionally, Pratevenn uses the following open-source projects and models for its core functionality:

- [NB-Whisper](https://huggingface.co/NbAiLab/nb-whisper-large) for Norwegian speech recognition.
- [Piper](https://github.com/OHF-Voice/piper1-gpl) for text-to-speech synthesis.
- [Gemma 4 models](https://blog.google/innovation-and-ai/technology/developers-tools/gemma-4/) for the conversation and reviewing the chat.
- [llama.cpp](https://github.com/ggerganov/llama.cpp) and[llama-cpp-python](https://github.com/abetlen/llama-cpp-python) for inference on CPU and
GPU.
- [faster-whisper](https://github.com/SYSTRAN/faster-whisper) for speech-to-text transcription.

Pratevenn is licensed under the MIT License (see [LICENSE](https://github.com/UrukiApp/pratevenn/blob/main/LICENSE)).
