Golb
March 2, 2026 ยท View on GitHub
Golb is a desktop AI coding workspace built with Electrobun, Bun, React, Vite, and Tailwind.
It combines:
- a desktop shell and app RPC layer (
src/bun) - an AI/chat server running locally on port
3141(src/bun/ai/chat-server.ts) - a React UI for project selection, chat, planning/debug modes, diffs, and terminal tools (
src/mainview)
Tech Stack
- Bun runtime and package manager
- Electrobun desktop runtime
- React + Vite + Tailwind for UI
- AI SDK + Mistral provider
- Drizzle ORM with local SQLite storage
Prerequisites
- Bun installed (
bun --version) - macOS/Linux/Windows environment supported by Electrobun
- A Mistral API key (either:
MISTRAL_API_KEYin your shell, or- set once in-app and it will be saved to
~/.golb/config.json)
Setup
bun install
Run The App
Recommended: Development with HMR
bun run dev:hmr
This starts:
- Vite dev server on
http://localhost:5173 - Electrobun app process
When Vite is available, the app uses the HMR URL automatically.
Development without HMR
bun run start
This first builds the frontend (vite build) and then runs electrobun dev.
Watch mode (advanced)
bun run dev
Runs electrobun dev --watch. Use this when you intentionally want Electrobun watch behavior without the start prebuild step.
Build
Project script for canary builds:
bun run build:canary
If you need other channels/targets, run Electrobun directly with the desired flags.
Data and Local State
- App data directory:
~/.golb/ - SQLite database:
~/.golb/data.db - Saved API key config:
~/.golb/config.json
Project Layout
src/
bun/
index.ts # Desktop main process + RPC handlers
ai/chat-server.ts # Local AI/chat + plan endpoints (:3141)
db/ # Drizzle schema, migrations, DB bootstrap
mainview/
App.tsx # Root UI shell
pages/index.tsx # Project picker / landing page
pages/home.tsx # Main project workspace/chat UI
electrobun.config.ts # Bundle/copy rules for desktop app
vite.config.ts # Frontend build + dev server config
drizzle.config.ts # Drizzle kit config
Troubleshooting
- If AI responses fail, verify your Mistral key is configured.
- If HMR does not activate, ensure port
5173is free andbun run dev:hmris running. - If app state seems corrupted, inspect
~/.golb/(DB and config live there).