DaveLLM
Local Ollama Desktop Client
Alpha
Choose a node. Pick a model. Start chatting.
An authenticated Electron and browser client backed by a FastAPI router. DaveLLM discovers models from configured Ollama nodes and keeps conversations on the router host.
~/projects/DaveLLM
$ export DAVE_API_KEY='<local-secret>'
$ export DAVE_NODES='<configured-node-json>'
$ npm start
Starting FastAPI router...
✓ Router health http://127.0.0.1:8000/health
✓ Electron UI http://127.0.0.1:8000/
✓ Model inventory configured Ollama nodes
$
// What it does
◆
Authenticated locally
DAVE_API_KEY protects operational routes. Electron keeps the credential outside renderer state; browser mode stores it for the current tab session.
↔
Configured Ollama nodes
DAVE_NODES defines the available Ollama hosts. The router checks each node's live inventory before allowing a chat request.
◎
Inventory-bound models
Model IDs come from Ollama's /api/tags response. Unknown nodes, unloaded inventories, and unavailable models fail explicitly.
▶
Desktop and browser UI
Use the Electron desktop client or open http://127.0.0.1:8000/ after starting uvicorn for browser mode.
// How it works
Client
Electron / Browser UI
→
Router
FastAPI on port 8000
→
Node
Configured Ollama Host
→
Model
Discovered Inventory
// Get running
1
Clone
git clone https://github.com/DaveHomeAssist/DaveLLM && cd DaveLLM
2
Install
python3 -m venv venv && ./venv/bin/python -m pip install -r requirements.txt && npm ci
3
Configure and start
export DAVE_API_KEY='<local-secret>'
export DAVE_NODES='<configured-node-json>'
npm start
⚡
Active development. Built for personal use, shared for anyone who finds it useful. Expect rough edges. Contributions welcome — check the repo for open issues.