L Loach Docs
Ctrl K

Tech stack

For the curious, here’s the stack behind Loach at a glance.

Stack at a glance

LayerChoice
Desktop shellTauri 2.x (Rust), currently 2.12, with tauri-plugin-single-instance so a second launch brings the running window forward
FrontendReact 19 + Vite 8 + TypeScript
StylingTailwind CSS 3 + shadcn/ui (Radix primitives) + tailwindcss-animate + @tailwindcss/typography
Iconslucide-react
StateZustand (in-memory; SQLite-backed where appropriate)
StorageSQLite via rusqlite (bundled - no system dependency)
Library searchSQLite FTS5 keyword index + optional embeddings (Ollama or an OpenAI-compatible endpoint), merged by reciprocal-rank fusion
Secretskeyring crate → Windows Credential Manager / Linux Secret Service / macOS Keychain
Hashingargon2 (app-lock)
HTTPreqwest with streaming + rustls-tls
Markdownreact-markdown + remark-gfm + rehype-highlight (highlight.js)
Mathremark-math + rehype-katex + KaTeX, lazy-loaded from the bundle on first use
Document parsingpdfjs-dist (PDF) + mammoth (DOCX)
PDF generationprintpdf 0.12 with bundled Liberation Sans fonts, subset at render time (Latin-script text; other characters print as ?)
Built-in toolsIn-process Rust: exmex (calculator), chrono-tz (time zones), sha2, similar (text diff), natord (natural sort), unicode-segmentation (grapheme counts), ipnet
Work in folderswalkdir + glob + regex (no backtracking); encoding_rs + chardetng to edit non-UTF-8 files in their own encoding
MCPBuilt-in client: Streamable HTTP over reqwest, or a local stdio process - on Windows in a job object, on macOS / Linux in its own process group, so stopping a server stops everything it started
Hardware detectionsysinfo (RAM, free disk) + DXGI on Windows / nvidia-smi or amdgpu sysfs on Linux (VRAM), for the onboarding model recommendation
HTML previewA sandboxed frame served from its own loach-sandbox scheme, with its own content security policy: offline, with no access to the app or its commands
UpdatesTauri updater plugin with Ed25519 (minisign) signature verification
System trayTauri 2 built-in (tray-icon feature)
Bundle targetsNSIS .exe on Windows; .deb / .rpm / .AppImage on Linux; .dmg + .app on macOS (Apple Silicon)

Toolchain

Building from source needs Node.js 22.13+ (or 24 / 26+) and Rust 1.90+ - the minimum the dependency tree allows; CI and the Docker build pin Rust 1.90.0 and Node.js 22. Linux builds target glibc 2.35, so Ubuntu 22.04 and Debian 12 are the oldest supported distributions. See Build from source.