Skriuw

local-first

FeaturesLocal-firstMarkdownImportDocsDownload
Open the app
Skriuw

A local-first workspace for writing, journaling, and connected knowledge.

Product

  • Open the app
  • Download
  • Features
  • Changelog

Engineering

  • All documentation
  • Architecture
  • Performance contract
  • Decision records
  • Benchmarks

Project

  • Source on GitHub
  • Contributing
  • Security
  • License

skriuw · Frisian · “to write” · © 2026 Remco Stoeten · MIT

Source

06changelog

Changelog

Releases, improvements, and the changes behind them, straight from GitHub.

v2-v0.5.02026-07-28

Skriuw v2 0.5.0

This release adds a daily journal, four more import sources, and a round of editor block types.

Daily journal

A dedicated #/journal route with one entry per calendar day, written in the same ProseMirror editor as notes. Tags, people mentions, wiki-links, slash commands, raw Markdown mode and version history all work, and entities created in the journal are the same entities the notes workspace uses.

  • Mood per day. A five-level selector (Great, Good, Neutral, Low, Rough) stored as a typed note property, so it travels with archives, exports and backups.
  • Calendar everywhere. A Monday-first month calendar with entry-dot indicators lives both in the journal's own sidebar and as a collapsible section at the bottom of the workspace sidebar. Picking a day jumps straight to that entry.
  • Sidebar views. Calendar with a this-month entry list, lightweight stats (entries, words, streak, mood distribution), full-text entry search, and an all-entries timeline.
  • Keyboard-first. / focuses the sidebar search with the caret already in the field, t jumps to today, [ and ] walk to the previous and next day, and Escape backs out of the search field and the delete confirmation. The month calendar keeps a single tab stop: arrows move a day or a week, Home and End span the week, PageUp and PageDown step a month, and Enter opens the focused day. Tabs, the mood radio group and every entry row are reachable and announced.
  • Same durable pipeline, hidden from the tree. Entries are ordinary workspace notes under a hidden journal folder keyed by a date property, so saves, search indexing, Git history, trash and archives all apply. The workspace tree, note navigation and the palette's notes list never show them. Palette full-text hits on journal content open the entry on its day in the journal.

Editor

  • Heading levels 4, 5 and 6 join the schema, the slash menu and the bubble menu.
  • Toggle headings wrap a real heading node as their summary, so a collapsed toggle still contributes its title to the note outline instead of hiding it.
  • Emoji picker. Type : to open a picker searchable by shortcode or keyword, sharing the slash menu's keyboard-first navigation.
  • Video, audio and file embeds. /video, /audio and /file drop a block that takes a URL. Embeds serialize to Markdown as an ordinary link, so other editors still render something useful rather than dropping the block.

Import

Four new sources, bringing the importer set to eleven:

  • Evernote (.enex), including a full ENML to Markdown converter for Evernote's own note markup.
  • Joplin raw directory exports, with resource attachments.
  • Google Keep Takeout JSON, with attached images.
  • Standard Notes backup and import files.

Fixes to the existing Simplenote path:

  • Simplenote pins are honored on import instead of being dropped.
  • Folder grouping is now an explicit option at import time.
  • Grouping no longer creates empty folders or duplicates of folders that already exist.

Notes

Entries created by the journal are regular notes, so nothing here changes your vault format or requires a migration. Updating from 0.4.1 is in-place.

v2-v0.4.12026-07-27

Skriuw v2-v0.4.1

v2-v0.4.02026-07-27

Skriuw v2 0.4.0 — keyboard shortcuts

Keyboard shortcuts milestone

