MarginData Labs • Private Build

Margin Writer

Private offline voice dictation and style-matching writing assistant

› Screenshots

3 planned
#01

Margin Writer Obsidian UI with active template options.

· coming soon ·
#02

Onboarding wizard validating GPU and Ollama status.

· coming soon ·
#03

RAG text synchronization progress HUD.

· coming soon ·

› Technical Stack

Local Whisper Style RAG CustomTkinter Ollama

› Architecture Pipeline

Voice Audio Input →Local Whisper Dictation →Style Directory (PDF/TXT) →Style RAG Index (Ollama Embed) →LLM Template Rendering →Obsidian HUD Output

› The Problem

Professional writing requires maintaining a consistent style, tone, and formatting across documents. Voice dictation tools often output flat, unformatted transcripts that require significant editing, and cloud AI editors tend to dilute the author's unique voice.

› What I Built

I built Margin Writer, a local desktop writing HUD. It provides voice-to-text dictation using local Whisper models (with automatic CUDA GPU fallback detection), matches the author's style using a local RAG index that analyzes a custom folder of past writings, and applies formatting/refining templates using local LLMs (Ollama) or secure cloud APIs.

› Core Capabilities

  • Voice dictation with local Whisper (large-v3-turbo) and GPU acceleration checks.
  • On-demand style RAG indexing for TXT and PDF documents via nomic-embed-text.
  • Obsidian-inspired dark HUD overlay with opacity slider and always-on-top pinning.
  • Formatting template engine (expand, formalize, match style, summarize, email response).
  • 3-step onboarding wizard for automatic hardware diagnosis, BYOK keys, and RAG configuration.
  • Local config persistence with JSON state, compiled as a standalone Windows executable.

› Technical Decisions

01

Bundle faster-whisper large-v3-turbo with dynamic CUDA detection to allow GPU speed on nvidia cards while falling back gracefully to CPU.

02

Build a custom file synchronization fingerprint hash to skip Ollama embedding cycles if no local writings changed.

03

Use CustomTkinter to achieve a dark, borderless Obsidian-like aesthetic that integrates seamlessly with modern Windows writing tools.

04

Design a multi-step setup wizard to guide non-technical setup of Ollama, GPU settings, and RAG pathing.

05

Provide a BYOK (Bring Your Own Key) hybrid option so authors can use local models or Groq/Gemini APIs for cost-efficiency.

› What This Demonstrates

Desktop application compilation, offline embedding databases, local Whisper engine integration, onboarding UX design, and secure developer packaging patterns.

› Limitations & Next Steps

  • Add direct Microsoft Word / Google Docs output integration.
  • Support multiple separate style profiles/folders.

› Project Links