← Project highlights
LocalChat
A native macOS app for private chat and image generation with open-source models, running entirely on your Mac.
StatusNot live yet. LocalChat isn't publicly released; it's still in development.

Overview
LocalChat lets you chat with language models and generate or edit images without anything leaving your computer. You pick a model from a built-in catalog, it downloads once and is verified against a pinned SHA-256 checksum, and from then on everything runs offline on Apple silicon. You can also import any .gguf model you already have.
How it works
- Chat engine. llama.cpp runs inside the app through a prebuilt, Metal-accelerated framework, so there's nothing else to install. A Swift actor handles loading, chat templates, KV-cache reuse between turns, sampling, streaming, cancellation and context trimming, including
<think>blocks from reasoning models. - Two image engines. stable-diffusion.cpp runs FLUX.2 klein 4B and Qwen Image Edit for instruction-based edits like "make the apple green". Apple's Core ML Stable Diffusion covers 8 GB Macs. A controller routes each model to the right engine.
- One process, two copies of ggml. stable-diffusion.cpp is built from a pinned commit with its copy of ggml linked privately and only its
sd_*API exported, so it coexists with llama.cpp's copy in the same app. - Fits your machine. Memory-fit checks warn before you load a model your Mac can't hold. Shared files (FLUX's text encoder is the same file as the Qwen3 4B chat model) are stored once, and resumable downloads survive interruptions.
- Sandboxed. The app runs under the macOS App Sandbox with only network-client and user-selected file access. Conversations and images are stored as plain JSON and PNG files in its container.
Shipping it
Releases are packaged as a DMG with hdiutil. The project has unit tests plus opt-in integration tests that run real chat and image models end to end. Developer ID signing and notarization are next.