Fast, local-first markdown notes — built with Rust
Download · Features · Configuration · Plugins
Lock Jaw is a local-first markdown note editor that keeps your notes as plain
.mdfiles on your own machine — no cloud account required, no subscription, no lock-in. It is lightweight, keyboard-friendly, and themeable.
| Split editor / preview | Edit raw markdown on the left, see rendered output on the right — live |
| Vault-based | Open any folder as your vault; notes are plain .md files |
| Drag & drop | Reorganise notes and folders by dragging them in the sidebar |
| Multiple themes | Dark, Light, Solarized, Dracula, Nord, Gruvbox, One Dark, and more |
| WebDAV sync | Optional one-click sync to Nextcloud, ownCloud, or any WebDAV server |
| Plugin system | Extend Lock Jaw with WASM plugins — no restarts needed |
| Command palette | Ctrl+P to jump between notes instantly |
| Zero telemetry | No analytics, no network calls except your optional WebDAV server |
┌──────────────┬──────────────────────────┬──────────────────────────┐
│ Sidebar │ Editor (raw markdown) │ Preview (rendered) │
│ │ │ │
│ 📁 Notes │ # My Note │ My Note │
│ note-1.md │ │ ──────── │
│ note-2.md │ Some **bold** text and │ Some bold text and │
│ 📁 Archive │ a [link](url). │ a link. │
│ old.md │ │ │
│ │ ```rust │ ┌──────────────────┐ │
│ [ Search ] │ fn main() {} │ │ fn main() {} │ │
│ │ ``` │ └──────────────────┘ │
└──────────────┴──────────────────────────┴──────────────────────────┘
│ ~/notes/my-note.md | 142 words | Saved │
└───────────────────────────────────────────────────────────────────┘
Download the latest AppImage from the releases page, then:
chmod +x LockJaw-*.AppImage
./LockJaw-*.AppImageNo installation required. Works on any modern x86-64 Linux distribution.
# Build from source (requires flatpak-builder)
git clone https://github.com/cave-nerd/lock-jaw.git
cd lock-jaw
./build-flatpak.sh --install
# Run
flatpak run io.github.cave_nerd.LockJawPrerequisites:
# Ubuntu / Debian
sudo apt-get install \
build-essential pkg-config \
libssl-dev libgl-dev libfontconfig-dev \
libwayland-dev libxkbcommon-dev \
libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libxrandr-dev libxi-dev libudev-dev libdbus-1-devBuild:
git clone https://github.com/cave-nerd/lock-jaw.git
cd lock-jaw
cargo build --release -p lj-ui
./target/release/lockjawLock Jaw stores its config at ~/.config/lockjaw/config.toml.
vault_path = "/home/you/notes" # folder where your .md files live
theme = "dark" # dark | light | solarized | dracula | nord | gruvbox | onedark
font_size = 14.0
[webdav]
enabled = true
url = "https://cloud.example.com/dav/notes/"
username = "your-username"
# password is stored in your OS keyring — never written to this fileSecurity note: The WebDAV password is stored in your OS keyring (GNOME Keyring / KWallet on Linux, Keychain on macOS) and is never written to disk.
| Shortcut | Action |
|---|---|
Ctrl+S |
Save current note |
Ctrl+P |
Open command palette |
Ctrl+N |
New note |
Ctrl+, |
Open settings |
Lock Jaw supports WASM plugins that can extend the editor without requiring a restart.
Plugins live in ~/.config/lockjaw/plugins/. Each plugin is a directory containing a .wasm file and a plugin.toml manifest:
# plugin.toml
name = "my-plugin"
version = "0.1.0"
author = "You"
description = "Does something useful"Manage plugins via Addons in the menu bar — enable, disable, reload, or remove plugins without leaving the app.
Lock Jaw ships with 8 built-in themes:
| Theme | Style |
|---|---|
| Dark | Deep navy with red accent — the default |
| Light | Clean white for bright environments |
| Solarized Dark / Light | The classic Ethan Schoonover palette |
| Dracula | Purple-tinted dark theme |
| Nord | Arctic, north-bluish |
| Gruvbox | Warm retro tones |
| One Dark | Atom-inspired dark theme |
Custom themes can be added as .toml files in ~/.config/lockjaw/themes/ (coming soon).
Lock Jaw can sync your vault with any WebDAV server:
- Open Settings → Sync
- Enter your server URL, username, and password
- Click Sync Now or enable automatic sync
Compatible with Nextcloud, ownCloud, Hetzner Storage Box, and any standard WebDAV endpoint. Local always wins on conflict.
Contributions are welcome! Please open an issue before submitting a large pull request.
git clone https://github.com/cave-nerd/lock-jaw.git
cd lock-jaw
cargo build --workspace
cargo run -p lj-uiThe workspace is split into four crates:
| Crate | Purpose |
|---|---|
lj-core |
Vault, note I/O, config, WebDAV sync |
lj-md |
Markdown parsing and egui rendering |
lj-plugin |
WASM plugin host |
lj-ui |
egui/eframe application and all UI code |
GPL-3.0 © cave-nerd