Victor Giers 3f3377118c auto-git:
[add] dist/assets/index-CY4Ajh2W.js
 [add] dist/assets/index-DI47K8n5.css
 [change] dist/index.html
 [unlink] dist/assets/index-BFOWWhCS.css
 [unlink] dist/assets/index-MTrbilRB.js
2026-04-17 10:24:48 +02:00
2026-04-17 10:24:48 +02:00
2026-03-19 21:07:22 +01:00
2026-03-19 21:07:22 +01:00
2025-08-22 23:42:34 +02:00
2026-03-20 12:00:44 +01:00

Heimgeist

Heimgeist is a local desktop chat client for Ollama. It combines an Electron + React renderer with a FastAPI backend, stores chat history in SQLite, supports optional SearXNG-backed web search, and can enrich prompts with context from local library indexes.

Features

  • Local desktop chat UI with Electron
  • Ollama-backed chat with streaming and non-streaming replies
  • Persistent chat sessions and automatic title generation
  • Edit-and-regenerate flow for earlier user messages
  • Optional web search enrichment with source chips
  • Local library management for RAG-style prompt enrichment
  • Theme selection and UI scale controls

Local Libraries

The DBs tab is no longer a placeholder. You can:

  • create and rename libraries
  • register files
  • let Heimgeist rebuild retrieval automatically when files change
  • open or remove registered files from the UI

When files are added or removed, Heimgeist automatically rebuilds the local RAG pipeline for that database: corpus, enrichment, embeddings, and indexes. In the chat composer, you can select which database the current chat should use. For each chat turn, Heimgeist queries the selected database, turns the top results into a local context block, appends that block to the user prompt, and sends the enriched prompt to Ollama.

Stack

  • Frontend: Electron, React, Vite
  • Backend: FastAPI, SQLAlchemy, SQLite
  • Search enrichment: SearXNG + page fetching/reranking
  • Local RAG pipeline: corpus build, enrichment, embedding, and retrieval helpers under backend/rag/

Development

Requirements:

  • Node.js 18+
  • Python 3.13
  • Ollama running locally
  • Optional: SearXNG on http://127.0.0.1:8888

Quick start:

./run.sh

This creates or refreshes backend/.venv, installs Python dependencies, installs npm dependencies, and starts the dev stack.

On Linux x86_64, run.sh now selects a PyTorch flavor before installing openai-whisper:

  • Steam Deck / SteamOS and other non-NVIDIA Linux hosts default to CPU-only PyTorch, which avoids downloading NVIDIA CUDA runtime wheels that Whisper does not need there.
  • NVIDIA Linux hosts keep the default PyTorch install path.
  • Override with HEIMGEIST_TORCH_FLAVOR=default, HEIMGEIST_TORCH_FLAVOR=cpu, or HEIMGEIST_TORCH_FLAVOR=rocm6.4.
  • Use HEIMGEIST_TORCH_INDEX_URL=... if you need a custom PyTorch wheel index.

Manual startup:

python3.13 -m venv backend/.venv
backend/.venv/bin/python -m pip install --upgrade pip
# Steam Deck / SteamOS / CPU-only Linux:
# backend/.venv/bin/python -m pip install --index-url https://download.pytorch.org/whl/cpu torch
backend/.venv/bin/python -m pip install -r backend/requirements.txt
npm install
npm run dev

File Tree

.
├── backend/
│   ├── main.py
│   ├── local_rag.py
│   ├── rag/
│   ├── websearch.py
│   ├── ollama_client.py
│   ├── models.py
│   ├── database.py
│   ├── schemas.py
│   └── requirements.txt
├── electron/
│   ├── main.cjs
│   └── preload.cjs
├── src/
│   ├── App.jsx
│   ├── LibraryManager.jsx
│   ├── GeneralSettings.jsx
│   ├── InterfaceSettings.jsx
│   ├── WebsearchSettings.jsx
│   ├── markdown.js
│   ├── colorSchemes.js
│   └── styles.css
├── package.json
├── run.sh
└── vite.config.js
Description
Heimgeist is a project with a backend written in Python handling schemas and main logic, along with a frontend using JavaScript for audio input, managed via npm.
Readme 8.3 MiB
Languages
Python 53.4%
JavaScript 38.8%
CSS 6.4%
Shell 1.3%