Distillery-desktop Svelte Themes

Distillery Desktop

Cognito Distillery Desktop, Powered by Tauri

Distillery

Distillery

Distill thoughts into aged knowledge.

한국어


  Malting       Malt House        Still          Queue           Cask
  ──────       ───────────      ──────       ──────────      ──────
 [ Idea ] ──→ [  Store  ] ──→ [ Select ] ──→ [ Distill ] ──→ [ Know ]
               ↑                   │
               └──── Draw Back ────┘

Distillery is a desktop app that refines raw thoughts into structured knowledge, borrowing the process of a whiskey distillery as its metaphor.

Capture scattered decisions, problems, insights, and questions as malts. Place them on the still to curate. The server's pipeline automatically distills them on a configurable interval, aging them in the cask — your knowledge graph.


The Process

1. Malting

Turn a thought into a malt. Choose one of four types:

Type Description
Decision A finalized decision
Problem An issue that needs resolution
Insight A discovered insight
Question A question that needs discussion

2. Malt House

Your warehouse of malts. Search, edit, or delete them.

3. Still

Curate which malts to distill. When ready, send them to the distillation queue.

4. Draw Back

Pull malts out of the queue. Once they enter the cask, there is no turning back.

5. Cask Room

Explore the knowledge graph. Search for nodes, expand connections, and see how your thoughts relate to each other.

6. Settings

Configure the app — language, date/time format, theme, AI models, and pipeline settings.


Floating Memo (Quick Malt)

A small floating window for capturing thoughts instantly without switching to the main app. The app stays in the system tray — close the main window and it keeps running in the background.

Platform Shortcut Setup
macOS Cmd+Shift+M Works out of the box
Windows Ctrl+Shift+M Works out of the box
Linux (X11) Ctrl+Shift+M Works out of the box
Linux (Wayland) Any key you choose Bind a DBus command in your compositor (see below)

Linux Wayland Setup

Wayland does not support app-level global shortcuts. The app exposes a DBus service instead — bind the following command in your compositor/DE settings:

dbus-send --session --type=method_call --dest=com.distillery.App /com/distillery/App com.distillery.App.ToggleFloatingMemo
niri

Add to your config.kdl inside the binds block:

Ctrl+Shift+M { spawn "dbus-send" "--session" "--type=method_call" "--dest=com.distillery.App" "/com/distillery/App" "com.distillery.App.ToggleFloatingMemo"; }

Then reload: niri msg action reload-config

Hyprland

Add to hyprland.conf:

bind = CTRL SHIFT, M, exec, dbus-send --session --type=method_call --dest=com.distillery.App /com/distillery/App com.distillery.App.ToggleFloatingMemo
GNOME
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/distillery/']"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/distillery/ name 'Distillery Floating Memo'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/distillery/ command "dbus-send --session --type=method_call --dest=com.distillery.App /com/distillery/App com.distillery.App.ToggleFloatingMemo"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/distillery/ binding '<Ctrl><Shift>m'
KDE Plasma

System Settings > Shortcuts > Custom Shortcuts > Add new shortcut with:

  • Trigger: Ctrl+Shift+M
  • Command: dbus-send --session --type=method_call --dest=com.distillery.App /com/distillery/App com.distillery.App.ToggleFloatingMemo

Tech Stack

Frontend    Svelte 5 · SvelteKit · TypeScript · Tailwind CSS · DaisyUI
Backend     Rust · SQLite (FTS5) · reqwest
Desktop     Tauri 2
Graph       Cytoscape.js · cytoscape-cola

Getting Started

Prerequisites

Install

bun install

cp src-tauri/.env.example src-tauri/.env
# Edit src-tauri/.env and set API_BASE_URL, UPDATER_URL

Develop

bun run tauri dev

Build

bun run tauri build

Release (for forks)

  1. Generate a signing key:
bun tauri signer generate -w ~/.tauri/distillery.key
  1. Add the following Repository Secrets in GitHub (Settings → Secrets and variables → Actions):
Secret Value
API_BASE_URL Your API server URL
UPDATER_URL Update manifest URL (e.g. GitHub releases latest.json)
TAURI_SIGNING_PRIVATE_KEY Contents of the generated .key file
TAURI_SIGNING_PRIVATE_KEY_PASSWORD Password used during key generation

Note: For forks, update the pubkey in src-tauri/tauri.conf.json with your own public key generated by bun tauri signer generate.

  1. Push a version tag to trigger the build:
git tag v0.1.0
git push origin v0.1.0

A draft release will be created on GitHub with builds for Linux, macOS, and Windows.


Project Structure

src/
├── routes/              # Pages (malting, malt house, still, drawback, cask room, settings, help)
├── lib/
│   ├── components/      # Svelte components (malt, graph, sidebar, toast, etc.)
│   ├── graph/           # Cytoscape.js config, styles, events, context menu
│   ├── stores/          # State management (auth, malts, settings, graph, search, ui, toast)
│   ├── i18n/            # Internationalization (ko, en)
│   ├── types/           # Type definitions (graph)
│   ├── utils/           # Utilities (datetime, debounce, chosung, error, edge-id)
│   └── types.ts         # Shared type definitions
src-tauri/
├── src/
│   ├── commands.rs      # Tauri IPC commands
│   ├── db.rs            # SQLite database
│   ├── auth.rs          # OTP authentication
│   ├── api.rs           # Server API communication
│   ├── models.rs        # Data models
│   └── lib.rs           # App setup & command registration

pitch black, amber-lit.

Top categories

Loading Svelte Themes