A local-first knowledge graph & AI workspace — built like Obsidian, powered by semantic RAG.
Download · Features · Screenshots · AI Setup · Development
WorkspaceGraph is an Electron desktop application that turns a folder of Markdown files into a living knowledge graph. Think Obsidian — but with a built-in AI assistant that uses your own notes as context through a full Retrieval-Augmented Generation (RAG) pipeline, entirely on your machine.
🔒 Your data never leaves your computer. The AI reads your vault, not the cloud. API keys are encrypted locally with
safeStorageand never exposed to the renderer.
| Graph View | Editor (live preview) |
|---|---|
![]() |
![]() |
| Dashboard | Welcome |
|---|---|
![]() |
![]() |
- Live preview with split source/rendered modes
- Frontmatter support (YAML)
- WikiLink
[[Note Title]]creation & navigation
- Interactive force-directed graph of your notes
- WikiLink edges + tag edges
- Local graph (neighbors of a single note)
- Ghost nodes for unresolved links
- Filter by type, tag, degree, orphan, hub
- Chat with your vault — AI gets relevant context automatically
- Supports: Gemini, Claude, OpenAI, Ollama (local), OpenRouter, Grok
- Agent roles: General, Writer, Researcher, Curator, Planner
- Tool use: AI can read and propose edits to your notes (approve/reject UI)
- SQLite FTS5 full-text search (keyword)
- Local vector embeddings via
all-MiniLM-L6-v2(semantic similarity)- Runs 100% offline after first model download (~25MB)
- Vectors persisted to SQLite — no re-indexing on restart
- Status badge shows indexing progress in real time
- Renaming a file automatically updates
[[links]]across the entire vault - Toast notification shows how many links were updated
- AI maintains its own index/sop/log notes in
AI Memory/ - Memory grows over time, making the AI smarter about your specific vault
- Built-in templates: project, task, people, daily, SOP, and more
- Domain overview with checkbox tracking
- Automations & declarative plugins
Grab the installer for your OS from the Releases page:
| OS | File | Notes |
|---|---|---|
| Windows | WorkspaceGraph-<version>-setup.exe |
NSIS installer, x64 |
| macOS | WorkspaceGraph-<version>.dmg |
Drag to Applications |
| Linux | WorkspaceGraph-<version>.AppImage |
chmod +x then run |
Installers are produced automatically from CI when a version tag is pushed (
v*.*.*). No installer for your platform yet? Build from source — it takes ~2 minutes.
git clone https://github.com/ngodingsendiri/WorkspaceGraph.git
cd WorkspaceGraph
npm install
npm run dev # development mode with HMR
npm run build # production build (out/)
npm run build:win # Windows installer (dist/)
npm run build:mac # macOS dmg
npm run build:linux # Linux AppImageGo to Settings → AI Providers and configure at least one provider:
| Provider | What you need |
|---|---|
| Gemini | Google AI API key from ai.google.dev |
| Claude | Anthropic API key from console.anthropic.com |
| OpenAI | OpenAI API key from platform.openai.com |
| Ollama | Ollama running locally (free, fully offline) |
| OpenRouter | OpenRouter API key — access 100+ models |
| Grok | xAI API key or import from the local CLI (auth.json) |
- Install Ollama →
ollama pull llama3.2 - In WorkspaceGraph: Settings → AI Providers → Ollama → Save
- The semantic embedding model downloads automatically on first vault open
User query
│
├─► Active note (highest priority)
├─► WikiLink neighbors (graph traversal)
├─► Backlinks
├─► AI Memory notes (long-term workspace knowledge)
├─► Semantic search (vector similarity — all-MiniLM-L6-v2)
└─► FTS keyword search (SQLite FTS5)
│
▼
Context package → AI provider → Streaming response
WorkspaceGraph works with any folder of Markdown files. There are no required folders.
Optionally, create these for best AI experience:
Your Vault/
├── AI Memory/ ← AI writes here; RAG reads here first
│ ├── 00 Index.md
│ ├── 01 SOP.md
│ └── 02 Log.md
├── .workspacegraph/ ← auto-created (config + SQLite DB)
│ ├── workspace.json
│ └── index.db
└── ... your notes ...
npm run dev # Electron dev server with HMR
npm run typecheck # TypeScript check (node + web)
npm test # Vitest unit tests (1000+ tests)
npm run lint # ESLint
npm run build # Production build| Layer | Technology |
|---|---|
| App shell | Electron (main process) |
| UI | React + Zustand + Vite |
| Graph engine | Custom WikiLink parser + force-layout |
| Search | SQLite FTS5 + Fuse.js |
| Semantic RAG | @xenova/transformers (ONNX / WebAssembly) |
| AI providers | Gemini / Claude / OpenAI / Ollama / OpenRouter / Grok |
| File watching | chokidar |
Every push runs: typecheck → lint → 1000+ vitest tests (with coverage) → production build. All checks must pass on main before a release is cut.
MIT — do whatever you want, attribution appreciated.