Every shortcut is rebindable in Settings → Shortcuts, and mod+/ opens a live cheat sheet that reflects your rebinds.

  • mod+/ — shortcut cheat-sheet overlay with search
  • ctrl+shift+[ / ] — previous / next note
  • F2 — rename the open note from the editor
  • mod+backspace / mod+delete — trash the open note, with undo toast
  • mod+shift+d — duplicate the open note
  • ctrl+↑ / ctrl+↓ — jump to document start / end (Windows/Linux; macOS uses native cmd+arrows)
  • mod+h — find panel in find-and-replace state
  • mod+g — jump to line (raw Markdown mode)
  • alt+1..9 / alt+0 — open tab by index / last tab
  • mod+shift+w — reopen closed tab; ctrl+shift+pageup/pagedown — move tab
  • mod+alt+← / → — focus the split pane in that direction
  • g t 1..4 — go to Notes / Tags / People / Trash (typing-safe sequences)
  • ctrl+shift+o — import a markdown file as a new note

Fixes

  • Editor boot regression caught by the native import E2E before publish: an unstable ref callback looped React's commit phase and blanked the window (#296).
  • Previous/next note now stay inert behind open dialogs (#295).

Full details: PR #294 and the keyboard-shortcuts page on the docs site.

v2-v0.3.02026-07-26

Skriuw v2 0.3.0

What's new

  • Previewed atomic provider import (Obsidian, Notion, Bear, Simplenote) with durable import controls, raw tag preservation, and ambiguous-asset rejection
  • Property editing shelf with real provider fixtures
  • Drag to reorder open tabs in panes
  • Settings: visual card pickers for editor font and line spacing; visible focus rings on inputs and toggles
  • References: unified color swatch row for tags and people

Full changelog: https://github.com/remcostoeten/skriuw/compare/v2-v0.2.0...v2-v0.3.0

v2-v0.2.02026-07-26

Skriuw v2 0.2.0

Skriuw v2 0.2.0 — the second release of the ground-up desktop rewrite: a local-first knowledge base where every interaction gives same-frame feedback. Rust core, SQLite storage, background Git history, and a renderer that swaps notes with zero IPC.

Highlights

Typed note properties

Notes now carry structured metadata: text, number, date, select, multi-select, person, URL, checkbox, rating, location, email, and phone fields. Add, rename, reorder, and edit them from the metadata panel, or apply a built-in template. Properties are stored through typed durable contracts and render optimistically — edits land same-frame.

Deeper editor parity

  • Collapsible (toggle) lists with task linkage.
  • Markdown paste — raw Markdown lands rendered (headings, lists, checklists, tables, fenced code, quotes, inline marks); rich HTML still pastes as HTML.
  • Raw Markdown mode grew a status bar: optional line numbers with synchronized scrolling, live word count, line/column position, and selected word/character counts.
  • Safer raw editing — raw source updates are reconciled against concurrent document changes instead of clobbering them, unsupported Markdown constructs round-trip losslessly, and remote images in imported Markdown stay as portable source but are blocked from loading.
  • Persistent clipboard images — pasted images survive as content-addressed blobs paired with database backups.

A more capable shell

  • Resizable sidebar and inspector — drag to size, sizes survive restarts.
  • Note history has its own route with in-session updates the moment background Git materialization completes.
  • Rebuilt trash view — flat row model, search, sorting (recently deleted, deleted first, title), and inline arm-to-delete instead of dialogs.
  • Create tags and people inline from the reference form.
  • Quieter destructive actions — destructive buttons rest muted and only turn red when hovered or armed.
  • Linux: correct taskbar icon on Wayland (app_id alignment) and guarded NVIDIA rendering.

Under the hood

  • v2 tooling is now bun-only end to end, including the release pipeline.
  • Release builds are published from a single pre-created draft, fixing the duplicate-draft race between platform build jobs.
  • 531 renderer/store/backend tests green; performance contract (sub-8 ms cached note swap and keystroke-to-paint at P95) enforced by the benchmark suite.

Full changelog: https://github.com/remcostoeten/skriuw/compare/v2-v0.1.0...v2-v0.2.0

← Newer releasesPage 3 of 3

First published stable release.