Klepai: a free desktop chat for the LLM servers you already run
I run language models on my own hardware, and the hard part was never running them. It was living with them. A terminal for quick questions, a separate web UI per server, history scattered everywhere. So I built Klepai:
I run language models on my own hardware, and the hard part was never running them. It was living with them. A terminal for quick questions, a separate web UI per server, history scattered everywhere. So I built Klepai: a free, open-source desktop app for macOS, Windows and Linux that gives self-hosted models one proper chat window. Version 0.0.1 (Alpha) is out.
CrystalPlatforms
/
klepai
Klepai - OSS Self-Hosted LLM Manager for Every OS.
Klepai by CrystalPlatforms
Klepai is a private, self-hosted LLM manager: a desktop chat app for macOS, Windows and Linux that connects to your own model servers over the LAN.
- Ollama first-class + any OpenAI-compatible endpoint
- Rich chat: streaming, markdown, code blocks, thinking blocks
- Agent mode: your server models code in a project folder through built-in tools, with Claude Code and Codex CLI as ready-made extra brains
- Everything local: SQLite, no accounts, no telemetry
Status: Klepai Alpha v.0.0.1 (in development) Β· see PRD.md
Updates
Update bundles are signature-verified against GitHub Releases: the app ships
with the public key in app/src-tauri/tauri.conf.json
(plugins.updater.pubkey), and release artifacts are signed with the matching
private key at build time.
Maintainer setup (done once, 2026-10-24):
-
Keypair generated with
npx tauri signer generate -w ~/.tauri/klepai.key(no password). The private key lives OUTSIDE the repository, so never commit it. -
If CI ever builds releases, store theβ¦
Quick answer: Klepai is a native client for Ollama and any OpenAI-compatible server on your network. It does not run models. It gives the ones you host a shared, usable front end.
What you get
- One server list: every Ollama or OpenAI-compatible endpoint, live online status, every model listed
- Streamed chat with markdown, syntax-highlighted code, tables, thinking blocks, copy buttons
- Local SQLite storage with full-text search; no accounts, no sign-up
- Export a conversation to Markdown, HTML, PDF, RTF, TXT or JSON
- Images for vision-capable models, by picker or paste
Agent mode
Point it at a project folder and your hosted model works there with real tools: it reads files, edits them, and runs commands to check itself. Nothing happens silently. Every command passes a permission gate where you approve it once, for the conversation, or forever. Claude Code and Codex CLI can also step in as ready-made agents in the same window.
A skill library rounds it out: import .skill packages or plain Markdown files and invoke them from a / palette in any mode.
How the pieces fit
Klepai is built on Tauri v2: React and TypeScript over a Rust core. You add a server once by URL (http://localhost:11434 for local Ollama). Everything the app remembers lives in SQLite on your disk. Updates ship through the app, signature-verified against GitHub Releases; during Alpha, before the first signed feed goes live, the check honestly reports the app as up to date.
Steps: first chat in five minutes
- Grab a build for your platform from GitHub Releases (unsigned, so macOS needs a right-click β Open once; Windows SmartScreen asks once).
- Install Ollama and pull a model, or point at any OpenAI-compatible server you run.
- Add the server in Settings β Servers and watch the status turn green.
- Pick a model and chat.
- Optional: flip to Agent mode, aim it at a folder, approve tools as asked.
When it does not make sense
If you have no model server and no interest in running one, Klepai has nothing to connect to. It manages and chats with models you host; it does not sell compute.
Landing (klepai.pages.dev)
MIT, free, v0.0.1 Alpha: github.com/CrystalPlatforms/klepai. Feedback is fastest as GitHub issues.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β full credit and traffic to the original publisher.