Skip to content

Releases: jpzk/opensidian

v0.6.2

Choose a tag to compare

@jpzk jpzk released this 12 Oct 16:23

opensidian v0.6.2

The default theme is AnuPpuccin (GPL-3.0); bundled themes and the Catppuccin palette are attributed in THIRD-PARTY.md.

Landlock self-sandbox is opt-in (OPENSIDIAN_LANDLOCK=1 enables; off by default). Both AppImages boot-verified under Xvfb.

Verify: gpg --verify SHA256SUMS.asc SHA256SUMS && sha256sum -c SHA256SUMS

  • live preview, source and reading modes
  • [[wikilinks]], backlinks, tags, graph view
  • tabs, splits, search, quick switcher, command palette, bookmarks
  • themes, fonts, hotkeys; open a vault with opensidian <folder>
  • drag an image (png, jpg, gif, webp) or a PDF from your file manager onto a note:
    an image is moved into the vault (the original is removed only after the
    vault copy is complete and on disk), a PDF is copied (the original stays,
    as in Obsidian), and ![[name]] is inserted where you dropped it. A name that
    already exists gets a new one, never overwritten. A .pdf must really be a PDF (it starts with %PDF-); other file
    types are refused and left where they are.

Changelog

Big vaults index, save and link faster, and more of your workspace now survives a restart the way it does in Obsidian.

Remembers more

  • Window: size, position and maximized state are restored per vault, in Obsidian's obsidian.json windows format (saved on a clean quit, like Obsidian).
  • Global graph: switching back to the graph tab keeps its layout and camera instead of starting over; the zoom level is saved to graph.json like Obsidian.
  • Graph settings panel: whether the panel is open and which sections (Filters, Groups, Display, Forces) are expanded is saved, for the global graph and for each local graph tab.
  • File explorer and bookmarks: each folder and each bookmark group remembers being collapsed or expanded, individually, across restarts.
  • Local graph: a local graph in a tab keeps its layout, motion, pan and zoom when you switch away and come back, like the global graph.
  • Long notes: switching between live preview, source and reading mode on a long note keeps your place, and stops adjusting the moment you scroll.

New

  • Drag and drop a PDF from your file manager onto a note: it is copied into the vault and ![[name.pdf]] is inserted (images are still moved, as before).
  • Create from the quick switcher: type a title that doesn't exist and press Enter; Shift+Enter creates it even when other notes match; Ctrl+Enter opens it in a new tab. New notes go where the vault says (newFileLocation in .obsidian/app.json: vault root, current folder or a set folder), like Obsidian.
  • Bookmarks header: the collapse/expand-all button now sits in the top row of icons, where Obsidian has it.
  • Opening screen: the app logo next to the Opensidian title, and the action buttons aligned.

Fixed

  • No scrollbars on the app window: a theme or CSS snippet that adds margins or padding no longer gives the whole window a vertical or horizontal scrollbar, at any window size, with any modal open, and on the opening screen. This is now a release gate.
  • Clicking a note in the global graph opens it in the same tab, as in Obsidian, and Back returns to the graph with its layout kept; Ctrl+click or middle click opens a new tab.

Faster

  • Index and link resolution: links resolve through a cached suffix map instead of scanning every note name per link. Building the index is ~92% faster and moving a note ~95% faster.
  • Parallel indexing: notes are read and parsed on up to 8 threads; index build a further ~30% faster.
  • Saving: the Backlinks pane no longer re-runs its queries when you save the note it is showing (save ~87% faster), and unlinked mentions skip notes that cannot contain the name (unlinked mentions ~61% faster, save ~65% faster).
  • Live preview: each wikilink resolves with one lookup instead of a scan of every note (editor updates ~91% faster, back/forward ~46% faster).

Peak memory is unchanged (within ±0.4%). Graph views open, pan, drag and switch tabs as fast as in v0.6.1, measured on two vaults against v0.6.1's own run-to-run noise.

Known

  • Opening a very large note (30,000 lines) in a new tab is ~10% slower than in v0.6.1; tracked for the next release.

v0.6.1

Choose a tag to compare

@jpzk jpzk released this 09 Oct 09:28

opensidian v0.6.1

The default theme is AnuPpuccin (GPL-3.0); bundled themes and the Catppuccin palette are attributed in THIRD-PARTY.md.

Landlock self-sandbox is opt-in (OPENSIDIAN_LANDLOCK=1 enables; off by default).

Verify: gpg --verify SHA256SUMS.asc SHA256SUMS && sha256sum -c SHA256SUMS

Changelog

v0.5 was never published; this release contains everything that was planned for it, plus the items marked (0.6) and (0.6.1).

Faster (0.6.1)

  • Edit/reading switch on big notes: switching between live preview/source and reading view is much faster. On a 30k-line note with 20k links, edit → reading drops from ~2.4 s to ~0.4 s and reading → edit from ~1 s to ~0.45 s; a typical note switches ~45% faster. Reading view output is unchanged; scroll position, caret and selection survive the switch.

New

  • Drag an image in from the file manager (0.6): dropping an image file from your desktop/file manager onto a note moves the file into the vault and inserts the embed at the drop point. Note: this is a move, not a copy, the original location no longer has the file.
  • PDF embeds: ![[file.pdf]] and ![](file.pdf) show the PDF in a frame in reading view and live preview, like Obsidian. #page=, #height=, aliases, subfolders and names with spaces work; a missing file shows a placeholder. Pages are drawn by a pure-Rust renderer (hayro 0.7.1). No PDF JavaScript, forms, launch or link actions ever run, and embeds cannot reach files outside the vault.
  • Graph controls, global and local graph: the full settings card like Obsidian: Filters (search, tags, attachments, existing files only, orphans; local graph depth and link directions), Groups (colour groups), Display, Forces, plus right-click menus on nodes and empty canvas. Settings survive a restart.
  • Graph zoom-out for huge graphs: you can now zoom out to 1/128 (was 0.2), the same bound as Obsidian, so a 5000-note graph fits on screen. Zoom stays anchored to the cursor; labels fade out smoothly as you zoom out.

