nuvocode/verba

Learn a language by talking to an AI that never gets bored, never judges, and — if you want — never touches the internet.

9

stars

143

commits

TypeScript

primary language

Sep 4, 2026

updated

verba.nuvo.page
language-learning
local-first
offline-first
ollama
rust
srs
tauri
tts
typescript
whisper

README

Verba

Learn a language by talking to an AI that never gets bored, never judges, and — if you want — never touches the internet.

Full conversations with inline corrections, AI-generated graded reading, automatic vocabulary capture, and a voice on both ends. Runs entirely on your machine.

Download License Platforms

Watch a full Verba session — talk, get corrected, hear the reply

▶︎ Click to play — one session end to end: talk, get corrected, hear the reply.


Today — the daily session plan

A session is a plan, not a menu. One theme threads today's conversation, reading, role-play, and the words that are due.

Talk — conversation with the coach

The coach speaks first and keeps the turn moving. Suggestions are there for the moment you stall — not to answer for you.

Settings → Speech — the bundled tier

Voice and dictation, no setup. A 21 MB voice running inside the app: no key, no server, nothing on the network.


Why Verba

  • Offline, genuinely. Point it at Ollama and the whole app — chat, reading, speech, dictation — works on a plane. No account, ever.
  • Your provider, your key. Ollama, LM Studio, OpenAI, Anthropic, Gemini, OpenRouter. Swap in Settings; nothing is locked in.
  • It talks back. Speak, get transcribed, get answered out loud. The bundled models download on demand and run in-process.
  • It remembers. Words you stumble on become a spaced-repetition deck, and the deck feeds tomorrow's session.
  • Your data stays put — and it's yours to move. Everything lives in a local SQLite file. There is no server to sign up to, because there is no server. Export it to one file whenever you like, or point Verba at a folder your own sync service watches (iCloud Drive, Google Drive, Syncthing, a USB stick) and pick up on another machine — same words, same history, nothing to set up again.
  • Eight languages, and adding one is a folder. English, Spanish, French, German, Japanese, Turkish, Italian, Portuguese — see CONTRIBUTING.md.

Download

→ Latest release

Platform
macOS — Apple Silicon (M1–M4).dmg
macOS — Intel.dmg
Windows.exe.msi
Linux.AppImage.deb · .rpm

On a Mac, take aarch64 for Apple Silicon and x64 only for an Intel Mac — the wrong one either refuses to start or crawls under Rosetta.

The build is unsigned — here's how to open it anyway

Verba has no Apple Developer certificate and no Windows code-signing certificate, and we would rather ship the build than gate it behind either. So both operating systems will refuse to open it on the first try.

macOS says "Apple could not verify 'Verba' is free of malware" and offers you Move to Trash. That is not a detection — nothing was scanned and nothing was found. It is what macOS says about any app that hasn't been through Apple's notarisation service. Drag Verba to /Applications, then:

xattr -dr com.apple.quarantine /Applications/Verba.app

Without a terminal: try to open it once, then System Settings → Privacy & Security → scroll down → Open Anyway. (On macOS 15+ the old right-click → Open trick no longer works.)

Windows SmartScreen shows "Windows protected your PC"More infoRun anyway.

Building it yourself sidesteps both, and is the honest option if the above makes you uncomfortable. None of this is unique to Verba — it's the toll every unsigned open-source desktop app pays.

First run

  1. Pick a language pack and a provider in Settings. Test connection lists your installed Ollama models.

  2. Optional — Settings → Speech → Bundled models downloads a voice and a transcriber that run inside the app:

    ModelSizeSpeed
    VoicePiper — one voice per language~21 MB~7× real time
    VoiceKokoro — 53 voices, six languages349 MB~2× real time
    DictationWhisper base / small208 / 639 MBfaster than real time

    Piper is the default a pack recommends — a fiftieth of the download and several times quicker, which for a conversation turn matters more than the last few percent of naturalness.

  3. Hit 🎤 in Talk and say something.

Already run your own speech server, or prefer a cloud voice? Any OpenAI-compatible server works (Kokoro-FastAPI, speaches, LocalAI, vLLM), as do ElevenLabs and Deepgram keys. Verba walks bundled → local server → cloud key → OS voice and always tells you which tier is actually speaking.

Platform honesty: all four targets are packaged from the same source by CI, but the bundled speech engine has only ever run on macOS arm64. If you are the first to run it on Windows or Linux and no voice comes out, that's a bug worth reporting — not you doing it wrong.

Build from source

Needs Node and Rust; for offline, Ollama running.

npm install
npm run tauri dev      # develop
npm run tauri build    # package

More

  • What's inside — the design, the speech ladder, the trade-offs we took and what they cost.
  • Contributing — especially language packs. Adding a language is a folder and one import line.
  • License: MIT. Fork it, bundle it, ship it inside your own tool.

Contributors

ozerozdas

140 commits

HaimiyaWasn

2 commits

mori-ikuri

1 commits

nuvocode/verba

