https://github.com/sorenwacker/graph-core
Hierarchical node management app with tree, card, and graph views built with Vue 3 and Electron
https://github.com/sorenwacker/graph-core
desktop-app electron node-editor typescript vue
Last synced: 27 days ago
JSON representation
Hierarchical node management app with tree, card, and graph views built with Vue 3 and Electron
- Host: GitHub
- URL: https://github.com/sorenwacker/graph-core
- Owner: sorenwacker
- Created: 2026-01-17T08:45:50.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-04-10T21:16:37.000Z (about 1 month ago)
- Last Synced: 2026-04-10T21:29:40.611Z (about 1 month ago)
- Topics: desktop-app, electron, node-editor, typescript, vue
- Language: JavaScript
- Size: 1.51 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing/development.md
Awesome Lists containing this project
README
# Graph Core
[](https://github.com/sorenwacker/graph-core/actions/workflows/ci.yml)



A hierarchical node management application built with Vue 3, Vite, and Electron. Organize tasks, notes, and information in a tree structure with multiple visualization modes.
## Features
- **Multiple Views**: Tree, Cards, Graph, Table, Timeline, Calendar, Tasks, and Persons views
- **Node Types**: Tasks, notes, topics, events, contacts, and more with distinct colors
- **Hierarchical Organization**: Nest nodes within nodes for structured data
- **Detachable Windows**: Open nodes in separate windows for focused editing
- **Workspaces**: Organize nodes into separate workspaces
- **Search**: Spotlight-style search (Cmd+K) for quick navigation
- **Favorites & Recents**: Quick access to frequently used nodes
- **Keyboard Shortcuts**: Efficient navigation and editing
- **AI Notes**: Local LLM integration via Ollama for improving, summarizing, and transforming notes
## AI Notes
The app supports AI-powered note improvements via two providers:
### Ollama (Local)
1. Install Ollama: https://ollama.ai/download
2. Pull a model: `ollama pull llama3.2`
3. Start Ollama: `ollama serve`
4. In Settings, select "Ollama" as provider and test the connection
**Settings:**
- **Endpoint**: Ollama server URL (default: `http://localhost:11434`)
- **Model**: Any Ollama model (default: `llama3.2`)
- **Context Size**: Token limit for processing (4K-128K, default: 32K)
### OpenAI-compatible APIs
Use OpenAI, Azure OpenAI, or any compatible endpoint.
1. In Settings, select "OpenAI-compatible" as provider
2. Enter your API endpoint and API key
3. Select a model and test the connection
**Settings:**
- **Endpoint**: API URL (default: `https://api.openai.com/v1`)
- **API Key**: Your API key (required)
- **Model**: Model name (default: `gpt-4o-mini`)
### Features
- **Preset Actions**: Improve, Summarize, Expand, Fix Grammar, Simplify, Bullet Points, Action Items, Continue
- **Custom Prompts**: Create your own prompts in Settings
- **Preview & Diff**: Review changes before applying
- **Undo Support**: All AI changes can be undone
## Development
### Prerequisites
- Node.js 20+
- npm
### Setup
```bash
npm install
```
### Run Development Server
```bash
# Web only
npm run dev
# Electron app
npm run electron:dev
```
### Run Tests
```bash
npm run test # Watch mode
npm run test:run # Single run
```
### Build
```bash
# Web build
npm run build
# Electron app (macOS)
npm run electron:build
```
### Makefile Commands
| Command | Description |
|---------|-------------|
| `make dev` | Start Electron app in development mode |
| `make install` | Install npm dependencies |
| `make build` | Build Electron app for production |
| `make stop` | Stop running dev servers (kills Electron and Vite processes) |
| `make clean` | Remove build artifacts (dist, dist-electron, .vite cache) |
| `make reset-db` | Delete the SQLite database (with 3s confirmation delay) |
## Tech Stack
- **Frontend**: Vue 3 with Composition API
- **Build Tool**: Vite
- **Desktop**: Electron
- **Database**: SQLite (via better-sqlite3)
- **Testing**: Vitest + Vue Test Utils
- **Visualization**: D3.js for graph view
## Build Notes
### electron-builder compatibility (2026-01-18)
electron-builder >= 26.x has a bug with the `tar` module ESM/CommonJS import on Node.js 20+:
```
SyntaxError: The requested module 'tar' does not provide an export named 'default'
```
Fix: Pin to older versions in package.json:
- `electron-builder`: 25.1.8
- `@electron/rebuild`: 3.6.2