Fixes

  • Caret (0.6): after following a link and going back (Alt+Left), the caret could be drawn at the top-left corner of the note. It now stays where it was.
  • Graph: the global graph had two settings menus; there is now exactly one per graph view.
  • Minimal theme (and Default): the note text column and margins now match Obsidian. "Readable line length" (on by default) is honoured, which Minimal relies on for its line width and page margins.

v0.4

Choose a tag to compare

@jpzk jpzk released this 07 Oct 18:05

opensidian v0.4

The default theme is AnuPpuccin (GPL-3.0); bundled themes and the Catppuccin palette are attributed in THIRD-PARTY.md.

Landlock self-sandbox is opt-in (OPENSIDIAN_LANDLOCK=1 enables; off by default). Both AppImages boot-verified under Xvfb.

Verify: gpg --verify SHA256SUMS.asc SHA256SUMS && sha256sum -c SHA256SUMS

Changelog

New

  • Official app icon — the amethyst-cluster logo is the launcher and window icon in every package.
  • RPM for Fedora (sudo dnf install ./opensidian-0.4-x86_64.rpm) and .deb for Debian 13 / Ubuntu 26.04 (sudo apt install ./opensidian-0.4-x86_64.deb); both pull in their dependencies and are covered by the signed SHA256SUMS.
  • Debian 13 is now a tested distribution, alongside Fedora 44 and Ubuntu 26.04.
  • Graph: Forces panel — the graph-controls card on the global graph (open by default, collapses to a gear, reset to defaults).

Graph

  • Physics now follow the stock force model: 60 Hz steps, alpha target, the same repel curve, a per-node centre pull with the centroid held at the origin, and a fixed seed, so layouts look like the original.
  • The graph starts untangled: new nodes are seeded near the neighbours already placed.
  • Fixed nodes getting stuck: the Barnes-Hut tree's root cell is now built the same way d3's quadtree builds it.
  • Settling is checked after every physics step, not once per frame.

Security (audit fixes)

Thanks to Aikido for finding the issues fixed below and under "Robustness" (audit #1–#13).

  • Vault filesystem (audit #1, #2, #4, #6, #9): every vault write goes through a handle on the vault folder and never follows symlinks:
    • note saves, new notes and link rewrites;
    • delete to trash, move, new folder and attachment drops;
    • the files under .obsidian.
  • Temp files: random, created exclusively, then renamed into place. No more predictable md.tmp / .part-<pid> names.
  • Sidebar: the folder walk never descends into a symlinked directory and has a depth limit.
  • S1: the window can only navigate to tauri://localhost.
  • S3: with Landlock on, the first-run vault picker restarts the app into the chosen vault instead of opening it without the sandbox.
  • S7: telemetry records only lengths, counts and timings, never note paths, titles, search queries or folder names.

Robustness: huge or malicious notes (audit #10–#13)

  • Image embeds load lazily, so a note with 20k embeds no longer floods the image loader when it opens.
  • Live preview builds rows past 2,000 lines on demand, and trims highlighting on lines past 20,000 characters.
  • Unlinked mentions run in linear time; the list shows the first 200 hits and keeps the exact total.
  • Quotes nested more than 32 levels deep render as plain text.
  • The quick switcher batches title updates instead of redrawing on every keystroke.

Desktop integration

  • GNOME dock: the running window now groups under the opensidian launcher with its icon instead of showing up as a separate app with a generic icon. The window identifies itself as dev.koto.opensidian (Wayland app id and X11 WM_CLASS), and every desktop file carries StartupWMClass (.deb, .rpm, flatpak, AppImage).
  • Flatpak: switching vaults and "Open in new window" work. Before this fix the new window failed to start (bwrap: execvp opensidian).

Data safety

  • Vault switch: if saving the open note fails, the switch is cancelled. Before, the failure was ignored and an edit could be lost.
  • Vault switch: the new window takes the old window's real position and size.

Project

  • SECURITY.md: report vulnerabilities privately by email.
  • README: install section condensed; states that the project is not affiliated with Obsidian / Dynalist Inc.

Known issue

  • A click on a search result sometimes doesn't jump to the match (1 in 91 test runs). Being tracked.

Features

  • live preview, source and reading modes
  • [[wikilinks]], backlinks, tags, graph view
  • tabs, splits, search, quick switcher, command palette, bookmarks
  • themes, fonts, hotkeys; open a vault with opensidian <folder>

v0.3

Choose a tag to compare

@jpzk jpzk released this 04 Oct 17:03

opensidian v0.3

The default theme is AnuPpuccin (GPL-3.0); bundled themes and the Catppuccin palette are attributed in THIRD-PARTY.md.

Landlock self-sandbox is opt-in (OPENSIDIAN_LANDLOCK=1 enables; off by default). Both AppImages boot-verified under Xvfb.

Verify: gpg --verify SHA256SUMS.asc SHA256SUMS && sha256sum -c SHA256SUMS

  • live preview, source and reading modes
  • [[wikilinks]], backlinks, tags, graph view
  • tabs, splits, search, quick switcher, command palette, bookmarks
  • themes, fonts, hotkeys; open a vault with opensidian <folder>