{"slug": "ekorbia-v0-4-v0-5-spaces-an-offline-ui-and-voice-input", "title": "Ekorbia v0.4 & v0.5 — Spaces, an offline UI, and voice input", "summary": "Ekorbia released versions 0.4 and 0.5, adding guided setup, an in-app model manager, Spaces for bundling context, and fully offline UI in v0.4, followed by on-device voice dictation via whisper.cpp in v0.5. The updates eliminate the need for terminal commands and ensure no network traffic beyond the local Ollama server.", "body_md": "[← All posts](./index.html)\n\n#\nEkorbia *v0.4 & v0.5* — Spaces, an offline\nUI, and voice input\n\nTwo releases have landed since the cross-platform v0.3.\n**v0.4** brings guided setup, in-app model\nmanagement, and a UI that runs fully offline.\n**v0.5** gives Ekorbia a voice: on-device dictation\nyou can trigger from anywhere.\n\n## v0.4 — the \"no terminal required\" release\n\nUp to v0.3, getting started still required running\n`ollama pull`\n\nin a terminal. v0.4 removes\nthat requirement.\n\n### Guided first-run setup\n\nLaunch Ekorbia with no model installed and it now looks\nat your machine's memory, recommends a right-sized Gemma\n4 (`e2b`\n\nfor 8 GB or less, up to\n`31b`\n\nfor 64 GB and beyond), and downloads it\nin-app with a progress bar. If you want folder search it\ngrabs the `nomic-embed-text`\n\nembedding model\nin the same step. No terminal, no guessing which model\nfits.\n\n### An in-app model manager\n\nA new **Settings → Models** tab lists your installed\nmodels with their on-disk sizes, deletes them with a\nconfirmation, and pulls new ones with a live,\ncancellable progress bar. It's reachable from wherever\nyou'd want it — **Manage models…** in the composer's\nmodel picker, a **Download a model…** button when\nnothing is installed, and the startup \"Model not found\"\ndialog all lead to the same place.\n\n### Spaces\n\nv0.4 replaces the lightweight sidebar chat groups with\n**Spaces** — a named workspace that bundles the\ncontext a project needs:\n\n-\na\n**default model** for new chats in the Space, -\noptional\n**pinned files and folders** that attach themselves to every new chat, - optional\n**pinned prompts**, and - an optional\n**Space-scoped memory file**.\n\nAny pinned file, folder, or prompt can be\n**locked**, which forces it to stay attached and\nremoves the × from its composer chip so it can't be\ndetached mid-chat — handy for a system-prompt-style\ninstruction you always want in force. A Space with no\npins and no memory file behaves as a plain\norganisational bucket, so the old \"just a folder\" use\ncase still works.\n\n### Watch recipes and a Today digest\n\nCreating a watch used to mean filling out a blank form.\nNow it starts from one-click **recipes** — Summarise\nnew downloads, Watch a price, Watch job listings, Follow\na blog, or Custom — that pre-fill the kind, prompt,\ncadence, and a model picker that defaults to a model you\nactually have pulled.\n\nThe Watches panel gained an **All / Today** toggle\nand a **Chat about today** button that opens a chat\nseeded with the last 24 hours of summaries. And folder\nwatches can now skip files already present, so pointing\none at a busy folder like Downloads doesn't summarise\nthe entire backlog on the first poll.\n\n### Snappier reasoning models\n\nEkorbia now detects thinking-capable models\n(`qwen3.x`\n\n, `deepseek-r1`\n\n,\n`gpt-oss`\n\n, …) via Ollama's\n`/api/show`\n\nprobe and sends\n`think: false`\n\nby default — so they answer\nright away instead of streaming a long hidden\nchain-of-thought first. You get the model's response,\nnot a wait.\n\n### A fully offline UI\n\nThis one's invisible until you unplug the network.\nReact, ReactDOM, Babel-standalone, marked, highlight.js,\nDOMPurify, and the Inter / JetBrains Mono / Instrument\nSerif fonts now ship *inside* the app under\n`ui/vendor/`\n\n(pinned versions and checksums)\ninstead of loading from unpkg.com and Google Fonts at\nruntime.\n\nThe only network traffic Ekorbia produces is to your\nlocal Ollama server on `127.0.0.1:11434`\n\n. A\nnew Playwright spec (`offline-boot.spec.js`\n\n)\nboots the UI with every non-localhost request blocked\nand fails the build if any external request is even\nattempted — so \"fully offline\" stays true, release over\nrelease.\n\n## v0.5 — your voice, on your machine\n\nv0.5 adds voice input, and it holds the same line the\nrest of the app does: nothing leaves your machine.\nSpeech is transcribed on-device with\n[whisper.cpp](https://github.com/ggml-org/whisper.cpp)\n— no audio is ever uploaded.\n\n### Push-to-talk dictation\n\nThere's a new **mic button** in the composer, between\nthe prompt button and the model picker. Click it, speak,\nand click again to insert the transcript at your cursor;\n`Esc` cancels. First use downloads a small\nEnglish model (`base.en`\n\n, about 142 MB;\n`tiny.en`\n\nand `small.en`\n\nare also\noffered) with a cancellable progress bar, and you manage\nthem under **Settings → Voice**.\n\nOn 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.\n\n### Hands-free: auto-stop and auto-send\n\nYou don't have to click twice. **Auto-stop**\n(energy-based voice-activity detection) ends the\nrecording a moment after you stop speaking, and\n**auto-send** submits the finished dictation for you\n— so you can just speak and let it go, no Enter, no\nsecond click. Both are on by default and toggleable\nunder **Settings → Voice**;\n`Esc` mid-recording still cancels without\nsending.\n\n### Dictate from anywhere\n\nThe same mic button lives in the Spotlight-style\nquick-query overlay, so you can dictate a question\nwithout switching to the main window (recording keeps\nthe overlay open rather than auto-dismissing). And a\nsystem-wide, rebindable\n**global voice hotkey** (default `⌘⇧V` on\nmacOS, `Alt+Shift+V` on Windows) opens the\noverlay already listening — dictate from any app without\nclicking anything first. Rebind it under\n**Settings → General → Voice input**.\n\n### 99 languages, and translate-to-English\n\nAlongside the English-only models, multilingual Whisper\nmodels (`base`\n\n, `small`\n\n,\n`large-v3-turbo`\n\n) cover 99 languages.\n**Settings → Voice** adds a language picker\n(auto-detect or a specific language) and a\n**Translate to English** toggle — speak in one\nlanguage and have the transcript land in English. Both\napply to the multilingual models; the English-only\nmodels always transcribe English.\n\n## How to get it\n\nThe\n[releases page](https://github.com/ekorbia/ekorbia-desktop/releases/latest)\nhas the latest bundles for macOS, Windows, and Linux.\nExisting users upgrade in place — your chats, prompts,\nand settings carry over, and any old chat groups migrate\nto Spaces automatically on first launch.\n\nVoice input is macOS-first this release; everything else in v0.4 and v0.5 works across all three platforms.", "url": "https://wpnews.pro/news/ekorbia-v0-4-v0-5-spaces-an-offline-ui-and-voice-input", "canonical_source": "https://ekorbia.com/blog/2026-07-03-ekorbia-v0-4-and-v0-5.html", "published_at": "2026-07-03 00:00:00+00:00", "updated_at": "2026-07-25 23:37:49.461464+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-tools", "ai-products", "natural-language-processing", "developer-tools"], "entities": ["Ekorbia", "Ollama", "Gemma 4", "nomic-embed-text", "whisper.cpp", "React", "ReactDOM", "Babel-standalone"], "alternates": {"html": "https://wpnews.pro/news/ekorbia-v0-4-v0-5-spaces-an-offline-ui-and-voice-input", "markdown": "https://wpnews.pro/news/ekorbia-v0-4-v0-5-spaces-an-offline-ui-and-voice-input.md", "text": "https://wpnews.pro/news/ekorbia-v0-4-v0-5-spaces-an-offline-ui-and-voice-input.txt", "jsonld": "https://wpnews.pro/news/ekorbia-v0-4-v0-5-spaces-an-offline-ui-and-voice-input.jsonld"}}