stellavault 0.5.4 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +210 -161
- package/SECURITY.md +23 -0
- package/dist/stellavault.js +547 -164
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,249 +2,297 @@
|
|
|
2
2
|
|
|
3
3
|
> **Drop anything. It compiles itself into knowledge.** Claude remembers everything you know.
|
|
4
4
|
|
|
5
|
-
Self-compiling
|
|
5
|
+
Self-compiling knowledge base with 3D neural graph, AI-powered search, and spaced repetition — available as a **desktop app**, **CLI**, **Obsidian plugin**, and **MCP server**. Your vault files are never modified.
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<img src="images/screenshots/graph-main-2.png" alt="3D Knowledge Graph" width="800" />
|
|
9
9
|
<br><em>Your vault as a neural network. Local-first, no cloud required.</em>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Three Ways to Use Stellavault
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
Any input → auto-classify → raw/ → compile → wiki → connected knowledge
|
|
17
|
-
```
|
|
18
|
-
PDF, DOCX, PPTX, XLSX, YouTube (with transcript), URL, text — everything goes through the same pipeline. You never manually organize.
|
|
14
|
+
### 1. Desktop App (Recommended)
|
|
19
15
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
Download and run — no terminal needed.
|
|
17
|
+
|
|
18
|
+
| Platform | Download | Size |
|
|
19
|
+
|----------|----------|------|
|
|
20
|
+
| **Windows x64** | [Stellavault-win32-x64-0.1.0.zip](https://github.com/Evanciel/stellavault/releases/download/desktop-v0.1.0/Stellavault-win32-x64-0.1.0.zip) | 116 MB |
|
|
21
|
+
| **Linux x64** | [Stellavault-linux-x64-0.1.0.zip](https://github.com/Evanciel/stellavault/releases/download/desktop-v0.1.0/Stellavault-linux-x64-0.1.0.zip) | 107 MB |
|
|
22
|
+
| macOS | Coming soon (requires Apple code signing) | — |
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
**What you get:**
|
|
25
|
+
- Full markdown editor with WYSIWYG toolbar
|
|
26
|
+
- File tree sidebar with search filter
|
|
27
|
+
- `[[wikilink]]` autocomplete as you type
|
|
28
|
+
- Multi-tab editing with Ctrl+S save
|
|
29
|
+
- 3D knowledge graph panel
|
|
30
|
+
- AI panel — semantic search, vault stats, re-index
|
|
31
|
+
- Backlinks panel — see who links to your note
|
|
32
|
+
- Quick Switcher (Ctrl+P) and Command Palette (Ctrl+Shift+P)
|
|
33
|
+
- Dark/light theme
|
|
34
|
+
|
|
35
|
+
### 2. CLI + Web Graph
|
|
36
|
+
|
|
37
|
+
For developers and power users.
|
|
27
38
|
|
|
28
39
|
```bash
|
|
29
|
-
npm install -g stellavault
|
|
30
|
-
stellavault init
|
|
31
|
-
stellavault graph
|
|
40
|
+
npm install -g stellavault # or: npx stellavault
|
|
41
|
+
stellavault init # Interactive setup wizard
|
|
42
|
+
stellavault graph # Launch 3D graph in browser
|
|
32
43
|
```
|
|
33
44
|
|
|
34
|
-
> **Prerequisites**: Node.js 20
|
|
35
|
-
|
|
36
|
-
|
|
45
|
+
> **Prerequisites**: Node.js 20+. Run `stellavault doctor` to diagnose setup issues.
|
|
46
|
+
|
|
47
|
+
### 3. Obsidian Plugin
|
|
48
|
+
|
|
49
|
+
Use Stellavault intelligence inside Obsidian.
|
|
50
|
+
|
|
51
|
+
1. Download from [stellavault-obsidian releases](https://github.com/Evanciel/stellavault-obsidian/releases/latest)
|
|
52
|
+
2. Place `main.js`, `manifest.json`, `styles.css` in `.obsidian/plugins/stellavault/`
|
|
53
|
+
3. Enable in Settings → Community plugins
|
|
54
|
+
4. Start the API server: `npx stellavault graph` in your vault folder
|
|
55
|
+
|
|
56
|
+
**Features:** Semantic search modal, memory decay sidebar, learning path suggestions, auto-indexing on file changes.
|
|
57
|
+
|
|
58
|
+
---
|
|
37
59
|
|
|
38
60
|
## The Pipeline
|
|
39
61
|
|
|
40
62
|
```
|
|
41
63
|
Capture ──→ Organize ──→ Distill ──→ Express
|
|
42
64
|
|
|
43
|
-
|
|
44
|
-
→ auto-extract text # unpdf, mammoth, yt-dlp
|
|
45
|
-
→ raw/ (fleeting) # Zettelkasten inbox
|
|
46
|
-
→ compile → _wiki/ # Auto: concepts + backlinks
|
|
47
|
-
→ stellavault draft "topic" # Blog, report, or outline
|
|
65
|
+
Drop anything → auto-extract → raw/ → compile → _wiki/ → draft
|
|
48
66
|
```
|
|
49
67
|
|
|
50
|
-
|
|
68
|
+
Inspired by [Karpathy's self-compiling knowledge](https://karpathy.ai/) architecture. Every input flows through the same four-stage pipeline.
|
|
69
|
+
|
|
70
|
+
### Ingest Anything (14 formats)
|
|
51
71
|
|
|
52
72
|
| Input | How |
|
|
53
73
|
|-------|-----|
|
|
54
|
-
| PDF, DOCX, PPTX, XLSX | `stellavault ingest report.pdf`
|
|
55
|
-
| JSON, CSV, XML, YAML | `stellavault ingest data.json`
|
|
56
|
-
| HTML, RTF | `stellavault ingest page.html` — clean text extraction |
|
|
74
|
+
| PDF, DOCX, PPTX, XLSX | `stellavault ingest report.pdf` |
|
|
75
|
+
| JSON, CSV, XML, YAML, HTML, RTF | `stellavault ingest data.json` |
|
|
57
76
|
| YouTube | `stellavault ingest https://youtu.be/...` — transcript + timestamps |
|
|
58
|
-
| URL | `stellavault ingest https://...` — HTML →
|
|
77
|
+
| URL | `stellavault ingest https://...` — HTML → markdown |
|
|
59
78
|
| Text | `stellavault ingest "quick thought"` |
|
|
60
79
|
| Folder | `stellavault ingest ./papers/` — batch all files |
|
|
61
|
-
| Web UI | Drag & drop files
|
|
80
|
+
| Desktop / Web UI | Drag & drop files directly |
|
|
62
81
|
|
|
63
82
|
### Express: Get Knowledge Out
|
|
64
83
|
|
|
65
84
|
```bash
|
|
66
85
|
stellavault draft "AI" # Rule-based scaffold (free)
|
|
67
|
-
stellavault draft "AI" --ai # Claude API writes full draft
|
|
68
|
-
stellavault draft "AI" --format report # Formal report
|
|
69
|
-
stellavault draft --format
|
|
86
|
+
stellavault draft "AI" --ai # Claude API writes full draft
|
|
87
|
+
stellavault draft "AI" --format report # Formal report
|
|
88
|
+
stellavault draft --format instagram # Social media format
|
|
70
89
|
```
|
|
71
90
|
|
|
72
|
-
|
|
91
|
+
## MCP Integration (21 Tools)
|
|
73
92
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
Session → session-save → daily-log → flush → wiki
|
|
78
|
-
↑ ↓
|
|
79
|
-
└──── Claude reads wiki via MCP (20 tools) ←─┘
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Every conversation makes your knowledge base smarter:
|
|
93
|
+
Connect Stellavault to Claude Code or Claude Desktop:
|
|
83
94
|
|
|
84
95
|
```bash
|
|
85
|
-
|
|
86
|
-
echo "Decided to use JWT. Lesson: never store tokens in localStorage" | stellavault session-save
|
|
87
|
-
|
|
88
|
-
# Flush daily logs → extract concepts → rebuild wiki
|
|
89
|
-
stellavault flush
|
|
90
|
-
|
|
91
|
-
# Or set up Claude Code hooks for full automation
|
|
92
|
-
# See: docs/hooks-setup.md
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## Daily Commands
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
stellavault ask "What did I learn about X?" # Q&A from vault
|
|
99
|
-
stellavault brief # Morning knowledge briefing
|
|
100
|
-
stellavault decay # What's fading from memory?
|
|
101
|
-
stellavault lint # Health score (0-100)
|
|
102
|
-
stellavault learn # AI learning path
|
|
103
|
-
stellavault flush # Daily logs → wiki compilation
|
|
104
|
-
stellavault digest --visual # Weekly Mermaid chart report
|
|
96
|
+
claude mcp add stellavault -- stellavault serve
|
|
105
97
|
```
|
|
106
98
|
|
|
107
|
-
|
|
99
|
+
Claude can now search, ask, draft, lint, and analyze your vault directly.
|
|
108
100
|
|
|
109
101
|
| Tool | What it does |
|
|
110
102
|
|------|-------------|
|
|
111
|
-
| `search` | Hybrid
|
|
112
|
-
| `ask` | Q&A with
|
|
113
|
-
| `generate-draft` |
|
|
114
|
-
| `get-
|
|
115
|
-
| `get-related` | Semantically similar documents |
|
|
116
|
-
| `list-topics` | Topic cloud |
|
|
117
|
-
| `get-decay-status` | Memory decay report |
|
|
118
|
-
| `get-morning-brief` | Daily knowledge briefing |
|
|
119
|
-
| `get-learning-path` | AI learning recommendations |
|
|
103
|
+
| `search` | Hybrid BM25 + vector + RRF search |
|
|
104
|
+
| `ask` | Q&A with vault-grounded answers |
|
|
105
|
+
| `generate-draft` | AI drafts from your knowledge |
|
|
106
|
+
| `get-decay-status` | Memory decay report (FSRS) |
|
|
120
107
|
| `detect-gaps` | Knowledge gap analysis |
|
|
121
|
-
| `get-
|
|
122
|
-
| `link-code` | Code-knowledge connections |
|
|
108
|
+
| `get-learning-path` | Personalized review recommendations |
|
|
123
109
|
| `create-knowledge-node` | AI creates wiki-quality notes |
|
|
124
|
-
| `
|
|
125
|
-
|
|
|
126
|
-
| `create-snapshot` / `load-snapshot` | Context snapshots |
|
|
127
|
-
| `generate-claude-md` | Auto-generate CLAUDE.md |
|
|
128
|
-
| `export` | JSON/CSV export |
|
|
129
|
-
| `federated-search` | P2P federated search |
|
|
110
|
+
| `federated-search` | P2P search across connected vaults |
|
|
111
|
+
| + 13 more | Documents, topics, decisions, snapshots, export |
|
|
130
112
|
|
|
131
|
-
##
|
|
113
|
+
## Intelligence
|
|
132
114
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
stellavault
|
|
136
|
-
stellavault
|
|
137
|
-
|
|
138
|
-
|
|
115
|
+
| Feature | Command |
|
|
116
|
+
|---------|---------|
|
|
117
|
+
| Memory Decay | `stellavault decay` — what you're forgetting (FSRS) |
|
|
118
|
+
| Gap Detection | `stellavault gaps` — weak connections between topics |
|
|
119
|
+
| Contradictions | `stellavault contradictions` — conflicting statements |
|
|
120
|
+
| Duplicates | `stellavault duplicates` — redundant notes |
|
|
121
|
+
| Learning Path | `stellavault learn` — AI review recommendations |
|
|
122
|
+
| Health Check | `stellavault lint` — overall knowledge score |
|
|
123
|
+
| Daily Brief | `stellavault brief` — morning knowledge briefing |
|
|
124
|
+
| Weekly Digest | `stellavault digest --visual` — Mermaid chart report |
|
|
139
125
|
|
|
140
|
-
##
|
|
126
|
+
## Self-Evolving Memory
|
|
141
127
|
|
|
142
|
-
```bash
|
|
143
|
-
stellavault fleeting "raw idea" # → raw/
|
|
144
|
-
stellavault ingest report.pdf # → auto text extract → raw/
|
|
145
|
-
stellavault compile # → raw/ → _wiki/ (concepts + backlinks)
|
|
146
|
-
stellavault promote note.md --to permanent # Upgrade stage
|
|
147
|
-
stellavault autopilot # Full cycle: inbox → compile → lint → archive
|
|
148
128
|
```
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
- **Frontmatter-first scanning**: 10x token reduction
|
|
153
|
-
- **Configurable folders**: override raw/_wiki/_literature/ in `.stellavault.json`
|
|
154
|
-
|
|
155
|
-
```json
|
|
156
|
-
{
|
|
157
|
-
"vaultPath": "/path/to/vault",
|
|
158
|
-
"folders": {
|
|
159
|
-
"fleeting": "01-Inbox",
|
|
160
|
-
"literature": "02-Reading",
|
|
161
|
-
"permanent": "03-Notes",
|
|
162
|
-
"wiki": "04-Wiki"
|
|
163
|
-
}
|
|
164
|
-
}
|
|
129
|
+
Session → session-save → daily-log → flush → wiki
|
|
130
|
+
↑ ↓
|
|
131
|
+
└──── Claude reads wiki via MCP (21 tools) ←─┘
|
|
165
132
|
```
|
|
166
133
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
| Feature | Command |
|
|
170
|
-
|---------|---------|
|
|
171
|
-
| FSRS Decay | `sv decay` — spaced repetition memory tracking |
|
|
172
|
-
| Gap Detection | `sv gaps` — missing connections between topics |
|
|
173
|
-
| Contradictions | `sv contradictions` — conflicting statements |
|
|
174
|
-
| Duplicates | `sv duplicates` — redundant notes |
|
|
175
|
-
| Learning Path | `sv learn` — AI review recommendations |
|
|
176
|
-
| Code Linker | MCP `link-code` — connect code to knowledge |
|
|
177
|
-
|
|
178
|
-
## 3D Visualization
|
|
179
|
-
|
|
180
|
-
- Neural graph with cluster coloring
|
|
181
|
-
- Constellation view (MST star patterns)
|
|
182
|
-
- Heatmap overlay (activity score)
|
|
183
|
-
- Timeline slider (creation/modification filter)
|
|
184
|
-
- Decay overlay (fading knowledge)
|
|
185
|
-
- **Multiverse view** — your vault as a universe in a P2P network
|
|
186
|
-
- Dark/Light theme
|
|
187
|
-
- Mobile responsive + PWA installable
|
|
188
|
-
|
|
189
|
-
## Multiverse — P2P Knowledge Federation
|
|
190
|
-
|
|
191
|
-
<p align="center">
|
|
192
|
-
<img src="images/screenshots/multiverse-view.png" alt="Multiverse View" width="800" />
|
|
193
|
-
<br><em>"Your universe floats alone — for now."</em>
|
|
194
|
-
</p>
|
|
134
|
+
Every conversation makes your knowledge base smarter. Set up [Claude Code hooks](docs/hooks-setup.md) for full automation.
|
|
195
135
|
|
|
196
|
-
|
|
136
|
+
## Zettelkasten Workflow
|
|
197
137
|
|
|
198
|
-
|
|
138
|
+
Three-stage flow: **fleeting → literature → permanent** (Luhmann + Karpathy).
|
|
199
139
|
|
|
200
|
-
**From the CLI**:
|
|
201
140
|
```bash
|
|
202
|
-
stellavault
|
|
203
|
-
stellavault
|
|
141
|
+
stellavault fleeting "raw idea" # → raw/
|
|
142
|
+
stellavault ingest report.pdf # → auto-extract → raw/
|
|
143
|
+
stellavault compile # → raw/ → _wiki/ (concepts + backlinks)
|
|
144
|
+
stellavault promote note.md --to permanent # Upgrade stage
|
|
145
|
+
stellavault autopilot # Full cycle: inbox → compile → lint
|
|
204
146
|
```
|
|
205
147
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
148
|
+
Auto-assigned Luhmann index codes, frontmatter-first scanning, configurable folders.
|
|
149
|
+
|
|
150
|
+
## P2P Federation (Multiverse)
|
|
151
|
+
|
|
152
|
+
Your vault is a universe. Connect with others through P2P federation.
|
|
153
|
+
|
|
154
|
+
- **Hyperswarm P2P** — NAT-traversal, no central server
|
|
155
|
+
- **Embeddings only** — original text never leaves your machine
|
|
209
156
|
- **Differential privacy** — mathematical privacy guarantees
|
|
210
|
-
- **Trust & reputation** — good knowledge earns credits
|
|
211
|
-
- **Federated search** — search across connected vaults via MCP
|
|
212
157
|
|
|
213
|
-
|
|
158
|
+
In the desktop app or web UI, click the **Federation badge** in the header to join/leave the Stella Network.
|
|
214
159
|
|
|
215
160
|
## Tech Stack
|
|
216
161
|
|
|
217
162
|
| Layer | Tech |
|
|
218
163
|
|-------|------|
|
|
164
|
+
| Desktop | Electron + React + TipTap + Zustand |
|
|
219
165
|
| Runtime | Node.js 20+ (ESM, TypeScript) |
|
|
220
|
-
| Vector Store | SQLite-vec (local,
|
|
221
|
-
| Embedding |
|
|
166
|
+
| Vector Store | SQLite-vec (local, zero config) |
|
|
167
|
+
| Embedding | MiniLM-L12-v2 (local, 50+ languages) |
|
|
222
168
|
| Search | BM25 + Cosine + RRF Fusion |
|
|
223
169
|
| File Parsing | unpdf, mammoth, officeparser, SheetJS |
|
|
224
170
|
| Memory | FSRS (Free Spaced Repetition Scheduler) |
|
|
225
171
|
| 3D | React Three Fiber + Three.js |
|
|
226
172
|
| AI | MCP (Model Context Protocol) + Anthropic SDK |
|
|
173
|
+
| P2P | Hyperswarm (optional) |
|
|
227
174
|
|
|
228
175
|
## Full Feature List
|
|
229
176
|
|
|
230
177
|
| Category | Features |
|
|
231
178
|
|----------|----------|
|
|
232
|
-
| **
|
|
179
|
+
| **Desktop** | File tree sidebar, multi-tab editor, [[wikilink]] autocomplete, Quick Switcher, Command Palette, 3D graph panel, AI panel, backlinks, dark/light theme |
|
|
180
|
+
| **Capture** | 14 formats (PDF/DOCX/PPTX/XLSX/JSON/CSV/XML/HTML/YAML/RTF/YouTube/URL/text), batch folders, drag & drop, voice capture, Quick Capture |
|
|
233
181
|
| **Organize** | Zettelkasten 3-stage, auto index codes, wikilink auto-connect, configurable folders |
|
|
234
182
|
| **Distill** | compile (raw→wiki), lint (health score), gaps, contradictions, duplicates |
|
|
235
|
-
| **Express** | draft (blog/report/outline/instagram/thread/script), blueprint, --ai
|
|
183
|
+
| **Express** | draft (blog/report/outline/instagram/thread/script), blueprint, --ai mode |
|
|
236
184
|
| **Memory** | FSRS decay, session-save, flush, compounding loop, ADR templates |
|
|
237
185
|
| **Search** | hybrid (BM25+vector+RRF), multilingual 50+, ask Q&A, quotes mode |
|
|
238
|
-
| **Visualize** | 3D graph, heatmap, timeline,
|
|
239
|
-
| **AI
|
|
240
|
-
| **
|
|
241
|
-
| **CLI** | 40+ commands, `sv` alias,
|
|
186
|
+
| **Visualize** | 3D graph, heatmap, timeline, constellation view, decay overlay, multiverse |
|
|
187
|
+
| **AI** | 21 MCP tools, Claude Code hooks, Anthropic SDK |
|
|
188
|
+
| **Federation** | Hyperswarm P2P, embedding-only sharing, differential privacy |
|
|
189
|
+
| **CLI** | 40+ commands, `sv` alias, `stellavault doctor` diagnostics |
|
|
242
190
|
|
|
243
|
-
##
|
|
191
|
+
## Getting Started Guide
|
|
192
|
+
|
|
193
|
+
### Desktop App (easiest)
|
|
194
|
+
|
|
195
|
+
1. **Download** from [Releases](https://github.com/Evanciel/stellavault/releases/latest)
|
|
196
|
+
2. **Unzip** to any folder
|
|
197
|
+
3. **Run** `stellavault.exe` (Windows) — first launch asks you to pick your notes folder
|
|
198
|
+
4. **Explore** — your notes appear in the sidebar, click to open in the editor
|
|
199
|
+
5. **Search** — press `Ctrl+P` to quick-switch between notes, or open the AI panel (✦ button) for semantic search
|
|
200
|
+
|
|
201
|
+
### CLI (for developers)
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# Step 1: Install
|
|
205
|
+
npm install -g stellavault
|
|
206
|
+
|
|
207
|
+
# Step 2: Setup (interactive wizard)
|
|
208
|
+
stellavault init
|
|
209
|
+
# → Asks for vault path → indexes all .md files → tests search
|
|
210
|
+
|
|
211
|
+
# Step 3: Daily use
|
|
212
|
+
stellavault search "machine learning" # Find notes
|
|
213
|
+
stellavault ingest paper.pdf # Add new knowledge
|
|
214
|
+
stellavault graph # Open 3D graph in browser
|
|
215
|
+
stellavault brief # Morning briefing
|
|
216
|
+
stellavault decay # What are you forgetting?
|
|
217
|
+
|
|
218
|
+
# Step 4: Connect to Claude
|
|
219
|
+
claude mcp add stellavault -- stellavault serve
|
|
220
|
+
# → Claude can now read your vault via MCP
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Obsidian Plugin
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Step 1: Start the API server (keep running)
|
|
227
|
+
npx stellavault graph
|
|
244
228
|
|
|
245
|
-
|
|
229
|
+
# Step 2: Install plugin
|
|
230
|
+
# Download main.js + manifest.json + styles.css from:
|
|
231
|
+
# https://github.com/Evanciel/stellavault-obsidian/releases/latest
|
|
232
|
+
# Place in: <vault>/.obsidian/plugins/stellavault/
|
|
233
|
+
|
|
234
|
+
# Step 3: Enable in Settings → Community Plugins → Stellavault
|
|
235
|
+
|
|
236
|
+
# Step 4: Use
|
|
237
|
+
# - Click brain icon (🧠) for semantic search
|
|
238
|
+
# - Cmd+Shift+D for memory decay panel
|
|
239
|
+
# - Cmd+Shift+L for learning path suggestions
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Quick Reference
|
|
243
|
+
|
|
244
|
+
| Action | Desktop | CLI | Obsidian |
|
|
245
|
+
|--------|---------|-----|----------|
|
|
246
|
+
| Search notes | Ctrl+P or AI panel | `stellavault search "query"` | 🧠 icon |
|
|
247
|
+
| Add a note | + Note button | `stellavault ingest "text"` | Normal editing |
|
|
248
|
+
| See 3D graph | ◉ button | `stellavault graph` | N/A |
|
|
249
|
+
| Check memory decay | AI panel → Memory | `stellavault decay` | Decay sidebar |
|
|
250
|
+
| Find duplicates | AI panel → Stats | `stellavault duplicates` | N/A |
|
|
251
|
+
| Generate draft | N/A (v0.2) | `stellavault draft "topic"` | N/A |
|
|
252
|
+
| Connect to Claude | N/A (v0.2) | `claude mcp add stellavault` | N/A |
|
|
253
|
+
|
|
254
|
+
### Configuration
|
|
255
|
+
|
|
256
|
+
All settings live in `~/.stellavault.json`:
|
|
257
|
+
|
|
258
|
+
```json
|
|
259
|
+
{
|
|
260
|
+
"vaultPath": "/path/to/your/notes",
|
|
261
|
+
"dbPath": "~/.stellavault/index.db",
|
|
262
|
+
"embedding": { "model": "local", "localModel": "all-MiniLM-L6-v2" },
|
|
263
|
+
"mcp": { "mode": "stdio", "port": 3333 }
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Run `stellavault doctor` anytime to check your setup.
|
|
268
|
+
|
|
269
|
+
### Keyboard Shortcuts (Desktop)
|
|
270
|
+
|
|
271
|
+
| Shortcut | Action |
|
|
272
|
+
|----------|--------|
|
|
273
|
+
| `Ctrl+P` | Quick Switcher (fuzzy file search) |
|
|
274
|
+
| `Ctrl+Shift+P` | Command Palette (all actions) |
|
|
275
|
+
| `Ctrl+S` | Save current note |
|
|
276
|
+
| `Ctrl+B` | Toggle bold |
|
|
277
|
+
| `Ctrl+I` | Toggle italic |
|
|
278
|
+
| `Ctrl+E` | Toggle inline code |
|
|
279
|
+
| `[[` | Wikilink autocomplete |
|
|
280
|
+
|
|
281
|
+
## Troubleshooting
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
stellavault doctor # Check config, vault, DB, model, Node version
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Common issues:
|
|
288
|
+
- **"Command not found"** → Reinstall: `npm i -g stellavault@latest`
|
|
289
|
+
- **"API server not found"** → Start the server: `npx stellavault graph`
|
|
290
|
+
- **Empty graph** → Run `stellavault index` to re-index your vault
|
|
291
|
+
- **Slow first run** → The AI model downloads ~30MB on first use (one time only)
|
|
292
|
+
|
|
293
|
+
## Security
|
|
246
294
|
|
|
247
|
-
See [SECURITY.md](SECURITY.md)
|
|
295
|
+
Local-first — no data leaves your machine unless you explicitly use `--ai` (Anthropic API). Vault files are never modified. See [SECURITY.md](SECURITY.md).
|
|
248
296
|
|
|
249
297
|
## License
|
|
250
298
|
|
|
@@ -252,6 +300,7 @@ MIT — full source code available for audit.
|
|
|
252
300
|
|
|
253
301
|
## Links
|
|
254
302
|
|
|
303
|
+
- **[Download Desktop App](https://github.com/Evanciel/stellavault/releases/latest)**
|
|
255
304
|
- [Landing Page](https://evanciel.github.io/stellavault/)
|
|
256
305
|
- [Obsidian Plugin](https://github.com/Evanciel/stellavault-obsidian)
|
|
257
306
|
- [npm](https://www.npmjs.com/package/stellavault)
|
package/SECURITY.md
CHANGED
|
@@ -39,6 +39,29 @@ Stellavault is **local-first**. Your knowledge stays on your machine.
|
|
|
39
39
|
- **URL validation**: Image URLs restricted to `https://` scheme
|
|
40
40
|
- **SSRF protection**: Private/local IP addresses blocked for URL ingest
|
|
41
41
|
|
|
42
|
+
## Desktop App Security (Electron)
|
|
43
|
+
|
|
44
|
+
- **Context Isolation**: enabled — renderer cannot access Node.js APIs
|
|
45
|
+
- **Sandbox**: enabled — renderer runs with reduced OS privileges
|
|
46
|
+
- **Node Integration**: disabled — no `require()` in renderer
|
|
47
|
+
- **IPC Allowlist**: explicit channel whitelist in preload (17 channels)
|
|
48
|
+
- **Path Validation**: all vault filesystem IPC handlers validate paths stay inside vault root
|
|
49
|
+
- **Auth Token**: API server generates per-session random token for all mutating endpoints
|
|
50
|
+
- **CSP**: strict Content Security Policy (no unsafe-eval in production)
|
|
51
|
+
|
|
52
|
+
## Federation Security
|
|
53
|
+
|
|
54
|
+
- **Embeddings only**: original text never transmitted over the network
|
|
55
|
+
- **Buffer limits**: 1MB per connection, 64KB per message
|
|
56
|
+
- **Message validation**: schema checking on all incoming messages
|
|
57
|
+
- **Leave authentication**: leave messages only accepted from the owning connection
|
|
58
|
+
- **Differential privacy**: noise added to shared embeddings
|
|
59
|
+
|
|
60
|
+
## Known Accepted Risks
|
|
61
|
+
|
|
62
|
+
- **LOW-03**: `data:` URIs allowed in desktop CSP for inline images in markdown editor
|
|
63
|
+
- **LOW-05**: Cloud sync uses Bearer token instead of AWS Signature v4 (R2-specific)
|
|
64
|
+
|
|
42
65
|
## Reporting Vulnerabilities
|
|
43
66
|
|
|
44
67
|
Please report security issues to: https://github.com/Evanciel/stellavault/issues (label: security)
|