Chat that streams from your machine
llama.cpp runs inside the app, so there is no separate server to install. Replies stream token by token with Markdown and highlighted code, and each conversation can carry its own system prompt.
Local AI desktop app · In development
Inglenook runs open-weight models on your own computer. Download a model, chat with it, search a document you index yourself, and give your tools an OpenAI-style API that never leaves localhost.
What it does
No terminal juggling between a runtime, a model folder and a chat client. Inglenook keeps them in one desktop app with a keyboard-first layout and light and dark themes.
llama.cpp runs inside the app, so there is no separate server to install. Replies stream token by token with Markdown and highlighted code, and each conversation can carry its own system prompt.
Pick from a curated GGUF catalog (Llama, Mistral, Qwen, Gemma) or register a file you already have. Each entry is checked against your RAM and suggests a smaller quantization when it will not fit.
History lives in a SQLite database on your disk. Rename, archive, filter by title, and export any conversation to Markdown.
Drop a PDF, text, Markdown or HTML file on the window to index it on your machine, then search it by keyword. Results stay in the Documents view.
Turn on the built-in server and point existing OpenAI SDK tools at it. It serves chat completions (streaming or not), the model list and a health check, bound to 127.0.0.1.
Choose how many layers to offload, from CPU-only to full GPU. The setting is saved and the model reloads with it on your next message.
Shortcuts · ⌘ on macOS, Ctrl elsewhere
⌘ NNew chat
⌘ 1–3Chat, Models, Documents
⌘ ,Settings
⌘ BToggle sidebar
Local API
When the API server is on, anything that speaks the OpenAI chat format can use the model Inglenook has loaded. The UI and the API share one engine, so there is a single model in memory.
curl http://localhost:11434/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "local-model",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'POST /v1/chat/completionsStreaming over SSE or a single responseGET /v1/modelsThe model that is loadedGET /healthA quick liveness checkWhat leaves your machine
Conversations, settings and indexed document text are stored in a SQLite database on your computer. Prompts go to the model running in the app, not to a cloud provider, and there is no account to create.
The one outbound request is a model download, fetched from its source on Hugging Face when you start it. A model you already have on disk can be registered without any download.
Get Inglenook
There is no download to offer yet: native builds, signing and offline use still need end-to-end testing. The source is shared by invitation; with access you can build and run it yourself.
git clone git@github.com:aylith-labs/inglenook.git
cd inglenook/app && npm install
# Desktop app with real local inference
npm run tauri dev
# Or a native bundle in src-tauri/target/release/bundle/
npm run tauri build
Needs repository access. The first build compiles llama.cpp and takes a while.
The interface is SvelteKit; the desktop shell and inference are Rust on Tauri 2.
Follow the Tauri 2 prerequisites for your OS, for example WebKitGTK on Linux.
llama.cpp is compiled from source on the first build. Enable a GPU feature for Metal, CUDA or Vulkan.
Not built yet
Chatting with your documents (search does not feed the model), vector search, running several models side by side, and tool calling. GPU memory is not probed, so hardware fit is judged on system RAM.
Follow progress and the changelog