Ekorbia v0.4 & v0.5 — Spaces, an offline UI, and voice input
Two releases have landed since the cross-platform v0.3. v0.4 brings guided setup, in-app model management, and a UI that runs fully offline. v0.5 gives Ekorbia a voice: on-device dictation you can trigger from anywhere.
v0.4 — the "no terminal required" release
Up to v0.3, getting started still required running
ollama pull in a terminal. v0.4 removes
that requirement.
Guided first-run setup
Launch Ekorbia with no model installed and it now looks
at your machine's memory, recommends a right-sized Gemma
4 (e2b for 8 GB or less, up to
31b for 64 GB and beyond), and downloads it
in-app with a progress bar. If you want folder search it
grabs the nomic-embed-text embedding model
in the same step. No terminal, no guessing which model
fits.
An in-app model manager
A new Settings → Models tab lists your installed models with their on-disk sizes, deletes them with a confirmation, and pulls new ones with a live, cancellable progress bar. It's reachable from wherever you'd want it — Manage models… in the composer's model picker, a Download a model… button when nothing is installed, and the startup "Model not found" dialog all lead to the same place.
Spaces
v0.4 replaces the lightweight sidebar chat groups with Spaces — a named workspace that bundles the context a project needs:
- a default model for new chats in the Space,
- optional pinned files and folders that attach themselves to every new chat,
- optional pinned prompts, and
- an optional Space-scoped memory file.
Any pinned file, folder, or prompt can be locked, which forces it to stay attached and removes the × from its composer chip so it can't be detached mid-chat — handy for a system-prompt-style instruction you always want in force. A Space with no pins and no memory file behaves as a plain organisational bucket, so the old "just a folder" use case still works.
Watch recipes and a Today digest
Creating a watch used to mean filling out a blank form. Now it starts from one-click recipes — Summarise new downloads, Watch a price, Watch job listings, Follow a blog, or Custom — that pre-fill the kind, prompt, cadence, and a model picker that defaults to a model you actually have pulled.
The Watches panel gained an All / Today toggle and a Chat about today button that opens a chat seeded with the last 24 hours of summaries. And folder watches can now skip files already present, so pointing one at a busy folder like Downloads doesn't summarise the entire backlog on the first poll.
Snappier reasoning models
Ekorbia now detects thinking-capable models
(qwen3.x, deepseek-r1,
gpt-oss, …) via Ollama's
/api/show probe and sends
think: false by default — so they answer
right away instead of streaming a long hidden
chain-of-thought first. You get the model's response,
not a wait.
A fully offline UI
This one's invisible until you unplug the network.
React, ReactDOM, Babel-standalone, marked, highlight.js,
DOMPurify, and the Inter / JetBrains Mono / Instrument
Serif fonts now ship inside the app under
ui/vendor/ (pinned versions and checksums)
instead of loading from unpkg.com and Google Fonts at
runtime.
The only network traffic Ekorbia produces is to your
local Ollama server on 127.0.0.1:11434. A
new Playwright spec (offline-boot.spec.js)
boots the UI with every non-localhost request blocked
and fails the build if any external request is even
attempted — so "fully offline" stays true, release over
release.
v0.5 — your voice, on your machine
v0.5 adds voice input, and it holds the same line the rest of the app does: nothing leaves your machine. Speech is transcribed on-device with whisper.cpp — no audio is ever uploaded.
Push-to-talk dictation
There's a new mic button in the composer, between
the prompt button and the model picker. Click it, speak,
and click again to insert the transcript at your cursor;
Esc cancels. First use downloads a small
English model (base.en, about 142 MB;
tiny.en and small.en are also
offered) with a cancellable progress bar, and you manage
them under Settings → Voice.
On Apple Silicon it's Metal-accelerated — a short dictation transcribes in a few hundred milliseconds. Voice is macOS-first for now; the mic permission prompt appears the first time you record.
Hands-free: auto-stop and auto-send
You don't have to click twice. Auto-stop (energy-based voice-activity detection) ends the recording a moment after you stop speaking, and auto-send submits the finished dictation for you — so you can just speak and let it go, no Enter, no second click. Both are on by default and toggleable under Settings → Voice; Esc mid-recording still cancels without sending.
Dictate from anywhere
The same mic button lives in the Spotlight-style quick-query overlay, so you can dictate a question without switching to the main window (recording keeps the overlay open rather than auto-dismissing). And a system-wide, rebindable global voice hotkey (default ⌘⇧V on macOS, Alt+Shift+V on Windows) opens the overlay already listening — dictate from any app without clicking anything first. Rebind it under Settings → General → Voice input.
99 languages, and translate-to-English
Alongside the English-only models, multilingual Whisper
models (base, small,
large-v3-turbo) cover 99 languages.
Settings → Voice adds a language picker
(auto-detect or a specific language) and a
Translate to English toggle — speak in one
language and have the transcript land in English. Both
apply to the multilingual models; the English-only
models always transcribe English.
How to get it
The releases page has the latest bundles for macOS, Windows, and Linux. Existing users upgrade in place — your chats, prompts, and settings carry over, and any old chat groups migrate to Spaces automatically on first launch.
Voice input is macOS-first this release; everything else in v0.4 and v0.5 works across all three platforms.