Learn a language by talking to an AI that never gets bored, never judges, and — if you want — never touches the internet.

9

stars

143

commits

TypeScript

primary language

Sep 4, 2026

updated

verba.nuvo.page
language-learning
local-first
offline-first
ollama
rust
srs
tauri
tts
typescript
whisper

README

Verba

Learn a language by talking to an AI that never gets bored, never judges, and — if you want — never touches the internet.

Full conversations with inline corrections, AI-generated graded reading, automatic vocabulary capture, and a voice on both ends. Runs entirely on your machine.

Download License Platforms

Watch a full Verba session — talk, get corrected, hear the reply

▶︎ Click to play — one session end to end: talk, get corrected, hear the reply.


Today — the daily session plan

A session is a plan, not a menu. One theme threads today's conversation, reading, role-play, and the words that are due.

Talk — conversation with the coach

The coach speaks first and keeps the turn moving. Suggestions are there for the moment you stall — not to answer for you.

Settings → Speech — the bundled tier

Voice and dictation, no setup. A 21 MB voice running inside the app: no key, no server, nothing on the network.


Why Verba

  • Offline, genuinely. Point it at Ollama and the whole app — chat, reading, speech, dictation — works on a plane. No account, ever.
  • Your provider, your key. Ollama, LM Studio, OpenAI, Anthropic, Gemini, OpenRouter. Swap in Settings; nothing is locked in.
  • It talks back. Speak, get transcribed, get answered out loud. The bundled models download on demand and run in-process.
  • It remembers. Words you stumble on become a spaced-repetition deck, and the deck feeds tomorrow's session.
  • Your data stays put — and it's yours to move. Everything lives in a local SQLite file. There is no server to sign up to, because there is no server. Export it to one file whenever you like, or point Verba at a folder your own sync service watches (iCloud Drive, Google Drive, Syncthing, a USB stick) and pick up on another machine — same words, same history, nothing to set up again.
  • Eight languages, and adding one is a folder. English, Spanish, French, German, Japanese, Turkish, Italian, Portuguese — see CONTRIBUTING.md.

Download

→ Latest release

Platform
macOS — Apple Silicon (M1–M4).dmg
macOS — Intel.dmg
Windows.exe.msi
Linux.AppImage.deb · .rpm

On a Mac, take aarch64 for Apple Silicon and x64 only for an Intel Mac — the wrong one either refuses to start or crawls under Rosetta.

The build is unsigned — here's how to open it anyway

Verba has no Apple Developer certificate and no Windows code-signing certificate, and we would rather ship the build than gate it behind either. So both operating systems will refuse to open it on the first try.

macOS says "Apple could not verify 'Verba' is free of malware" and offers you Move to Trash. That is not a detection — nothing was scanned and nothing was found. It is what macOS says about any app that hasn't been through Apple's notarisation service. Drag Verba to /Applications, then:

xattr -dr com.apple.quarantine /Applications/Verba.app

Without a terminal: try to open it once, then System Settings → Privacy & Security → scroll down → Open Anyway. (On macOS 15+ the old right-click → Open trick no longer works.)

Windows SmartScreen shows "Windows protected your PC"More infoRun anyway.

Building it yourself sidesteps both, and is the honest option if the above makes you uncomfortable. None of this is unique to Verba — it's the toll every unsigned open-source desktop app pays.

First run

  1. Pick a language pack and a provider in Settings. Test connection lists your installed Ollama models.

  2. Optional — Settings → Speech → Bundled models downloads a voice and a transcriber that run inside the app:

    ModelSizeSpeed
    VoicePiper — one voice per language~21 MB~7× real time
    VoiceKokoro — 53 voices, six languages349 MB~2× real time
    DictationWhisper base / small208 / 639 MBfaster than real time

    Piper is the default a pack recommends — a fiftieth of the download and several times quicker, which for a conversation turn matters more than the last few percent of naturalness.

  3. Hit 🎤 in Talk and say something.

Already run your own speech server, or prefer a cloud voice? Any OpenAI-compatible server works (Kokoro-FastAPI, speaches, LocalAI, vLLM), as do ElevenLabs and Deepgram keys. Verba walks bundled → local server → cloud key → OS voice and always tells you which tier is actually speaking.

Platform honesty: all four targets are packaged from the same source by CI, but the bundled speech engine has only ever run on macOS arm64. If you are the first to run it on Windows or Linux and no voice comes out, that's a bug worth reporting — not you doing it wrong.

Build from source

Needs Node and Rust; for offline, Ollama running.

npm install
npm run tauri dev      # develop
npm run tauri build    # package

More

  • What's inside — the design, the speech ladder, the trade-offs we took and what they cost.
  • Contributing — especially language packs. Adding a language is a folder and one import line.
  • License: MIT. Fork it, bundle it, ship it inside your own tool.

Contributors

ozerozdas

140 commits

HaimiyaWasn

2 commits

mori-ikuri

1 commits

Languages

TypeScript

77.8%

HTML

13.5%

CSS

4.5%

Rust

2.8%

JavaScript

1.2%