A local-first second brain.
Your ideas, everywhere, offline.
Features • Installation • Usage • Sync Setup • Philosophy
Kurumi (クルミ, "walnut" in Japanese - because it looks like a brain) is a personal knowledge management system built for the way you actually think: connected, non-linear, and always available.
It's designed for:
- Capturing ideas instantly, from any device
- Connecting thoughts through wikilinks, tags, and @mentions
- Working offline with full functionality
- Owning your data with local-first architecture
- AI assistance to refine and improve your writing
| Feature | Description |
|---|---|
| Vaults | Organize notes into separate workspaces with custom icons |
| Wikilinks | Link notes with [[Note Title]] syntax and autocomplete |
| Backlinks | See all notes that link to the current note |
| Graph View | Interactive visualization of note connections |
| Full-text Search | Find anything instantly with Cmd+K |
| Folders | Organize notes hierarchically with drag-and-drop |
| Tags | Extract and filter by #hashtags |
| @Mentions | Reference people with @name syntax |
| #Dates | Reference dates with #2024-01-15 syntax |
A distraction-free reading experience for your notes:
- Clean, blog-style article layout
- Browse by folder, tag, person, or date
- Quick navigation between notes
- One-click switch to edit mode
Powered by OpenAI or Anthropic (bring your own API key):
- Improve - Fix grammar, clarity, and flow
- Expand - Add detail and elaboration
- Summarize - Condense to key points
- Simplify - Make text easier to understand
- Translate - Convert to any language
| Feature | Description |
|---|---|
| Themes | Light, dark, and system (Catppuccin palette) |
| Editor Font | iA Writer Quattro S or Geist |
| Font Size | Small, medium, or large |
| References | Browse all tags, people, and dates in one place |
| Feature | Description |
|---|---|
| Offline-first | Works without internet, syncs when connected |
| Cloudflare R2 | Optional cross-device sync via your own account |
| Import/Export | Full JSON backup and restore |
| PWA | Install on any device, feels native |
Visit kurumi.raskell.io and install as a PWA.
git clone https://github.com/raskell-io/kurumi.git
cd kurumi
npm install
npm run devnpm run build
npm run preview| Shortcut | Action |
|---|---|
Cmd/Ctrl + K |
Open command palette |
Cmd/Ctrl + N |
Create new note |
Cmd/Ctrl + G |
Open graph view |
Cmd/Ctrl + R |
Open references |
Cmd/Ctrl + Shift + R |
Open read mode |
Cmd/Ctrl + , |
Open settings |
Escape |
Close modal/sidebar |
Type [[ to start a wikilink. Autocomplete helps you find existing notes. If the note doesn't exist, clicking the link creates it.
This connects to [[Another Idea]] and relates to [[Project Planning]].Working on the #mvp for #kurumi today.
Meeting with @alice and @bob about the project.
Deadline is #2024-12-31 for the launch.All references are automatically extracted and browsable in the References page.
Kurumi can sync across devices using your own Cloudflare account (free tier is plenty).
- A Cloudflare account (free)
- mise installed (
brew install mise)
cd worker
mise run setupThis will:
- Install dependencies
- Log you into Cloudflare
- Create the R2 bucket
- Generate a sync token
- Deploy the worker
- Go to Settings > Cloudflare Sync
- Enter your Worker URL
- Enter the sync token
- Click Test Connection
| Layer | Technology |
|---|---|
| Framework | SvelteKit 2 + Svelte 5 Runes |
| Styling | Tailwind CSS 4 |
| Data | Automerge CRDTs |
| Storage | IndexedDB (idb-keyval) |
| Editor | Milkdown |
| Search | MiniSearch |
| Graph | force-graph (WebGL) |
| Icons | Lucide |
| Fonts | Geist, Geist Mono, iA Writer Quattro S |
| PWA | @vite-pwa/sveltekit |
| Sync | Cloudflare R2 + Workers |
| AI | OpenAI, Anthropic |
-
Your data, your control Everything stored locally. No account required. Export anytime.
-
Offline-first, not offline-capable Full functionality without internet. Sync is a feature, not a requirement.
-
Plain text at heart Markdown content that's readable in 50 years.
-
Minimal friction Fast capture, instant search, keyboard-driven.
-
No vendor lock-in Automerge CRDTs mean your data syncs without a central server.
┌─────────────────────────────────────┐
│ Kurumi UI │
│ (SvelteKit + Svelte 5 Runes) │
├─────────────────────────────────────┤
│ Automerge Documents │ ← Conflict-free sync
├─────────────────────────────────────┤
│ IndexedDB (via idb-keyval) │ ← Local persistence
├─────────────────────────────────────┤
│ Cloudflare R2 (optional) │ ← Cross-device sync
└─────────────────────────────────────┘
If you find Kurumi useful, consider supporting its development:
MIT



