❌

Normale weergave

v0.21.2

11 Oktober 2026 om 14:16

Highlights

  • Fix Windows sidebar and tab path handling, and add Copy Path to the sidebar context menu.
  • Preserve literal $< in HTML export and align rectangular task-list markers with text.
  • Repair macOS arm64 ad-hoc signing after changing Electron fuses.
  • Preserve both x64 and arm64 installers in Windows and macOS automatic-update manifests.
  • Upgrade workspace dependencies and CI tooling.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -d com.apple.quarantine /Applications/MarkText.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • Release tracking: v0.20.0 by @Jocs in #4664
  • docs: fix broken relative links in translated READMEs by @xThreeh in #5616
  • feat(desktop): move sidebar selection to trash with Delete key by @Jocs in #5609
  • Update Japanese localization strings for consistency by @coolvitto in #5630
  • fix(desktop): remove applied custom CSS when the preference is cleared by @woahwhattheheck in #5633
  • fix(muya): restore inline HTML tag marker style and hide bare
    markers by @Jocs in #5636
  • feat(desktop): rename sidebar selection with F2 / Enter (#1618) by @Jocs in #5638
  • feat(muya): preserve caret column on cross-block arrow navigation (#3412) by @Jocs in #5644
  • fix: #3203 make the trailing soft-break line navigable with the arrow keys by @Jocs in #5645
  • fix: #3207 #3385 commit sidebar rename/create when clicking away by @Jocs in #5646
  • feat: support ==highlight== markdown syntax (#2552) by @Jocs in #5647
  • feat: render inline markdown in the TOC (#3110) by @Jocs in #5648
  • feat: support GitLab inline diff and multiline blockquote (#954) by @Jocs in #5649
  • fix(desktop): let the --debug flag reach MarkText in packaged builds by @xThreeh in #5643
  • fix(muya): highlight regexp newline search matches (#3261) by @Jocs in #5650
  • fix(muya): keep the search highlight across a full re-render (#5651) by @Jocs in #5652
  • fix(desktop): persist sidebar folder collapse state across view switches (#5631) by @VictorVow in #5632
  • feat(desktop): reveal the active file in the sidebar file tree (#528) by @Jocs in #5654
  • fix(desktop): keep Latin-1 and Shift-JIS files byte-exact on save (#5577) by @ycyc0421 in #5567
  • chore(ci): remove Claude Code workflow by @Jocs in #5655
  • docs: remove StarDesk sponsor from README and website by @Jocs in #5656
  • Follow-up to #5379: move Pandoc conversion out of Export, gate it behind a preference, and report which binary was found by @dimbc in #5513
  • fix: #5239 let Ctrl+Backspace delete a word at the end of a line by @johannesroth-coreproduction in #5657
  • fix(muya): correct the caret after a native word/line delete, and defer in code blocks (#5239) by @Jocs in #5658
  • feat(muya): text & background colour in the inline format toolbar by @Jocs in #5661
  • Release tracking: v0.21.0 by @Jocs in #5663
  • chore: bump develop to 0.22.0-dev by @Jocs in #5662
  • fix(desktop): wait for the typed find query before Escape in e2e by @Jocs in #5665
  • fix(build): re-sign macOS arm64 builds after flipping the nodeCliInspect fuse by @Jocs in #5664
  • docs: fix broken links in the muya and website package READMEs by @xThreeh in #5668
  • chore(ci): move the workflows to the Node 24 action runtime by @Jocs in #5670
  • chore: remove the retired packages/muyajs engine by @Jocs in #5675
  • test: run the desktop unit tests on Node 25 by @Zane-0x5a in #5666
  • chore(deps): drop dependencies the desktop app no longer uses by @Jocs in #5681
  • chore(deps): bump the postcss override to 8.5.29 by @Jocs in #5674
  • chore(deps): upgrade the workspace dependencies to their latest releases by @Jocs in #5687
  • fix(desktop): compare sidebar and tab paths across separator styles (#5683) by @Jocs in #5689
  • feat(desktop): add Copy Path to the sidebar tree context menu by @witseko in #5692
  • fix(website): restore Cloudflare Worker after the Next.js upgrade by @Jocs in #5698
  • feat(website): load release and community stats dynamically from GitHub by @Jocs in #5699
  • fix: align rectangular task markers with text by @Jocs in #5700
  • fix(desktop): give the renderer a platform-native path bridge (#5683, #5669) by @Jocs in #5691
  • fix: preserve literal $< in HTML export by @Polyacetone in #5701

New Contributors

Full Changelog: v0.20.0...v0.21.2

  •  

OBS Studio 33.0.0 Release Candidate 1

9 Oktober 2026 om 04:15

Release Candidate 1 Changes

  • Fixed audio monitoring on browser sources briefly being enabled every time in Beta 1-6 [prgmitchell] (#14003)
  • Fixed browser sources appearing blank on refresh in Beta 1-6 [WizardCM] (#14003)
  • Fixed local network requests failing in browser sources in Beta 1-6 [WizardCM] (#14009)
  • Fixed Plugin Manager showing third-party plugins as missing when OBS is launched in Safe Mode in Beta 1-6 [Warchamp7] (#14001)
  • Fixed Plugin Manager removal button sometimes not removing missing plugins from the Plugin Manager in Beta 1-6 [Warchamp7] (#14008)
  • Fixed the Missing Encoders popup not showing in taskbar [Warchamp7] (#14010)
  • Fixed profile import failing on paths with a trailing slash [Ushkalovk] (#13863)
  • Developer Info: Added obs_canvas_video_active() to check if the video of a canvas is active [exeldro] (#13110)
  • Developer Info: Changed obs_canvas_reset_video() to allow resetting a canvas's video when any other canvas's video is active, but not its own video [exeldro] (#13110)

Beta 6 Changes

  • Fixed a crash during certain actions involving groups in Beta 1-5 [prgmitchell] (#13978)
  • Fixed scripting not working on macOS in Beta 1-5 [PatTheMav] (#13976)
  • Fixed game capture hooks not updating in Beta 1-5 [Warchamp7] (#13968)
  • Fixed clock Lua script not working in Beta 1-5 [RytoEX] (#13974)
  • Changed Safe Mode to not start WebSocket Server [FiniteSingularity/RytoEX] (#13984)
  • Removed support for FFmpeg 6.x and 7.x [RytoEX] (#13964)
  • Removed support for Qt 6.4-6.9 [RytoEX] (#13969)

Beta 5 Changes

  • Fixed duplicate "Save Replay" hotkey entries when switching profiles in Beta 1-4 [xtfo] (#13943)
  • Fixed warning dialogs on macOS not rendering rich text in Beta 1-4 [Warchamp7] (#13949)
  • Fixed source icon state appearing inverted in Beta 1-4 [Warchamp7] (#13953)
  • Fixed audio monitoring settings not saving in Beta 1-4 [Warchamp7] (#13951)
  • Fixed missing encoder check showing missing encoders in an output mode that is not currently selected in Beta 1-4 [Warchamp7] (#13950)
  • Fixed Windows updater not updating game capture and virtual camera in some cases in Beta 1-4 [Warchamp7] (#13939)

Beta 4 Changes

  • Fixed a CI and packaging issue. There are no application changes since Beta 1.

Beta 3 Changes

  • Fixed a CI issue. There are no application changes since Beta 1.

Beta 2 Changes

  • Fixed a versioning issue. There are no application changes since Beta 1.

33.0 New Features

  • Updated CEF from 127/6533 to 150/7871 [WizardCM] (#13900)
    • This is a massive update to the underlying framework used for browser sources and docks from the July 2024 release to September 2026
    • All of this work is on the backend and should be invisible to users. Please be sure to report any new weirdness or problems you run into with browser sources!
  • Complete overhaul to plugin loading [FiniteSingularity/PatTheMav] (#13594)
    • First-party plugins are now in a new folder named core
    • Third-party plugins have an updated installation location and folder structure
    • Existing third-party plugins will continue to load from the legacy locations until OBS Studio 34.0
    • More information is available in our knowledge base article
  • Improved how source snapping works in the preview [Warchamp7] (#12298)
    • New visual indicator added
    • Sources now snap along the entire axis instead of only when directly touching
    • Sources no longer snap to hidden sources
  • Improved behavior of spinboxes for number values [Warchamp7] (#12337)
    • Typing is no longer mysteriously blocked in some situations
    • Numbers are no longer cut off in some situations
    • Values now update only after pressing Enter and Enter does not close the window
    • Holding Shift + Up/Down now advances multiple steps at a time
    • Dragging the cursor inside the input but outside the text itself now works properly
  • Enabled NVENC on Arm64 [RytoEX] (#13827)

33.0 Changes

  • Added a check for encoders being missing when loading a profile [derrod] (#11340)
  • Added support for newest NVIDIA Broadcast SDKs for NVIDIA Audio Effects and Video Effects [pkviet] (#13838)
  • Added hotkeys for controlling audio monitoring of a source [Warchamp7] (#13599)
  • Fixed issues with groups in Studio Mode [Warchamp7] (#11092)
    • Fixed moving sources inside a group causing them to glitch out in Program
    • Fixed moving sources inside a group showing up live in Program
  • Adjusted naming of Window Capture methods on Windows [Penwy] (#12047)
  • Improved detection of fullscreen games for Game Capture [Kira-NT] (#10880)
  • Improved transparency handling for macOS Screen Capture [jcm93] (#13030)
  • Scaled simple output recording audio bitrate by channel count [nickvonkaenel] (#13311)
  • Removed support for Ubuntu 24.04

33.0 Bug Fixes

  • Added a startup error if obs-transitions failed to load [notr1ch] (#13321)
  • Improved file splitting for Hybrid MP4/MOV [derrod] (#13386)
  • Fixed outputs getting stuck running when a bad rescale output resolution is set [suogesi] (#13375)
  • Fixed monitoring icon state getting desynced when using third-party tools or websockets [prgmitchell] (#13822)
  • Fixed potential crash when shader cache file is invalid [notr1ch] (#13538)
  • Fixed a potential crash on Linux when USB mic is removed [R0te/RytoEX] (#13922)
  • Fixed a potential crash when renaming a source with the Add Source window open [Warchamp7] (#13800)
  • Fixed a potential deadlock during video/audio tasks [exeldro] (#13579)
  • Fixed an issue with B-frame offset calculation in AMF that could cause streams to disconnect [lexano-ivs] (#13762)
  • Fixed PipeWire screencast sources being duplicated in studio mode [tytan652] (#13673)
  • Fixed a potential crash when switching off a newly created profile [Warchamp7] (#13182)
  • Fixed a source toolbar crash when source type is missing [Penwy] (#13539)

33.0 Developer Information

  • Added frontend event and output signal for replay buffer saving [Penwy] (#8955)
  • Added guidance regarding the theme system to the top of all theme files [Warchamp7] (#13733)
  • Added ability to set a file extension filter for OBS_PATH_FILE_SAVE path types [FiniteSingularity] (#10190)
  • Added obs_frontend_is_safe_mode for first-party plugins
    • Third-party plugins are not loaded at all in Safe Mode
  • Added versions to Flatpak plugin extension point [tytan652] (#13735)
  • Added obs_canvas_video_active() to check if the video of a canvas is active [exeldro] (#13110)
  • The minimum supported versions of Visual Studio, Windows SDK, and clang-format have been increased. Previous versions may continue to work, but will no longer be tested/supported. It is recommended that build environments are kept up-to-date with the project's toolchain.
    • Changed Windows builds to use Visual Studio 2026 and SDK 26100 [RytoEX] (#13543)
    • Changed clang-format version used to 22.1.3 [PatTheMav] (#13549)
  • Changed obs_canvas_reset_video() to allow resetting a canvas's video when any other canvas's video is active, but not its own video [exeldro] (#13110)
  • Updated libnsgif to 1.0.0 [RytoEX] (#11178)
    • This is a breaking change for any plugins using libobs/graphics gs_image_file
  • Clarified documentation for obs_module_unload [notr1ch] (#13327)
  • Required MbedTLS 3 and exclude 4 or later [tytan652] (#13799)
  • Removed support for FFmpeg 6.x and 7.x [RytoEX] (#13964)
  • Removed support for Qt 6.4-6.9 [RytoEX] (#13969)
  • Fixed repeated preview enable/disables not working [WarmUpTill] (#12580)
  • Only emit core signal handlers for public canvases [tt2468] (#13574)
  • Deprecated unused hidden API for sources [derrod] (#13122)
  • Deprecated APIs for audio source monitoring_type [Warchamp7] (#13599)
    • This is replaced by a new monitoring_enabled boolean

Checksums

OBS-Studio-33.0.0-rc1-Sources.tar.gz: 1a73e95b5ad8addd79aeb5b48e5292b982dd2ffa69744294930a7c474c958fe0
OBS-Studio-33.0.0-rc1-Ubuntu-26.04-x86_64-dbsym.ddeb: d85dc2bdd26a21f29ea0a3dee8a6a31ae0a2a142df48fc56d41df9fb3571711e
OBS-Studio-33.0.0-rc1-Ubuntu-26.04-x86_64.deb: 7f2264131413b8b0d49b74c5693c044c4884f5ca923f08cb07c3ffd2b7369024
OBS-Studio-33.0.0-rc1-Windows-arm64-PDBs.zip: b855ec251576313f6de129213f0b57ece8d3b5970b6fb402f528b5791feeea0b
OBS-Studio-33.0.0-rc1-Windows-arm64.zip: 7205f9c3acb048c167c7fc38b2c3efd11d534f0f42242caa496a036785471a3c
OBS-Studio-33.0.0-rc1-Windows-x64-Installer.exe: 89cda9af39aaa0c6bbdae4d5db3bbfed127c82a6ef57b79acc6a745a872fa85c
OBS-Studio-33.0.0-rc1-Windows-x64-PDBs.zip: e7be732e7d61a59418cfdbdbe4790424ed8d3441676bd03c70710f4baef4f386
OBS-Studio-33.0.0-rc1-Windows-x64.zip: 2934bda03b5288378ca32a51dfe1003d4a557531a6af2ba105d7671d7557ad1f
OBS-Studio-33.0.0-rc1-macOS-Apple-dSYMs.tar.xz: 30e35c09bbbe7bed0d203cdd7439b1a239d9c4f9ef5c32570c5e1a0596ad5e67
OBS-Studio-33.0.0-rc1-macOS-Apple.dmg: 9322e6266140c0b82378848ded76d22cb721de550282c525d57b05590c94bbf6
OBS-Studio-33.0.0-rc1-macOS-Intel-dSYMs.tar.xz: dbe0dc36f8f064ccda4ec835ffcb279349efa88583b315336b576fa8e41b8737
OBS-Studio-33.0.0-rc1-macOS-Intel.dmg: fd0fd30ad54c4c18a4849fdfe2a3c8c7bd5e8f49325cb2861fc10b65c7aef683

  •  

v0.21.1

8 Oktober 2026 om 18:18

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -d com.apple.quarantine /Applications/MarkText.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

Full Changelog: v0.21.0...v0.21.1

  •  

v0.21.0

8 Oktober 2026 om 18:18

πŸ›‘ macOS Apple Silicon (arm64): this build is broken β€” use v0.21.1

The macOS arm64 assets below crash immediately on launch with EXC_BAD_ACCESS (Code Signature Invalid). A newly added Electron fuse rewrote the Electron Framework binary, which invalidated its ad-hoc signature, and the build was not re-signed afterwards.

Two ways to get a working app:

  1. Download v0.21.1 (recommended) β€” it ships the fix.
  2. Repair this build in place β€” after installing, run:
    sudo codesign --force --deep --sign - /Applications/MarkText.app
    

xattr -cr does not fix this crash. The macOS Intel (x64) and the Windows/Linux builds are unaffected.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -d com.apple.quarantine /Applications/MarkText.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • Release tracking: v0.20.0 by @Jocs in #4664
  • docs: fix broken relative links in translated READMEs by @xThreeh in #5616
  • feat(desktop): move sidebar selection to trash with Delete key by @Jocs in #5609
  • Update Japanese localization strings for consistency by @coolvitto in #5630
  • fix(desktop): remove applied custom CSS when the preference is cleared by @woahwhattheheck in #5633
  • fix(muya): restore inline HTML tag marker style and hide bare
    markers by @Jocs in #5636
  • feat(desktop): rename sidebar selection with F2 / Enter (#1618) by @Jocs in #5638
  • feat(muya): preserve caret column on cross-block arrow navigation (#3412) by @Jocs in #5644
  • fix: #3203 make the trailing soft-break line navigable with the arrow keys by @Jocs in #5645
  • fix: #3207 #3385 commit sidebar rename/create when clicking away by @Jocs in #5646
  • feat: support ==highlight== markdown syntax (#2552) by @Jocs in #5647
  • feat: render inline markdown in the TOC (#3110) by @Jocs in #5648
  • feat: support GitLab inline diff and multiline blockquote (#954) by @Jocs in #5649
  • fix(desktop): let the --debug flag reach MarkText in packaged builds by @xThreeh in #5643
  • fix(muya): highlight regexp newline search matches (#3261) by @Jocs in #5650
  • fix(muya): keep the search highlight across a full re-render (#5651) by @Jocs in #5652
  • fix(desktop): persist sidebar folder collapse state across view switches (#5631) by @VictorVow in #5632
  • feat(desktop): reveal the active file in the sidebar file tree (#528) by @Jocs in #5654
  • fix(desktop): keep Latin-1 and Shift-JIS files byte-exact on save (#5577) by @ycyc0421 in #5567
  • chore(ci): remove Claude Code workflow by @Jocs in #5655
  • docs: remove StarDesk sponsor from README and website by @Jocs in #5656
  • Follow-up to #5379: move Pandoc conversion out of Export, gate it behind a preference, and report which binary was found by @dimbc in #5513
  • fix: #5239 let Ctrl+Backspace delete a word at the end of a line by @johannesroth-coreproduction in #5657
  • fix(muya): correct the caret after a native word/line delete, and defer in code blocks (#5239) by @Jocs in #5658
  • feat(muya): text & background colour in the inline format toolbar by @Jocs in #5661

New Contributors

Full Changelog: v0.20.0...v0.21.0

  •  

OBS Studio 33.0.0 Beta 6

3 Oktober 2026 om 01:27

Beta 6 Changes

  • Fixed a crash during certain actions involving groups in Beta 1-5 [prgmitchell] (#13978)
  • Fixed scripting not working on macOS in Beta 1-5 [PatTheMav] (#13976)
  • Fixed game capture hooks not updating in Beta 1-5 [Warchamp7] (#13968)
  • Fixed clock Lua script not working in Beta 1-5 [RytoEX] (#13974)
  • Changed Safe Mode to not start WebSocket Server [FiniteSingularity/RytoEX] (#13984)
  • Removed support for FFmpeg 6.x and 7.x [RytoEX] (#13964)
  • Removed support for Qt 6.4-6.9 [RytoEX] (#13969)

Beta 5 Changes

  • Fixed duplicate "Save Replay" hotkey entries when switching profiles in Beta 1-4 [xtfo] (#13943)
  • Fixed warning dialogs on macOS not rendering rich text in Beta 1-4 [Warchamp7] (#13949)
  • Fixed source icon state appearing inverted in Beta 1-4 [Warchamp7] (#13953)
  • Fixed audio monitoring settings not saving in Beta 1-4 [Warchamp7] (#13951)
  • Fixed missing encoder check showing missing encoders in an output mode that is not currently selected in Beta 1-4 [Warchamp7] (#13950)
  • Fixed Windows updater not updating game capture and virtual camera in some cases in Beta 1-4 [Warchamp7] (#13939)

Beta 4 Changes

  • Fixed a CI and packaging issue. There are no application changes since Beta 1.

Beta 3 Changes

  • Fixed a CI issue. There are no application changes since Beta 1.

Beta 2 Changes

  • Fixed a versioning issue. There are no application changes since Beta 1.

33.0 New Features

  • Updated CEF from 127/6533 to 150/7871 [WizardCM] (#13900)
    • This is a massive update to the underlying framework used for browser sources and docks from the July 2024 release to September 2026
    • All of this work is on the backend and should be invisible to users. Please be sure to report any new weirdness or problems you run into with browser sources!
  • Complete overhaul to plugin loading [FiniteSingularity/PatTheMav] (#13594)
    • First-party plugins are now in a new folder named core
    • Third-party plugins have an updated installation location and folder structure
    • Existing third-party plugins will continue to load from the legacy locations until OBS Studio 34.0
    • More information is available in our knowledge base article
  • Improved how source snapping works in the preview [Warchamp7] (#12298)
    • New visual indicator added
    • Sources now snap along the entire axis instead of only when directly touching
    • Sources no longer snap to hidden sources
  • Improved behavior of spinboxes for number values [Warchamp7] (#12337)
    • Typing is no longer mysteriously blocked in some situations
    • Numbers are no longer cut off in some situations
    • Values now update only after pressing Enter and Enter does not close the window
    • Holding Shift + Up/Down now advances multiple steps at a time
    • Dragging the cursor inside the input but outside the text itself now works properly
  • Enabled NVENC on Arm64 [RytoEX] (#13827)

33.0 Changes

  • Added a check for encoders being missing when loading a profile [derrod] (#11340)
  • Added support for newest NVIDIA Broadcast SDKs for NVIDIA Audio Effects and Video Effects [pkviet] (#13838)
  • Added hotkeys for controlling audio monitoring of a source [Warchamp7] (#13599)
  • Fixed issues with groups in Studio Mode [Warchamp7] (#11092)
    • Fixed moving sources inside a group causing them to glitch out in Program
    • Fixed moving sources inside a group showing up live in Program
  • Adjusted naming of Window Capture methods on Windows [Penwy] (#12047)
  • Improved detection of fullscreen games for Game Capture [Kira-NT] (#10880)
  • Improved transparency handling for macOS Screen Capture [jcm93] (#13030)
  • Scaled simple output recording audio bitrate by channel count [nickvonkaenel] (#13311)
  • Removed support for Ubuntu 24.04

33.0 Bug Fixes

  • Added a startup error if obs-transitions failed to load [notr1ch] (#13321)
  • Improved file splitting for Hybrid MP4/MOV [derrod] (#13386)
  • Fixed outputs getting stuck running when a bad rescale output resolution is set [suogesi] (#13375)
  • Fixed monitoring icon state getting desynced when using third-party tools or websockets [prgmitchell] (#13822)
  • Fixed potential crash when shader cache file is invalid [notr1ch] (#13538)
  • Fixed a potential crash on Linux when USB mic is removed [R0te/RytoEX] (#13922)
  • Fixed a potential crash when renaming a source with the Add Source window open [Warchamp7] (#13800)
  • Fixed a potential deadlock during video/audio tasks [exeldro] (#13579)
  • Fixed an issue with B-frame offset calculation in AMF that could cause streams to disconnect [lexano-ivs] (#13762)
  • Fixed PipeWire screencast sources being duplicated in studio mode [tytan652] (#13673)
  • Fixed a potential crash when switching off a newly created profile [Warchamp7] (#13182)
  • Fixed a source toolbar crash when source type is missing [Penwy] (#13539)

33.0 Developer Information

  • Added frontend event and output signal for replay buffer saving [Penwy] (#8955)
  • Added guidance regarding the theme system to the top of all theme files [Warchamp7] (#13733)
  • Added ability to set a file extension filter for OBS_PATH_FILE_SAVE path types [FiniteSingularity] (#10190)
  • Added obs_frontend_is_safe_mode for first-party plugins
    • Third-party plugins are not loaded at all in Safe Mode
  • Added versions to Flatpak plugin extension point [tytan652] (#13735)
  • The minimum supported versions of Visual Studio, Windows SDK, and clang-format have been increased. Previous versions may continue to work, but will no longer be tested/supported. It is recommended that build environments are kept up-to-date with the project's toolchain.
    • Changed Windows builds to use Visual Studio 2026 and SDK 26100 [RytoEX] (#13543)
    • Changed clang-format version used to 22.1.3 [PatTheMav] (#13549)
  • Updated libnsgif to 1.0.0 [RytoEX] (#11178)
    • This is a breaking change for any plugins using libobs/graphics gs_image_file
  • Clarified documentation for obs_module_unload [notr1ch] (#13327)
  • Required MbedTLS 3 and exclude 4 or later [tytan652] (#13799)
  • Fixed repeated preview enable/disables not working [WarmUpTill] (#12580)
  • Only emit core signal handlers for public canvases [tt2468] (#13574)
  • Deprecated unused hidden API for sources [derrod] (#13122)
  • Deprecated APIs for audio source monitoring_type [Warchamp7] (#13599)
    • This is replaced by a new monitoring_enabled boolean

Checksums

OBS-Studio-33.0.0-beta6-Sources.tar.gz: c0774b6d3d44b4ceeac9640ba752493c5e038e594f2f75fe45902352a896fdc1
OBS-Studio-33.0.0-beta6-Ubuntu-26.04-x86_64-dbsym.ddeb: 13954f91f15d18a91ac9fc1d37b397f53c511eaf7a319337a6fc461678981bcc
OBS-Studio-33.0.0-beta6-Ubuntu-26.04-x86_64.deb: 743d9d45f24e3206c382ebf15325f57e241655ee2b3d0e04119da2399cd12528
OBS-Studio-33.0.0-beta6-Windows-arm64-PDBs.zip: 905d01dbc84655176d8bea82a98793b36ee8cdd41ff2ec14b87ded8ac87fd6a3
OBS-Studio-33.0.0-beta6-Windows-arm64.zip: 51d411d19f11d5c1d54119677ec55aa6af8a1773edc4893d9753eb6cb60728d7
OBS-Studio-33.0.0-beta6-Windows-x64-Installer.exe: 2718bb13120cae63da3ad8c7c6da97d5dca72453c04aca710a1c43f052aeffa9
OBS-Studio-33.0.0-beta6-Windows-x64-PDBs.zip: 8a636784183fcf7151bf8a6878019c2754107e358759fc3c0a6b5db0218b092b
OBS-Studio-33.0.0-beta6-Windows-x64.zip: e132c58934a5b0755fff0fc92a49d665a592e323ce0871618738721e20d0ebb3
OBS-Studio-33.0.0-beta6-macOS-Apple-dSYMs.tar.xz: e1b4b66245179fdc59e391ad8f455e7216d7eaef23fac61fc93e6bbe8da5a533
OBS-Studio-33.0.0-beta6-macOS-Apple.dmg: 06fe6deaf96645f88593dbc2085c2195714584df3989f4c1aba1a3bfe0be4c40
OBS-Studio-33.0.0-beta6-macOS-Intel-dSYMs.tar.xz: 707ad42c7eaa7a0d6bca419aca11a06f785275306eb683dfdfeb9356b5fc55b2
OBS-Studio-33.0.0-beta6-macOS-Intel.dmg: 80351ba0c886ab8d7c0f32ab782fadf335e5c644c8483f43ced994756cfda3c9

  •  

v0.20.0

2 Oktober 2026 om 08:02

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

New Contributors

Full Changelog: v0.19.0...v0.20.0

  •  

OBS Studio 33.0.0 Beta 5

3 Oktober 2026 om 01:25

Beta 5 Changes

  • Fixed duplicate "Save Replay" hotkey entries when switching profiles [xtfo] (#13943)
  • Fixed warning dialogs on macOS not rendering rich text [Warchamp7] (#13949)
  • Fixed source icon state appearing inverted [Warchamp7] (#13953)
  • Fixed audio monitoring settings not saving [Warchamp7] (#13951)
  • Fixed missing encoder check showing missing encoders in an output mode that is not currently selected [Warchamp7] (#13950)
  • Fixed Windows updater not updating game capture and virtual camera in some cases [Warchamp7] (#13939)

Beta 4 Changes

  • Fixed a CI and packaging issue. There are no application changes since Beta 1.

Beta 3 Changes

  • Fixed a CI issue. There are no application changes since Beta 1.

Beta 2 Changes

  • Fixed a versioning issue. There are no application changes since Beta 1.

33.0 New Features

  • Updated CEF from 127/6533 to 150/7871 [WizardCM] (#13900)
    • This is a massive update to the underlying framework used for browser sources and docks from the July 2024 release to September 2026
    • All of this work is on the backend and should be invisible to users. Please be sure to report any new weirdness or problems you run into with browser sources!
  • Complete overhaul to plugin loading [FiniteSingularity/PatTheMav] (#13594)
    • First-party plugins are now in a new folder named core
    • Third-party plugins have an updated installation location and folder structure
    • Existing third-party plugins will continue to load from the legacy locations until OBS Studio 34.0
    • More information is available in our knowledge base article.
  • Improved how source snapping works in the preview [Warchamp7] (#12298)
    • New visual indicator added
    • Sources now snap along the entire axis instead of only when directly touching
    • Sources no longer snap to hidden sources
  • Improved behavior of spinboxes for number values [Warchamp7] (#12337)
    • Typing is no longer mysteriously blocked in some situations
    • Numbers are no longer cut off in some situations
    • Values now update only after pressing Enter and Enter does not close the window
    • Holding Shift + Up/Down now advances multiple steps at a time
    • Dragging the cursor inside the input but outside the text itself now works properly
  • Enabled NVENC on Arm64 [RytoEX] (#13827)

33.0 Changes

  • Added a check for encoders being missing when loading a profile [derrod] (#11340)
  • Added support for newest NVIDIA Broadcast SDKs for NVIDIA Audio Effects and Video Effects [pkviet] (#13838)
  • Added hotkeys for controlling audio monitoring of a source [Warchamp7] (#13599)
  • Fixed issues with groups in Studio Mode [Warchamp7] (#11092)
    • Fixed moving sources inside a group causing them to glitch out in Program
    • Fixed moving sources inside a group showing up live in Program
  • Adjusted naming of Window Capture methods on Windows [Penwy] (#12047)
  • Improved detection of fullscreen games for Game Capture [Kira-NT] (#10880)
  • Improved transparency handling for macOS Screen Capture [jcm93] (#13030)
  • Scaled simple output recording audio bitrate by channel count [nickvonkaenel] (#13311)
  • Removed support for Ubuntu 24.04

33.0 Bug Fixes

  • Added a startup error if obs-transitions failed to load [notr1ch] (#13321)
  • Improved file splitting for Hybrid MP4/MOV [derrod] (#13386)
  • Fixed outputs getting stuck running when a bad rescale output resolution is set [suogesi] (#13375)
  • Fixed monitoring icon state getting desynced when using third-party tools or websockets [prgmitchell] (#13822)
  • Fixed potential crash when shader cache file is invalid [notr1ch] (#13538)
  • Fixed a potential crash on Linux when USB mic is removed [R0te/RytoEX] (#13922)
  • Fixed a potential crash when renaming a source with the Add Source window open [Warchamp7] (#13800)
  • Fixed a potential deadlock during video/audio tasks [exeldro] (#13579)
  • Fixed an issue with B-frame offset calculation in AMF that could cause streams to disconnect [lexano-ivs] (#13762)
  • Fixed PipeWire screencast sources being duplicated in studio mode [tytan652] (#13673)
  • Fixed a potential crash when switching off a newly created profile [Warchamp7] (#13182)
  • Fixed a source toolbar crash when source type is missing [Penwy] (#13539)

33.0 Developer Information

  • Added frontend event and output signal for replay buffer saving [Penwy] (#8955)
  • Added guidance regarding the theme system to the top of all theme files [Warchamp7] (#13733)
  • Added ability to set a file extension filter for OBS_PATH_FILE_SAVE path types [FiniteSingularity] (#10190)
  • Added obs_frontend_is_safe_mode for first-party plugins
    • Third-party plugins are not loaded at all in Safe Mode
  • Added versions to Flatpak plugin extension point [tytan652] (#13735)
  • Updated libnsgif to 1.0.0 [RytoEX] (#11178)
    • This is a breaking change for any plugins using libobs/graphics gs_image_file
  • Clarified documentation for obs_module_unload [notr1ch] (#13327)
  • Required MbedTLS 3 and exclude 4 or later [tytan652] (#13799)
  • Fixed repeated preview enable/disables not working [WarmUpTill] (#12580)
  • Only emit core signal handlers for public canvases [tt2468] (#13574)
  • Deprecated unused hidden API for sources [derrod] (#13122)
  • Deprecated APIs for audio source monitoring_type [Warchamp7] (#13599)
    • This is replaced by a new monitoring_enabled boolean

Checksums

OBS-Studio-33.0.0-beta5-Sources.tar.gz: 5b8d65c0b2981aa779eaf5bae9739ba5681290f03025b9eddd40cf5da2eb566a
OBS-Studio-33.0.0-beta5-Ubuntu-26.04-x86_64-dbsym.ddeb: 6fd06d0ee256f560875622da516880b119083b725e9280a7105221d589128952
OBS-Studio-33.0.0-beta5-Ubuntu-26.04-x86_64.deb: db1fdfad893d4d20adb3f899bd8ee24cf26b6088e23764c5ffbfe3eef6ca6153
OBS-Studio-33.0.0-beta5-Windows-arm64-PDBs.zip: 8b5860e48349a7d90794ab61e8b42458f270ccc4aeb53c4aa6d1f0469335b9af
OBS-Studio-33.0.0-beta5-Windows-arm64.zip: 7a7b3c3759dfc49df65d1b4e14cc23ad6092f4f36d83e44ea2978ec9f54a3c9f
OBS-Studio-33.0.0-beta5-Windows-x64-Installer.exe: 7ee61670a7e8738b4753487d3c3e75f30c35ddbe2937cdb75eb31b86054c3cf9
OBS-Studio-33.0.0-beta5-Windows-x64-PDBs.zip: 643c1b735da59b40052887ec0b891bd2852d2bd47c87227f268e3da026a0a86f
OBS-Studio-33.0.0-beta5-Windows-x64.zip: 8de0d330582083bc3b429e7dbe01d1fbc995dfdeeb3229eedf454a2f931c6481
OBS-Studio-33.0.0-beta5-macOS-Apple-dSYMs.tar.xz: 5b0545a3724c2920b02aa3df07c76f39bec73b1b814fcf78d1cb53dbae52393f
OBS-Studio-33.0.0-beta5-macOS-Apple.dmg: e7d289a68ee27e0d21900f380fd3d0c2c4c5c48ec0e1661fe6b093258b07eaa5
OBS-Studio-33.0.0-beta5-macOS-Intel-dSYMs.tar.xz: f4192371f6bc9ab92f2403893eb3c945fda37585185b3bce31a6d4fdef7a7229
OBS-Studio-33.0.0-beta5-macOS-Intel.dmg: 33b5a80275eaa7331cb39a71d530e63d3937672c62d6c9fb5c48039490b255df

  •  

v0.20.0-rc.7

29 September 2026 om 13:54

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • fix: restore code block legibility and text crispness (#5539) by @Jocs in #5553
  • test: fold the two #5539 specs into one by @Jocs in #5557
  • fix(muya): keep a hard line break's glyph on the line it ends (#2094) by @Jocs in #5556
  • revert: keep grayscale antialiasing on editor text (#5539) by @Jocs in #5558
  • fix(muya): keep sequence diagram arrowheads in exported PDFs (#2423) by @Jocs in #5561
  • fix(muya): pair emphasis delimiters the way CommonMark does (#2086) by @Jocs in #5555
  • fix(muya): parse link destinations the way CommonMark does (#2377) by @Jocs in #5562
  • Add a zoom/pan viewer and image export for rendered diagrams by @Jocs in #5554
  • fix: give the editor and Preferences windows their own menu bar (#2245) by @Jocs in #5560
  • perf(muya): re-render only the two affected blocks when stepping through search (#5580) by @ycyc0421 in #5569

New Contributors

Full Changelog: v0.20.0-rc.6...v0.20.0-rc.7

  •  

OBS Studio 33.0.0 Beta 4

3 Oktober 2026 om 01:26

Beta 4 Changes

  • Fixed a CI and packaging issue. There are no application changes since Beta 1.

Beta 3 Changes

  • Fixed a CI issue. There are no application changes since Beta 1.

Beta 2 Changes

  • Fixed a versioning issue. There are no application changes since Beta 1.

33.0 New Features

  • Updated CEF from 127/6533 to 150/7871 [WizardCM] (#13900)
    • This is a massive update to the underlying framework used for browser sources and docks from the July 2024 release to September 2026
    • All of this work is on the backend and should be invisible to users. Please be sure to report any new weirdness or problems you run into with browser sources!
  • Complete overhaul to plugin loading [FiniteSingularity/PatTheMav] (#13594)
    • First-party plugins are now in a new folder named core
    • Third-party plugins have an updated installation location and folder structure
    • Existing third-party plugins will continue to load from the legacy locations until OBS Studio 34.0
    • More information is available in our knowledge base article.
  • Improved how source snapping works in the preview [Warchamp7] (#12298)
    • New visual indicator added
    • Sources now snap along the entire axis instead of only when directly touching
    • Sources no longer snap to hidden sources
  • Improved behavior of spinboxes for number values [Warchamp7] (#12337)
    • Typing is no longer mysteriously blocked in some situations
    • Numbers are no longer cut off in some situations
    • Values now update only after pressing Enter and Enter does not close the window
    • Holding Shift + Up/Down now advances multiple steps at a time
    • Dragging the cursor inside the input but outside the text itself now works properly
  • Enabled NVENC on Arm64 [RytoEX] (#13827)

33.0 Changes

  • Added a check for encoders being missing when loading a profile [derrod] (#11340)
  • Added support for newest NVIDIA Broadcast SDKs for NVIDIA Audio Effects and Video Effects [pkviet] (#13838)
  • Added hotkeys for controlling audio monitoring of a source [Warchamp7] (#13599)
  • Fixed issues with groups in Studio Mode [Warchamp7] (#11092)
    • Fixed moving sources inside a group causing them to glitch out in Program
    • Fixed moving sources inside a group showing up live in Program
  • Adjusted naming of Window Capture methods on Windows [Penwy] (#12047)
  • Improved detection of fullscreen games for Game Capture [Kira-NT] (#10880)
  • Improved transparency handling for macOS Screen Capture [jcm93] (#13030)
  • Scaled simple output recording audio bitrate by channel count [nickvonkaenel] (#13311)
  • Removed support for Ubuntu 24.04

33.0 Bug Fixes

  • Added a startup error if obs-transitions failed to load [notr1ch] (#13321)
  • Improved file splitting for Hybrid MP4/MOV [derrod] (#13386)
  • Fixed outputs getting stuck running when a bad rescale output resolution is set [suogesi] (#13375)
  • Fixed monitoring icon state getting desynced when using third-party tools or websockets [prgmitchell] (#13822)
  • Fixed potential crash when shader cache file is invalid [notr1ch] (#13538)
  • Fixed a potential crash on Linux when USB mic is removed [R0te/RytoEX] (#13922)
  • Fixed a potential crash when renaming a source with the Add Source window open [Warchamp7] (#13800)
  • Fixed a potential deadlock during video/audio tasks [exeldro] (#13579)
  • Fixed an issue with B-frame offset calculation in AMF that could cause streams to disconnect [lexano-ivs] (#13762)
  • Fixed PipeWire screencast sources being duplicated in studio mode [tytan652] (#13673)
  • Fixed a potential crash when switching off a newly created profile [Warchamp7] (#13182)
  • Fixed a source toolbar crash when source type is missing [Penwy] (#13539)

33.0 Developer Information

  • Added frontend event and output signal for replay buffer saving [Penwy] (#8955)
  • Added guidance regarding the theme system to the top of all theme files [Warchamp7] (#13733)
  • Added ability to set a file extension filter for OBS_PATH_FILE_SAVE path types [FiniteSingularity] (#10190)
  • Added obs_frontend_is_safe_mode for first-party plugins
    • Third-party plugins are not loaded at all in Safe Mode
  • Added versions to Flatpak plugin extension point [tytan652] (#13735)
  • Updated libnsgif to 1.0.0 [RytoEX] (#11178)
    • This is a breaking change for any plugins using libobs/graphics gs_image_file
  • Clarified documentation for obs_module_unload [notr1ch] (#13327)
  • Required MbedTLS 3 and exclude 4 or later [tytan652] (#13799)
  • Fixed repeated preview enable/disables not working [WarmUpTill] (#12580)
  • Only emit core signal handlers for public canvases [tt2468] (#13574)
  • Deprecated unused hidden API for sources [derrod] (#13122)
  • Deprecated APIs for audio source monitoring_type [Warchamp7] (#13599)
    • This is replaced by a new monitoring_enabled boolean

Checksums

OBS-Studio-33.0.0-beta4-Sources.tar.gz: 71f33df72e454d53c0eb1e706441e2b24c475acc3ac259b8c071e9707ad10eb7
OBS-Studio-33.0.0-beta4-Ubuntu-26.04-x86_64-dbsym.ddeb: 9be1bbd516cb9b62be1adb381be44c026f197c9c206c90d06381d4eb6baf99d4
OBS-Studio-33.0.0-beta4-Ubuntu-26.04-x86_64.deb: 055db4d5cb1099b106d67645f84bc076ad1409836a0b603a35f393e1aa063a1d
OBS-Studio-33.0.0-beta4-Windows-arm64-PDBs.zip: a1e5095bd3b20bd3703cd2a2e97dc9735f5bb08513218d463edb1e9b88376d10
OBS-Studio-33.0.0-beta4-Windows-arm64.zip: c8bdbd9963e9bbdaf5e8ffaa7536ce6edd4ac583bec560fff69a5dee532ac111
OBS-Studio-33.0.0-beta4-Windows-x64-Installer.exe: 28323560c1585d51a290984777e980ef8788cd3210f150993ccbd9ee62484d8a
OBS-Studio-33.0.0-beta4-Windows-x64-PDBs.zip: 4825a54748ff65dde606537042df5b8eae634e89bb419eb93439907e97963268
OBS-Studio-33.0.0-beta4-Windows-x64.zip: 0a6d97ed2fb4d4c4cd3669eeaf063365e89ce72b602dc101659fc135f047359e
OBS-Studio-33.0.0-beta4-macOS-Apple-dSYMs.tar.xz: 58c55f934334a51e49b26baa627da34ee60909fbc74dc1c10e8f2469b6156c92
OBS-Studio-33.0.0-beta4-macOS-Apple.dmg: ecaba68924c83e96a300ba58412da04f0f469f331f88c10e7a74c6117e6e41f3
OBS-Studio-33.0.0-beta4-macOS-Intel-dSYMs.tar.xz: cadfe8423ba34900543a68b8a394c74efce632395260386c85c3d0ba6fb969cb
OBS-Studio-33.0.0-beta4-macOS-Intel.dmg: 47461ba641b88375da22f1fd74f476277ca5156fbbf54e0536b5f0eae487e2d5

  •  

v0.20.0-rc.6

24 September 2026 om 04:45

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • docs: explain how to put marktext on PATH on every platform by @Jocs in #5459
  • fix(desktop): wrap long code-block lines when exporting to PDF (#5307) by @Jocs in #5460
  • fix(desktop): restore treePathExcludePatterns filtering in the sidebar tree by @Jocs in #5461
  • fix(desktop): require deliberate movement before a tab click becomes a drag (#4895) by @Jocs in #5464
  • fix(desktop): put the unsaved dot back on the left of the title bar path (#5467) by @Jocs in #5468
  • fix(muya): render SVG images that state no size of their own (#4991) by @Jocs in #5462
  • fix(muya): bound inline math by the text column, not by its own box (#5034) by @Jocs in #5466
  • fix(muya): give every mermaid render its own id (#5023) by @Jocs in #5465
  • fix(muya): show the text cursor over the whole editable column (#5477) by @Jocs in #5478
  • feat: support pandoc's backslash TeX math delimiters (#5446) by @Jocs in #5481
  • fix(desktop): theme the table of contents text and arrows (#5094) by @Jocs in #5486
  • fix(desktop): tell the two backslash math preferences apart in the UI (#5481) by @Jocs in #5485
  • feat(export): convert Markdown to arbitrary formats via Pandoc by @dimbc in #5379
  • fix(desktop): make source mode math highlighting follow the editor (#5483) by @Jocs in #5484
  • fix(desktop): reload an unedited tab silently when its file changes on disk (#3652) by @Jocs in #5479
  • fix(muya): keep footnote definitions packed one per line as siblings by @Jocs in #5487
  • fix(muya): resolve footnote references while escapes are still visible by @Jocs in #5491
  • fix(muya): give each repeated footnote reference its own id and backref by @Jocs in #5492
  • feat(i18n): add Russian (ru) localization by @blvcknwh1te in #5496
  • test(muya): stop the deepClone spec from overflowing the stack itself by @Jocs in #5505
  • fix(i18n): give Dutch users the Dutch editor UI, and hold the language registries together by @Jocs in #5502
  • fix(desktop): resolve local link paths without decoding the document folder (#4749) by @Jocs in #5506
  • test(desktop): repoint the technical-term checks at keys that exist by @Jocs in #5503
  • i18n: improve Russian localization wording by @NeroWolfe75 in #5507
  • feat(toc): highlight active heading based on cursor position by @rkristelijn in #4345
  • docs: update verify the download instructions by @slovanos in #5511
  • fix(desktop): keep the outline title in place, and make its word-wrap preference work by @Jocs in #5514
  • perf(muya): skip a code block re-render that produces identical DOM by @Jocs in #4876
  • fix(muya): re-render a code block when the grammar it renders with changes (#5515) by @Jocs in #5516
  • fix(desktop): stop clipboard image uploads clobbering each other and mangling paths by @Jocs in #5512
  • fix(desktop): retry a save whose rename an SMB share refused (#5322) by @Jocs in #5520
  • fix(desktop): find the uploader the user installed, wherever they installed it (#5518) by @Jocs in #5519
  • fix(desktop): find pandoc the same way the uploader finds picgo (#2751) by @Jocs in #5525
  • Type the .vue CodeMirror/spell-checker handles and forbid any in .vue (#4257) by @Jocs in #5521
  • Type the editor handle as Muya, from the engine's own declarations (#4257) by @Jocs in #5533
  • Drop the legacy muya ambient bridge and its aliases (#4257) by @Jocs in #5526
  • fix(muya): select the clicked line ourselves on a triple-click (#5389) by @Jocs in #5524
  • fix(muya): take the image references from the live DOM after selecting (#5391) by @Jocs in #5534
  • fix(muya): keep an image resize released outside the window (#5393) by @Jocs in #5537
  • fix(muya): size an image from where its resize handle was grabbed (#5392) by @Jocs in #5535
  • fix(muya): cut a cross-block selection from beforeinput too (#5415) by @Jocs in #5536
  • fix: keep the export render container out of the page layout (#5541) by @Jocs in #5542
  • fix(muya): keep a wide equation from scrolling under its own tag (#4339) by @Jocs in #5540

New Contributors

Full Changelog: v0.20.0-rc.5...v0.20.0-rc.6

  •  

v0.20.0-rc.5

19 September 2026 om 18:09

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • fix(desktop): load the e2e Playwright config by moving it to the package root by @Fr4ncis in #5435
  • fix(muya): ignore a table tool click once its table left the document (#5442) by @Jocs in #5443
  • docs: add StarDesk as a special sponsor by @Jocs in #5444
  • fix(tests): Windows paths + CI + timeout fix by @dzid26 in #5323
  • ci: check every text file out as LF so the Windows test leg sees the same bytes by @Jocs in #5447
  • ci: bound the unit-test job at ten minutes by @Jocs in #5448
  • fix(desktop): keep title bar path segments in order under the Bidi algorithm by @dronov-dmitry in #5317
  • fix(muya): apply pandoc's tex_math_dollars constraints to $…$ (#5446) by @Jocs in #5449
  • feat: add the texMathDollars preference, replacing the math option (#5446) by @Jocs in #5450
  • feat: implement pandoc's tex_math_gfm, replacing the GitLab compatibility option (#5446) by @Jocs in #5457
  • feat: show selected text word count by @Renakoni in #4457

New Contributors

Full Changelog: v0.20.0-rc.4...v0.20.0-rc.5

  •  

v0.20.0-rc.4

17 September 2026 om 10:24

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • chore(desktop): disable the Report button in the error dialog by @Jocs in #5359
  • fix(muya): run paragraph commands on the whole table or code block (#4944) by @Jocs in #5358
  • fix(muya): don't drop blocks when a cut ends inside a code block (#4903, #5148) by @Jocs in #5357
  • feat: add source line number toggle by @masalha-alaa in #5111
  • fix(muya): change the heading level of the caret's paragraph, not its list (#5360) by @Jocs in #5361
  • fix(muya): keep a setext heading's level when promoting or demoting it (#5362) by @Jocs in #5363
  • fix(muya): keep every line when a multi-line block becomes a heading (#5366) by @Jocs in #5367
  • fix(muya): collapse only the nested code block when a cut starts in its language line (#5368) by @Jocs in #5370
  • fix(muya): keep the code block when a cut ends in its language line (#5371) by @Jocs in #5372
  • fix(muya): remove the selected rest of a list or quote when a cut starts in it (#5385) by @Jocs in #5397
  • feat(muya): support same-line display math by @Renakoni in #4935
  • fix(muya): start an image resize only from the resize bar's own handles (#5116) by @Jocs in #5382
  • fix(muya): don't crash or replace another block when picking a table size after undo (#5355) by @Jocs in #5384
  • fix(desktop): launch normally when NODE_ENV=development is set (#5053) by @Jocs in #5374
  • fix(desktop): open files from a second instance started with --user-data-dir (#3020) by @Jocs in #5375
  • fix(desktop): keep debug mode out of release builds (#5407) by @Jocs in #5410
  • fix(desktop): read locale files from the app's resources (#5408) by @Jocs in #5411
  • fix(muya): keep the document intact when a cut ends in a table (#5400, #5405, #5399, #5398) by @Jocs in #5406
  • fix(muya): cancel Backspace that turns a setext heading into a paragraph (#5035) by @Jocs in #5381
  • fix(muya): keep a dollar sign in a regex replace capture by @Dev-next-gen in #5404
  • fix(muya): regexp replace groups β€” per-match Replace All, unmatched groups, two-digit $nn by @Jocs in #5420
  • fix(muya): keep an inline raw HTML tag's id intact by @Dev-next-gen in #5416
  • fix(muya): re-read the block type after a Backspace on a syntax marker (#5388) by @Jocs in #5421
  • fix(muya): keep blocks after a paragraph merged into a table cell out of the row (#5386) by @Jocs in #5422
  • fix(muya): keep the rest of a blockquote quoted on forward-Delete merge (#5423) by @Jocs in #5424
  • fix(muya): escape braces in a plain-text find query by @Dev-next-gen in #5428
  • fix(desktop): open Quick Open when files are open without a folder by @Dev-next-gen in #5431
  • fix(muya): select the document when Select All's cached caret block was removed by undo (#5387) by @Jocs in #5425

New Contributors

Full Changelog: v0.20.0-rc.3...v0.20.0-rc.4

  •  

v0.20.0-rc.3

15 September 2026 om 03:02

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • fix(muya): make a code block a diagram when its language is a diagram language (#5060) by @Jocs in #5304
  • docs: fix the macOS alias path in the CLI docs by @Jocs in #5308
  • chore: run only eslint --fix on staged desktop TS/Vue files by @Jocs in #5318
  • fix(desktop): ignore line-ending menu updates for a closed window (#4923) by @Jocs in #5319
  • fix: #4926 prevent emoji deletion from splitting surrogate pairs by @Renakoni in #4931
  • fix(desktop): keep exported links working from folders named with #, ? or % by @Dev-next-gen in #5320
  • fix(desktop): explain the max width format in preferences (#5331) by @Jocs in #5334
  • fix(muya): delete emoji whole in code blocks and drop the caret-inside-cluster handler (#4926) by @Jocs in #5332
  • fix(desktop): keep exported images working from folders named with #, ? or % (#5335) by @Jocs in #5337
  • fix(muya): regex search freezes on zero-width patterns and splits emoji by @Jocs in #5333
  • fix(desktop): keep the share host in exported links from UNC documents (#5336) by @Jocs in #5338
  • fix: #4899 keep trailing content out of the child list when outdenting a list item by @doktorigi in #4913
  • fix(muya): keep the link popover open when moving between links (#5313) by @anandghegde in #5324
  • fix: reuse image on case-insensitive path match (#3119) by @dzid26 in #5326
  • fix(desktop): name copied images after their content, not their path (#5344) by @Jocs in #5346
  • fix(muya): only outdent a paragraph that sits in a nested list item (#5342) by @Jocs in #5345
  • fix(muya): split the list when outdenting a task item into a plain list (#5341) by @Jocs in #5348
  • fix(muya): edit a footnote definition as its own container (#5340, #5343) by @Jocs in #5347
  • fix(muya): keep a Tab-indented list item out of a sublist of the other kind (#5349) by @Jocs in #5354
  • fix(muya): preserve ordered list source markers by @Renakoni in #4776

New Contributors

Full Changelog: v0.20.0-rc.2...v0.20.0-rc.3

  •  

v0.20.0-rc.2

11 September 2026 om 04:31

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • fix: preserve Google Docs CSS formatting on paste by @Renakoni in #4699
  • fix(desktop): preserve RTL text direction in PDF and print export by @Jocs in #4874
  • docs: update sponsor logo by @Jocs in #5014
  • docs: remove sponsor ukey by @Jocs in #5217
  • fix: preserve viewport when toggling task-list checkbox by @Awaker-OTE in #5189
  • fix(desktop): allow saving directly to a drive root (#5150) by @Panisnbb in #5188
  • docs: fix grammar issues in FAQ.md by @woltary02-creator in #5089
  • fix(ui): sync quick insert highlight with input method by @KDOJP in #5176
  • feat(i18n): add Dutch locale + validation tests + fix existing issues by @rkristelijn in #5137
  • Japanese translation update by @coolvitto in #5049
  • fix: allow copy-paste in same folder with auto-rename by @rkristelijn in #5139
  • chore: add pre-commit hooks (husky + lint-staged) by @rkristelijn in #4999
  • fix(muya): escape HTML in image attribute values (CWE-79) by @andesyteoss in #4980
  • fix: #5001 persist pasted bitmap images to the assets folder per preferences by @Panisnbb in #5168
  • fix(muya): preserve cursor on IME composition backspace(#4956) by @Zengzzhao in #4957
  • fix(muya): size table columns to their content by @Renakoni in #4952
  • fix: handle UNC image paths and watchers by @Renakoni in #4778
  • fix(desktop): ignore revoked output pipe errors on macOS by @Awaker-OTE in #5229
  • feat(desktop): add "Reset Zoom" item to the Window menu by @xrgzs in #5185
  • fix: #3469 decode Windows clipboard file paths as UTF-16LE by @Panisnbb in #5167
  • fix(desktop): prevent CodeMirror line tree corruption by @Renakoni in #4930
  • fix(i18n): add the missing Dutch resetZoom label by @githello1 in #5245
  • feat(macOS): add Dictionary lookup for selected editor text by @nikkogibler in #4814
  • fix: #4890 use file extension for side bar icons by @doktorigi in #4910
  • fix(muya): #4747 deep clone editor state without recursing by @CookPiu in #5259
  • fix: init image size when render html tag image by @Jocs in #5264
  • fix: render rect selection in table by @Jocs in #5265
  • fix: the missing locale key by @Jocs in #5266
  • fix: #5152 align TOC navigation with editor viewport by @foo-hao in #5153
  • fix: #5130 keep Electron locale resources for all supported UI languages by @legsing in #5132
  • fix: #5129 detect system language on first start by @legsing in #5131
  • fix: skip website preview deploy on fork PRs by @Jocs in #5278
  • feat: add 'Treat soft newlines as spaces' preference (#1849) by @wmoss in #4937
  • fix(muya): keep IME input intact after a soft line break by @Jocs in #5281
  • fix(muya): stop the quick-insert hint claiming a line of its own by @Jocs in #5283
  • fix(muya): give a code block's trailing empty line a line box by @Jocs in #5286
  • fix(muya): keep footnote reference ids intact for special identifiers (#5208) by @Jocs in #5285
  • fix(muya): skip search matches whose block left the document (#5163, #5215) by @Jocs in #5287
  • fix(muya): keep the image resize bar from crashing after its image is removed (#5216) by @Jocs in #5288
  • fix(muya): ignore a quick-insert pick once its paragraph is gone (#5213) by @Jocs in #5289
  • fix(muya): drop an image selection whose block left the document (#5055) by @Jocs in #5291
  • fix(muya): number empty lines in code blocks (#5294) by @Jocs in #5295
  • fix(muya): don't restore a drag selection onto removed blocks (#4981, #5256) by @Jocs in #5290
  • fix(muya): end the paragraph on a Shift+Enter that would leave an empty line by @Jocs in #5300
  • fix: make anchor links reach CJK headings and headings in other documents (#5292) by @Jocs in #5298
  • fix(desktop): flush pending edits before entering source code mode by @richbodo in #5103
  • fix(muya): load relative images from folders named with #, ? or % (#5302) by @Jocs in #5301
  • test(desktop): wait for TOC scrolls to settle in the toc-scroll e2e by @Jocs in #5303

New Contributors

Full Changelog: v0.20.0-rc.1...v0.20.0-rc.2

  •  

v0.20.0-rc.1

5 Juli 2026 om 07:55

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • fix(desktop): resolve Homebrew/standard bin dirs for GUI launches by @Jocs in #4796
  • fix(muya): show and slug TOC headings by rendered plain text (#3516) by @Jocs in #4811
  • Add UKey Wallet sponsor to README and website by @Jocs in #4819
  • fix(desktop): apply editor max-width preference to @muyajs/core content column (#4828) by @Jocs in #4830
  • Add Bengali README and links by @FahimFBA in #4823
  • fix(muya): skip identity operations during deferred flush by @tech-hoon in #4815
  • fix(muya): harden History against identity (null) json-change ops by @Jocs in #4838
  • fix(muya): stop inline math showing a scrollbar for trailing sub/superscripts (#4837) by @Jocs in #4839
  • fix(muya): isolate mermaid render failures during export (#4812) by @Jocs in #4840
  • fix(desktop): correct English typos in locale and preference schema (#4787) by @Jocs in #4845
  • fix(muya): stop double percent-encoding autolink hrefs by @Jocs in #4841
  • fix(muya): keep pasted list items in order when merging mid-list by @Jocs in #4842
  • fix(desktop): confirm before opening executable link targets (code execution) by @Jocs in #4843
  • fix(muya): keep soft line breaks when exporting to HTML/PDF by @Jocs in #4844
  • fix(muya): show escaped pipe in table cell code as | not | (#4849) by @Jocs in #4850
  • fix(muya): preserve fenced code block info string on round-trip (#4770) by @Jocs in #4846
  • fix(muya): load Prism component dependencies in order (fixes flaky c++ load) by @Jocs in #4861
  • refactor(muya): treat the code fence info string as the source of truth (CommonMark) by @Jocs in #4856
  • fix(muya): call h1-h6 "headings" not "headers" in the insert menu by @Jocs in #4854
  • fix(desktop): don't crash on unwatchable image directories (UNC/WSL paths) by @Jocs in #4853
  • fix(desktop): save files atomically to prevent data loss on crash by @Jocs in #4852
  • fix(desktop): make crash-recovery buffer writes durable against power loss by @Jocs in #4864
  • fix(muya): render extensionless remote images served with a charset (shields.io badges) by @Jocs in #4857
  • fix(muya): follow the link when modifier-clicking a linked image by @Jocs in #4858
  • fix(muya): follow the link on Ctrl/Cmd-click for reference-linked and raw-HTML linked images (#4865) by @Jocs in #4866
  • fix(desktop): keep TOC collapse state across tab switches by @Jocs in #4860
  • fix(desktop): flush pending edits before saving (dropped last keystroke) by @Jocs in #4859

New Contributors

Full Changelog: v0.20.0-beta.5...v0.20.0-rc.1

  •  

v0.20.0-beta.5

2 Juli 2026 om 16:54

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • fix(muya): scroll wide math blocks instead of clipping by @Jocs in #4751
  • fix(desktop): route undo/redo to CodeMirror in source code mode by @Jocs in #4752
  • fix(muya): leave Tab to the IME during composition by @Jocs in #4753
  • fix(desktop): add a context menu to the sidebar root folder by @Jocs in #4754
  • fix(muya): preserve code fence length on serialize by @Jocs in #4755
  • fix(muya): refresh math/diagram preview on undo by @Jocs in #4756
  • fix(desktop): resolve relative local links on export by @Jocs in #4757
  • fix(muya): require a word boundary before an emoji shortcode by @Jocs in #4758
  • fix(desktop): don't overwrite an existing file when creating from the sidebar by @Jocs in #4759
  • fix(desktop): ignore content-identical file-change events by @Jocs in #4760
  • fix(desktop): make the source-mode selection visible on dark themes by @Jocs in #4771
  • fix(desktop): persist export dialog options across sessions by @Jocs in #4768
  • fix(muya): convert $$ to a math block in place inside a list item by @Jocs in #4767
  • fix(muya): self-close generated tags for JSX/MDX compatibility by @Jocs in #4766
  • fix(muya): preserve current-line indent on Enter in code fences by @Jocs in #4761
  • fix(muya): make autolinks and bare URLs followable on Cmd/Ctrl-click by @Jocs in #4763
  • fix(muya): exclude selection whitespace when applying inline format by @Jocs in #4762
  • fix(desktop): make empty-state CTA button labels readable in all themes by @Jocs in #4775
  • fix(muya): surface the KaTeX parse error for invalid math by @Jocs in #4764
  • fix(desktop): keep sidebar width + tree collapse state across icon toggle by @Jocs in #4769
  • fix(muya): recognize c++/h++ as aliases for the cpp code grammar by @Jocs in #4794
  • fix(muya): don't highlight LaTeX \% as a comment by @Jocs in #4795
  • fix(muya): recolor sequence-diagram text/boxes for dark themes by @Jocs in #4800
  • fix(muya): keep image resize handles attached on layout reflow by @Jocs in #4802
  • fix(muya): make cpp c++/h++ alias registration idempotent by @Jocs in #4816
  • fix(desktop): preserve TOC collapse state across content edits by @Jocs in #4803
  • fix(desktop): make Paragraph/Format commands inert in source mode (grey out menus) by @Jocs in #4810
  • fix(desktop): New File on a collapsed sidebar folder expands it by @Jocs in #4809
  • fix(desktop): select the query when re-opening the Find bar by @Jocs in #4807
  • fix(desktop): keep diagram content when exporting with Header & Footer by @Jocs in #4805
  • fix(desktop): list bundled fonts in the font picker by @Jocs in #4801
  • fix(desktop): remove doubled Edit-menu separator on Windows/Linux by @Jocs in #4797
  • fix(desktop): generate a PDF outline from headings on export by @Jocs in #4798
  • fix(desktop): avoid PDF/print page breaks right after a heading by @Jocs in #4799

Full Changelog: v0.20.0-beta.4...v0.20.0-beta.5

  •  

v0.20.0-beta.4

26 Juni 2026 om 19:04

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • fix(renderer): keep the key bindings hover row readable on dark themes by @FurkaanBoraa in #4719
  • fix(renderer): make the custom dictionary table readable on dark themes by @FurkaanBoraa in #4721
  • feat(muya): self-contained editor typography via --mu-* options by @Jocs in #4722
  • refactor(desktop): consume muya self-contained typography, remove shell style injection by @Jocs in #4726
  • fix(muya): move preview toolbar to the block's top-right by @Jocs in #4734
  • fix(renderer): hide muya float tools in source-code mode by @Jocs in #4732
  • fix(desktop): remove duplicate title when using the native title bar by @Jocs in #4630
  • fix(muya): keep a nested sublist when forward-deleting an empty list item (#1845) by @Jocs in #4725
  • fix(muya): remove the inner format when un-toggling a nested inline run (#2063) by @Jocs in #4727
  • docs: add commenting guidelines by @Jocs in #4738
  • fix(muya): escape parentheses in inserted image paths (#3060) by @Jocs in #4728
  • fix(muya): decode HTML entities in fetched page titles when pasting a URL (#2525) by @Jocs in #4729
  • fix(muya): reset search state when the document is replaced (#1932) by @Jocs in #4730
  • fix(muya): split on Enter over a cross-block selection (#2443) by @Jocs in #4735
  • fix(muya): let Enter replace a selection when the format toolbar is shown (#3196) by @Jocs in #4736
  • fix(muya): stop punctuation after a link wrapping to its own line (#2258, #3025) by @Jocs in #4737
  • chore: audit Claude-authored comments against the commenting guidelines by @Jocs in #4740
  • fix: normalize HTML task-list paste by @Renakoni in #4710
  • fix: preserve bare URL HTML links on paste by @Renakoni in #4711
  • fix: preserve whitespace-only plain text paste by @Renakoni in #4706
  • fix: preserve nested HTML lists under ordered parents by @Renakoni in #4709
  • fix: prevent nested empty list items from becoming setext headings by @Renakoni in #4697
  • fix: preserve empty task list items when parsing markdown by @Renakoni in #4696
  • fix: remove ~1s sidebar delay for newly created files (#3955) by @Jocs in #4744
  • fix(i18n): degrade malformed translations to raw text instead of crashing (#4046) by @Jocs in #4745
  • fix: vertically center task list checkbox with item text by @Jocs in #4750
  • fix(desktop): prefer UTF-8 when a file is valid UTF-8 instead of trusting ced (#3151) by @Jocs in #4739
  • fix(desktop): scroll the view up when the caret moves above the viewport (#3329) by @Jocs in #4742
  • fix: scroll the active tab into view on tab switch (#3958) by @Jocs in #4743

Full Changelog: v0.20.0-beta.3...v0.20.0-beta.4

  •  

v0.20.0-beta.3

25 Juni 2026 om 17:19

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • fix(desktop): restore vue-tsc typecheck (vite 7 PluginOption) by @Jocs in #4667
  • fix(release): support immutable releases (draft-then-promote) + docs by @Jocs in #4666
  • fix(muya): undo/redo corruption on coalesced paragraphβ†’list + text edits by @Jocs in #4669
  • fix(renderer): keep find-bar prefill from being clobbered on open by @NSO73 in #4646
  • fix(muya): preserve nested-list indentation in RTL mode by @Jocs in #4676
  • fix(muya): load mhchem onto the same katex instance so \ce renders (#4670) by @Jocs in #4674
  • fix(muya): keep inline links that are followed by a bare URL or text (#4671) by @Jocs in #4672
  • fix(keybinding): sync menu bar and command palette when keybindings change by @Jocs in #4681
  • fix(muya): guard detached code block in language selector (#4654) by @Jocs in #4677
  • test(e2e): stabilize flaky search-prefill test (wait for selection commit) by @Jocs in #4682
  • fix: export PDF/HTML/print in the editor's text direction (RTL) by @Jocs in #4678
  • fix(muya): create a code-block when typing ``` + Enter inside block-quotes and lists by @Jocs in #4689
  • fix(muya): prevent undo/redo exceptions from permanently disabling history (#4685) by @Jocs in #4692
  • fix(muya): auto-hide inline markers when holding an arrow key out of a token by @Jocs in #4694
  • test(e2e): replace fixed waits with expect.poll in editor-input by @NSO73 in #4695
  • fix: normalize first-row colspan table paste by @Renakoni in #4707
  • fix(renderer): use the theme text colour for the key bindings list (#3937) by @FurkaanBoraa in #4713
  • fix: wrap selected text when typing auto-pair characters by @Renakoni in #4698
  • fix(muya): skip empty sibling containers in caret navigation (#4644 follow-up) by @FurkaanBoraa in #4715
  • fix(muya): stop the paragraph front-menu from acting on a stale block (#4686) by @Jocs in #4714
  • fix(muya): re-sync the live tree from json state when an undo/redo apply throws by @Jocs in #4717
  • fix(desktop): paint the launch window in the active theme's background (#3957) by @FurkaanBoraa in #4718

New Contributors

Full Changelog: v0.20.0-beta.2...v0.20.0-beta.3

  •  

v0.20.0-beta.2

23 Juni 2026 om 17:57

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • chore(release): v0.19.0 release branch (DO NOT MERGE until stable) by @Jocs in #4269
  • chore: bump develop to 0.20.0-dev by @Jocs in #4296
  • docs(release): update Step 7 asset list to 24 by @Jocs in #4298
  • docs(end-user): align user docs with 0.19 prefs and platform matrix by @Jocs in #4300
  • docs(dev): sync developer docs with current codebase by @Jocs in #4299
  • chore: convert repo to pnpm monorepo (packages/desktop, muyajs, website) by @Jocs in #4302
  • refactor(website): migrate to Next.js 15 + Cloudflare Workers CI by @Jocs in #4305
  • feat(website): serve www.marktext.me (301 β†’ apex) by @Jocs in #4308
  • fix(website): wwwβ†’apex redirect (middleware) + smarter preview-URL parsing by @Jocs in #4309
  • ci(website): enable Preview URLs on marktext-website Worker by @Jocs in #4311
  • refactor(website): redesign landing page, drop markdown engine deps by @Jocs in #4312
  • feat(muya): migrate TS rewrite to packages/muya alongside legacy muyajs by @Jocs in #4314
  • feat(website): add /docs route and consolidate docs/ under packages/website/ by @Jocs in #4316
  • fix: replace remaining absolute raw.githubusercontent.com URLs with relative paths in READMEs by @Jocs with @Copilot in #4329
  • fix(website): serve prerendered docs pages via static-assets cache by @Jocs in #4335
  • fix(website): open download buttons in new tab pointing to releases page by @Jocs in #4336
  • refactor(website): simplify docs subtree (palette / sidebar / markdown / nav) by @Jocs in #4349
  • refactor(website): simplify landing page (helpers, types, data-driven blocks) by @Jocs in #4350
  • chore(website): tighten middleware matcher; drop unused 'use client' by @Jocs in #4351
  • fix(muyajs): preserve nested lists of differing types (#4341) by @Jocs in #4354
  • fix(muyajs): allow CJK ideographs as flanking boundary for emphasis by @Jocs in #4355
  • fix(muyajs): clamp setStart offset to legal range to prevent IndexSizeError (#2800) by @Jocs in #4358
  • fix(muyajs): null-guard list block paths to prevent renderer crash (#4346) by @Jocs in #4359
  • fix: restore local builds after monorepo split by @Jocs in #4361
  • fix(release): add repository field for electron-builder by @Jocs in #4368
  • fix(muyajs): split correct paragraph on Enter in multi-block list items (#4374) by @Jocs in #4376
  • fix(renderer): improve graphite contrast and unify accent colors (#4377) by @Jocs in #4378
  • feat(muya): expose desktop-required public API accessors by @Jocs in #4381
  • feat(muya): expose themeable CSS variables and diagram theming by @Jocs in #4382
  • feat(muya): add block duplicate/insert/delete public API by @Jocs in #4384
  • feat(muya): restore flowchart and sequence diagrams by @Jocs in #4385
  • feat(muya): add ImagePathPicker floating autocomplete UI by @Jocs in #4386
  • fix(muya): unbreak lint:css (stylelint 17 compatibility) by @Jocs in #4388
  • feat(muya): add cursorCoords + active formats to selection-change by @Jocs in #4387
  • feat(muya): implement focus mode (dim inactive blocks) by @Jocs in #4389
  • feat(muya): emit format-click and preview-image interaction events by @Jocs in #4390
  • feat(muya): add updateParagraph block-type conversion API by @Jocs in #4391
  • feat(muya): add runtime setOptions / setFont / setTabSize / setListIndentation by @Jocs in #4393
  • feat(muya): add spellcheck word-replacement API by @Jocs in #4392
  • feat(muya): serialize/restore undo history by @Jocs in #4394
  • feat(muya): add invalidateImageCache by @Jocs in #4396
  • test(muya): port MarkText regression cases (#4341/#4307/#4190) by @Jocs in #4399
  • feat(muya): add createTable / insertImage / setCursor API by @Jocs in #4397
  • feat(muya): add clipboardFilePath paste hook by @Jocs in #4398
  • fix(muya): treat CJK as punctuation for strong/em flanking (#4307) by @Jocs in #4401
  • feat(desktop): consume @muyajs/core in util files (markdownToHtml/pdf/dompurify/printService/sourceCode/icon) by @Jocs in #4402
  • feat(desktop): add kebab-case editor CSS vars to themes for @muyajs/core by @Jocs in #4404
  • feat(desktop): migrate editor.vue to @muyajs/core engine by @Jocs in #4406
  • fix(i18n): unify quick-insert hint to "/" trigger by @Jocs in #4405
  • test(parity): failing-test scoreboard for #4406 muyajsβ†’@muyajs/core gaps by @Jocs in #4407
  • fix(muya): insertParagraph immediate-block anchoring in nested blocks (PG13) by @Jocs in #4408
  • fix(muya): consume autoCheck + hideLinkPopup options (PG3/PG12) by @Jocs in #4409
  • feat(muya): expose block affiliation in selection-change (PG1) by @Jocs in #4410
  • feat(muya): restore clipboard image paste + imageAction routing + copyAsRich (PG5/PG6/PG9) by @Jocs in #4411
  • fix(muya): inline export CSS + heading ids for offline export & TOC anchors (PG7/PG8) by @Jocs in #4412
  • feat(muya): emit preview-image + heading-copy-link events (PG10/PG11) by @Jocs in #4414
  • feat(muya): restore drag-and-drop image insertion (PG4) by @Jocs in #4413
  • feat(desktop): wire @muyajs/core parity APIs (menu state, copyAsRich, heading-link, source cursor, saved indicator) by @Jocs in #4415
  • fix(desktop): pass imageAction + getPathForFile to Muya constructor (re-activate PG4/5/6) by @Jocs in #4417
  • fix(muya): resolve pre-existing lint:css no-descending-specificity by @Jocs in #4419
  • fix(muya): record source-mode bulk edit as a single undo boundary (PG14) by @Jocs in #4420
  • test(desktop): remove redundant muyajs-engine unit specs (Phase F) by @Jocs in #4422
  • fix(desktop): retarget theme.ts editor CSS at muya mu-* classes (E4) by @Jocs in #4421
  • fix(desktop): port print image-src resolution off muyajs (last muya/lib import) by @Jocs in #4423
  • fix(muya): crash typing '#' β€” guard I18n.t + add heading-copy-link locale key by @Jocs in #4424
  • fix(muya): add missing image i18n keys ('Click to add an image' / 'Load image failed') by @Jocs in #4427
  • fix(muya): render relative image paths anchored to the document dir (Phase G blocker) by @Jocs in #4428
  • fix(desktop): Editβ–ΈReplace action + saved-indicator false-clean (Phase G) by @Jocs in #4431
  • fix(muya): preserve drive/UNC roots in relative image path resolution (#4428 review follow-up) by @Jocs in #4430
  • fix: source-mode cursor sync + language-switch hint refresh (Phase G G7/G8) by @Jocs in #4432
  • fix(muya): updateParagraph data-loss on list/quote + front-matter insertion + frontmatterType lang (Phase G) by @Jocs in #4429
  • test: cover @muyajs/core migration regression gaps (Phase G) by @Jocs in #4434
  • fix(muya): restore cross-cell table selection + resolve dead TableChessboard picker (Phase G) by @Jocs in #4435
  • test(muya): de-flake heading-locale + backspace regression specs (#4434 review) by @Jocs in #4436
  • fix(muya): restore the in-editor table grid picker (revert #4435 chessboard deletion + wire trigger) by @Jocs in #4437
  • docs: archive the muyajs β†’ @muyajs/core migration tracker by @Jocs in #4438
  • chore: keep .claude/ fully ignored (untrack migration tracker) by @Jocs in #4439
  • fix: restore editor visual parity after @muyajs/core migration by @Jocs in #4443
  • fix(muya): align Cmd+A / copy / cut / paste with legacy muyajs by @Jocs in #4446
  • chore(muya): align packages/muya conventions with desktop + doc cleanup by @Jocs in #4450
  • fix(muya): editor parity with muyajs (themes, fonts, spellcheck) + CLASS_NAMES cleanup by @Jocs in #4454
  • refactor(muya): split clipboard into modules + type copy/paste modes as enums by @Jocs in #4459
  • fix(muya): enable inline image resize by @Jocs in #4460
  • refactor(muya): rebuild ImageEditTool to match muyajs ImageSelector by @Jocs in #4461
  • chore: remove ununsed comments by @Jocs in #4462
  • chore(muya): remove redundant comments added during the muyajs port by @Jocs in #4463
  • refactor(muya): unify Selection into facade over Text/Table/Image sub-selections by @Jocs in #4467
  • fix(muya): match muyajs nested list spacing and bullet markers by @Jocs in #4469
  • fix(editor): restore caret on source-mode undo and tab switch by @Jocs in #4470
  • fix(muya): preventDefault on forward-delete paragraph merge by @Jocs in #4471
  • fix(muya): restore Paste as Plain Text via async clipboard read by @Jocs in #4472
  • fix(muya): stop drag-selection from expanding to whole blocks by @Jocs in #4477
  • fix(muya): delete whole image on backspace (inline, raw html, reference) by @Jocs in #4478
  • fix(muya): stop Shift+Tab unindent from crashing on insertTab by @Jocs in #4479
  • fix(muya): stop arrow nav from crashing on null cursor coords by @Jocs in #4480
  • fix(muya): clear the / trigger when quick-inserting front matter by @Jocs in #4481
  • fix(desktop): make Promote Heading shortcut fire on macOS by @Jocs in #4482
  • fix(desktop): refresh muya locale on language switch (hint + quick-insert menu stay translated) by @Jocs in #4489
  • fix(desktop): anchor theme card h3 label to its heading by @Jocs in #4490
  • fix(muya): stop in-flight float positioning from re-revealing a hidden float by @Jocs in #4491
  • fix(desktop): return relative image path for local-path-string inserts by @Jocs in #4492
  • fix: insert web images dragged from a browser by @Jocs in #4494
  • fix(muya): support resizing images that share the same link by @Jocs in #4495
  • fix(muya): render vega-lite diagrams under the renderer CSP by @Jocs in #4496
  • fix(muya): refresh local images on "Reload images" (View β†’ Reload images) by @Jocs in #4498
  • fix: reflect the current block in the Paragraph menu (PG1) by @Jocs in #4500
  • fix(muya): keep selection after applying an inline format to a range by @Jocs in #4501
  • fix(desktop): reflect underline/superscript/subscript/highlight in the Format menu by @Jocs in #4503
  • fix: paragraph menu / command palette parity (focus, list unwrap, shortcut symbols) by @Jocs in #4504
  • fix(muya): keep cursor in place when toggling Loose List Item by @Jocs in #4506
  • refactor(muya): rework the selection type surface by @Jocs in #4512
  • fix(desktop): point in-app docs links at marktext.me by @Jocs in #4513
  • fix(website): point self-referential doc links at the published docs by @Jocs in #4514
  • fix(website): register the missing end-user docs pages by @Jocs in #4515
  • feat(i18n): add Turkish (tr) locale by @FurkaanBoraa in #4510
  • feat: make PlantUML server URL configurable by @jyte in #4400
  • fix: #4474 unsaved indicator never clears after undoing back to on-disk content by @FurkaanBoraa in #4475
  • fix(test): correct PlantUML custom-server URL assertion by @Jocs in #4517
  • fix(i18n): reconcile desktop & muya locale keys after the muya engine refactor by @Jocs in #4516
  • test(muya): backfill engine-unit coverage for audited gaps by @Jocs in #4508
  • test(muya-e2e): backfill real-DOM e2e coverage for audited gaps by @Jocs in #4511
  • test(desktop): backfill renderer/main unit coverage for audited gaps by @Jocs in #4509
  • refactor(muya): return enums from TextSelection direction/type by @Jocs in #4519
  • refactor(muya): setSelection takes anchor/focus endpoints by @Jocs in #4523
  • refactor(muya): route format/codeblock selection through setCursor by @Jocs in #4520
  • refactor(muya): split ICursor into focused interfaces by @Jocs in #4524
  • refactor(muya): keep table rect selection exclusive of text selection by @Jocs in #4522
  • refactor(muya): extract computeDirection/computeCaretType helpers by @Jocs in #4525
  • refactor(muya): simplify selectAll into three escalation rules by @Jocs in #4526
  • test(muya): replace any with precise block/state types in specs by @Jocs in #4528
  • refactor(desktop): remove no-explicit-any suppressions in favor of precise types by @Jocs in #4527
  • refactor(muya): drop cyclomatic complexity below 20 across the engine by @Jocs in #4529
  • refactor(muya): rename selection enum members to UPPER_SNAKE_CASE by @Jocs in #4531
  • chore: translate remaining Chinese console/debug strings to English by @Jocs in #4533
  • refactor(muya): enforce _ prefix for private members via lint by @Jocs in #4535
  • refactor(muya): mark core/state/selection internals private by @Jocs in #4541
  • refactor(muya): mark block-tree internals private/protected by @Jocs in #4538
  • refactor(muya): mark UI float-tool internals private by @Jocs in #4539
  • refactor(desktop): remove remaining no-explicit-any suppressions by @Jocs in #4548
  • feat: align Paragraph/Format menus with muyajs behavior on @muyajs/core (+3 upgrades) by @Jocs in #4547
  • fix(muya): sync inline format toolbar highlight via selection-change by @Jocs in #4558
  • fix(muya): align normalizePastedHTML link unlinking with muyajs by @Jocs in #4550
  • fix(muya): render footnotes in copy-as-html / copy-as-rich clipboard HTML by @Jocs in #4544
  • fix(muya): align clipboard cut/delete semantics with muyajs by @Jocs in #4540
  • fix(muya): collapse code block to paragraph on cross-block cut from its language line (#918) by @Jocs in #4545
  • fix(muya): merge pasted paragraphs/headings inline (muyajs parity) by @Jocs in #4542
  • fix(muya): replace selected image on paste + language-input paste parity by @Jocs in #4543
  • fix(muya): merge same-type list paste + plain-text block HTML (muyajs parity) by @Jocs in #4546
  • fix(muya): round-2 paste/clipboard parity fixes from a full muyajs re-audit by @Jocs in #4549
  • fix: populate the table of contents on open and fix link navigation by @NSO73 in #4448
  • fix(desktop): paste captured image on macOS Edit β†’ Screenshot by @Jocs in #4566
  • fix(muya): restore editor cursor when closing the search bar (selectHighlight) by @Jocs in #4567
  • fix(muya): restore find-bar prefill from editor selection by @Jocs in #4569
  • fix(search): scroll editor to match when opening a folder-search result by @Jocs in #4568
  • fix(muya): serialize lists with the configured listIndentation by @Jocs in #4570
  • fix(muya): restore the focused frontmatter delimiter markers by @Jocs in #4571
  • fix(muya): show code-block line numbers on first render for language-less blocks by @Jocs in #4572
  • fix(muya): re-parse on parse-affecting option changes so ```math toggles live by @Jocs in #4573
  • fix(export): repair five styled-HTML export regressions (math, vega, footnotes, TOC, images) by @Jocs in #4576
  • fix(export): make "Overwrite theme font" actually override the selected theme by @Jocs in #4579
  • fix(editor): restore per-tab caret on tab switch by @Jocs in #4580
  • fix(editor): restore undo after an external file reload by @Jocs in #4582
  • fix(desktop): auto-focus the editor when creating or opening a tab by @Jocs in #4581
  • fix(editor): align code block line numbers vertically by @Jocs in #4583
  • fix(editor): keep spelling suggestions when "no underline" is enabled by @Jocs in #4584
  • refactor(muya): decouple engine/block layers from src/ui plugin internals by @Jocs in #4587
  • fix(clipboard): copy only the selected part of cross-block selections by @Jocs in #4586
  • fix(muya): correct setext heading level when typing the underline by @Jocs in #4591
  • fix(muya): guard checkNeedRender against a null cursor (image-preview reclick crash) by @Jocs in #4588
  • test(desktop): backfill renderer/main unit coverage for post-migration gaps by @Jocs in #4592
  • test(muya-e2e): backfill real-DOM e2e coverage for post-migration gaps by @Jocs in #4593
  • test(muya): backfill engine unit coverage for post-migration gaps by @Jocs in #4589
  • test(desktop): backfill app e2e coverage for post-migration gaps by @Jocs in #4594
  • chore(security): remediate 25 Dependabot alerts by @Jocs in #4596
  • chore(deps): upgrade all packages to latest + align shared versions by @Jocs in #4597
  • test(muya): poll for the html_tag mount instead of waiting a single frame by @Jocs in #4607
  • fix(muya): escape pipes at cell start and consecutive pipes in table serialization by @Jocs in #4601
  • fix(muya): absorb a manually typed closing markdown marker after text by @Jocs in #4602
  • fix(muya): let Shift+ArrowUp/Down extend selection while the inline toolbar is shown by @Jocs in #4603
  • fix(muya): render
  • fix(muya): keep emphasis intact when a line contains escaped dollar signs by @Jocs in #4605
  • fix(muya): paste a URL into link parentheses without nesting a markdown link by @Jocs in #4608
  • fix(muya): make links inside a raw HTML block clickable by @Jocs in #4609
  • fix(muya): correct inline code/math shortcut labels in the format toolbar by @Jocs in #4611
  • fix: #4356 crash when using the link popover on a link with an unsupported protocol by @FurkaanBoraa in #4473
  • fix(muya): map Β  to U+00A0 and keep escaped spaces unbreakable by @Jocs in #4612
  • fix(desktop): scroll to non-heading in-document anchors on Ctrl/Cmd-click by @Jocs in #4613
  • fix(muya): keep the inline-math parse-error message on one line by @Jocs in #4614
  • fix(muya): allow inline style in the html-block live preview by @Jocs in #4618
  • fix(muya): cap and horizontally scroll the inline-math popup by @Jocs in #4615
  • fix(desktop): isolate the editor stacking context so previews stay under modals by @Jocs in #4617
  • test(desktop): fix inline code/math shortcut tests failing on develop after #4611 by @FurkaanBoraa in #4624
  • fix(desktop): scroll CodeMirror to the heading on TOC click in source mode by @Jocs in #4619
  • fix(muya): constrain a rendered diagram svg so wide diagrams don't clip by @Jocs in #4616
  • fix(desktop): apply custom keybinding changes without an app restart by @Jocs in #4621
  • fix(muya): break undo entries at word and edit-kind boundaries by @Jocs in #4622
  • fix(muya): swap cross-block arrow boundary keys in RTL mode by @Jocs in #4610
  • fix: opaque light-theme editor text colors for crisp antialiasing by @Jocs in #4631
  • fix(muya): clamp selection offset to the node's legal range by @Jocs in #4626
  • fix(desktop): prevent data loss when closing after Source Code mode edits by @Jocs in #4627
  • fix(muya): center inline math vertically so it sits on the text baseline by @Jocs in #4632
  • fix(muya): render inline math containing an escaped dollar sign by @Jocs in #4629
  • fix(muya): prevent renderer crash when deleting consecutive thematic breaks by @Jocs in #4628
  • test: drop the low-value opaque-color guard tests from #4466 by @Jocs in #4633
  • test(muya): regression guard for code-block scroll on typing (#3191) by @Jocs in #4638
  • fix(muya): align serialized table columns by visual width (#1983) by @Jocs in #4636
  • fix(muya): insert ordinary spaces for Tab instead of non-breaking spaces (#3273) by @Jocs in #4634
  • fix(muya): convert typed diagram fences to diagram blocks on Enter (#2177) by @Jocs in #4635
  • fix(muya): keep the caret on Shift+Tab list unindent (REPLACEMENT path) (#3223) by @Jocs in #4637
  • fix(muya): typed diagram fences create diagram blocks via the language selector (#2177) by @Jocs in #4640
  • refactor: rewrite getTOC and remove unused comments by @Jocs in #4642
  • fix(muya): allow trailing whitespace after a math block's closing $$ (#1931) by @Jocs in #4649
  • fix(muya): stop ArrowDown from endlessly creating empty paragraphs (#3520) by @Jocs in #4650
  • fix(muya): take the list marker from a line start in _convertToList (#2429) by @Jocs in #4651
  • fix(muya): strip trailing punctuation from extended autolinks (#2096) by @Jocs in #4652
  • fix(muya): ArrowUp at document start moves the caret to offset 0 (#3193) by @Jocs in #4655
  • fix(muya): destroy UI plugins on Muya.destroy() to stop leaking DOM nodes (#3315) by @Jocs in #4659
  • fix(muya): don't cut a cross-block selection on Ctrl+ (Windows/Linux) (#3491) by @Jocs in #4656
  • fix(muya): apply inline format across paragraphs nested in one blockquote (#3462) by @Jocs in #4661
  • fix: #4534 group theme menu into Light/Dark submenus by @FurkaanBoraa in #4623
  • fix(muya): drop pending op batch on setContent to prevent cross-document corruption (#2938) by @Jocs in #4658
  • test(desktop): pin autosave's recreate-missing-directory behavior (#3509) by @Jocs in #4657
  • fix(muya): keep list item non-empty on Enter in empty first paragraph (#4644) by @Jocs in #4660

New Contributors

Full Changelog: v0.19.0...v0.20.0-beta.2

  •  

v0.19.1

6 Juni 2026 om 07:05

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • chore(release): v0.19.0 release branch (DO NOT MERGE until stable) by @Jocs in #4269
  • chore: bump develop to 0.20.0-dev by @Jocs in #4296
  • docs(release): update Step 7 asset list to 24 by @Jocs in #4298
  • docs(end-user): align user docs with 0.19 prefs and platform matrix by @Jocs in #4300
  • docs(dev): sync developer docs with current codebase by @Jocs in #4299
  • chore: convert repo to pnpm monorepo (packages/desktop, muyajs, website) by @Jocs in #4302
  • refactor(website): migrate to Next.js 15 + Cloudflare Workers CI by @Jocs in #4305
  • feat(website): serve www.marktext.me (301 β†’ apex) by @Jocs in #4308
  • fix(website): wwwβ†’apex redirect (middleware) + smarter preview-URL parsing by @Jocs in #4309
  • ci(website): enable Preview URLs on marktext-website Worker by @Jocs in #4311
  • refactor(website): redesign landing page, drop markdown engine deps by @Jocs in #4312
  • feat(muya): migrate TS rewrite to packages/muya alongside legacy muyajs by @Jocs in #4314
  • feat(website): add /docs route and consolidate docs/ under packages/website/ by @Jocs in #4316
  • fix: replace remaining absolute raw.githubusercontent.com URLs with relative paths in READMEs by @Copilot in #4329
  • fix(website): serve prerendered docs pages via static-assets cache by @Jocs in #4335
  • fix(website): open download buttons in new tab pointing to releases page by @Jocs in #4336
  • refactor(website): simplify docs subtree (palette / sidebar / markdown / nav) by @Jocs in #4349
  • refactor(website): simplify landing page (helpers, types, data-driven blocks) by @Jocs in #4350
  • chore(website): tighten middleware matcher; drop unused 'use client' by @Jocs in #4351
  • fix(muyajs): preserve nested lists of differing types (#4341) by @Jocs in #4354
  • fix(muyajs): allow CJK ideographs as flanking boundary for emphasis by @Jocs in #4355
  • fix(muyajs): clamp setStart offset to legal range to prevent IndexSizeError (#2800) by @Jocs in #4358
  • fix(muyajs): null-guard list block paths to prevent renderer crash (#4346) by @Jocs in #4359
  • fix: restore local builds after monorepo split by @Jocs in #4361

New Contributors

  • @Copilot made their first contribution in #4329

Full Changelog: v0.19.0...v0.19.1

  •  

v0.19.0

28 Mei 2026 om 16:03

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • Ignore empty key bindings by @fxha in #3077
  • Update auto pair quote logic by @Lorilandly in #2960
  • Fix image paste handler is not executed by @fxha in #3076
  • Add experimental native support for Apple M1 by @fxha in #3089
  • Update dependencies by @fxha in #3096
  • Fix: "delete" shortcut on a selected image deletes the text after it (#2816) by @kiyoka in #3088
  • Fix links to macOS releases by @yous in #3099
  • Fix typo in the DataCenter class init method by @vdeschuy in #3104
  • 0.17.1 by @fxha in #3105
  • Fixed multi line highlight. by @or1ko in #3115
  • Don't copy (or on cut) empty data to the clipboard, matches native behavior by @mitchcapper in #3130
  • Upgrade Electron to v17 by @fxha in #3138
  • Remove Wayland workaround by @fxha in #3147
  • Refactor menu actions and shortcut handling by @fxha in #3032
  • Replace node-spellchecker with Electron builtin spell checker by @fxha in #2895
  • Remove expired "marktext.app" domain by @CouldBeThis in #3350
  • fix wrong logo path in ko.md by @heli-os in #3576
  • Update Traditional Chinese translation of README by @ChiahongHong in #3264
  • Update dependencies by @fxha in #3213
  • Add .mdx extension support by @davidknezic in #3438
  • FIX: 'yarn run test:specs' command fails to load @markedjs/html-differ (#3330) by @kiyoka in #3331
  • fix #3150: Win32 error in renderer process by @fxha in #3214
  • Fix roadmap link by @fulldecent in #3678
  • upgrade to mermaid 10 by @ivy-rew in #3734
  • [i18n] Improve portuguese translation on the README by @tiagozip in #3813
  • chore: update readme add Inkio and remove broken link by @Jocs in #4084
  • chore: Update outdated GitHub Actions versions by @pgoslatara in #4113
  • Add arabic lang for doc by @Almohawis in #4097
  • chore: update readme file by @Jocs in #4136
  • docs: improve grammar & punctuation by @RightWrite in #3939
  • add .claude .agents to gitignore by @chongchonghe in #4172
  • Note added according to the issue #2208 by @aespondac in #3867
  • fix: upload failure with github (#3588) by @left0ver in #3589
  • Fix not colored emojis on popup by @fxha in #3215
  • fix issue 3268 by @hahaha28 in #3269
  • fix: #4153 suppress EPIPE crash in main process by @Wordbe in #4154
  • New feature: Opening image file with the external tool (#2321) by @kiyoka in #3007
  • fix: guard null imageContainer.firstChild in getImageInfo by @Jocs in #4193
  • fix: prevent querySelector crash on empty heading slug by @Bowl42 in #4135
  • Re-Factor MarkText with electron-vite by @Tkaixiang in #4001
  • fix: restore docs accidentally deleted in PR #4001 (electron-vite refactor) by @Jocs in #4196
  • restore: recover accidentally deleted tests from PR #4001 by @Jocs in #4197
  • chore: upgrade project dependencies to latest compatible versions by @Jocs in #4199
  • translate: convert all Chinese code comments to English by @Jocs in #4201
  • fix: fix ESLint configuration and resolve all lint errors by @Jocs in #4202
  • fix: resolve post-refactor regressions from electron-vite migration by @Jocs in #4203
  • Make native menu theme follow app theme by @johnsmith507 in #4205
  • feat: add GitHub Sponsors button to repository by @Jocs in #4207
  • feat: update sponsor by @Jocs in #4208
  • i18n: translate sponsor section in all language READMEs by @Jocs in #4209
  • fix: support Node v24+ with native-keymap C++20 patch and automated postinstall by @Jocs in #4211
  • fix: ensure npm run dev works after npm install on Node v24+ by @Jocs in #4212
  • feat: migrate package manager from npm to pnpm by @Jocs in #4213
  • docs: display special sponsor as a Markdown table by @Jocs in #4215
  • docs: update stale references and add CLAUDE.md by @Jocs in #4216
  • ci: replace manual test_pr with automated PR workflows by @Jocs in #4218
  • fix: word count tooltip not showing on macOS by @Jocs in #4219
  • fix: restore image fullscreen viewer broken by view-image removal by @Jocs in #4221
  • feat: restore third-party license tooling and add CI validation by @Jocs in #4220
  • fix: prevent crash in normalizeTable when body row has more cells than header by @Jocs in #4222
  • fix: skip conflict detection for unbound shortcuts in keybinding loader by @Jocs in #4223
  • fix: avoid reloading existing i18n locales by @cerredz in #4224
  • fix: migrate jsconfig.json away from deprecated baseUrl (TS 6.0) by @Jocs in #4225
  • fix: remove unused languine dependency (resolves CVE-2026-41650) by @Jocs in #4226
  • chore: remove unused deps and upgrade all dependencies to latest by @Jocs in #4227
  • ci: add Claude Code Action workflow by @Jocs in #4228
  • fix: add pnpm-workspace.yaml to approve build scripts for native deps by @Jocs in #4230
  • fix: build error when build mac target by @Jocs in #4232
  • fix: use default font smoothing by @cerredz in #4217
  • docs: update CommonMark Spec links to latest version by @Jocs in #4235
  • fix: #4151 preserve scroll position on external file change by @Wordbe in #4152
  • fix: Internal image cache isn't reset if failed to load (#3001) by @kiyoka in #3010
  • Allow scrolling down even if no contents below by @szdytom in #3405
  • Added Arch Linux to development dependencies in BUILD.md by @lawgimenez in #3381
  • fix(i18n): capitalize GitHub in English and Portuguese locale strings by @Blueteemo in #4238
  • docs: expand CLAUDE.md with single-test recipes and dev script catalog by @Jocs in #4239
  • fix: unblock local lint and vitest runs by @Jocs in #4240
  • test(e2e): broaden Playwright coverage with menu/IPC-driven specs by @Jocs in #4241
  • fix(ui): repair Insert Table dialog wrap and overhaul Help menu by @Jocs in #4242
  • fix(source-view): stop styling math subscripts as emphasis (#4121) by @Jocs in #4243
  • feat(security): sandbox the renderer (contextIsolation, nodeIntegration: false, sandbox: true) by @Jocs in #4244
  • feat(ts): migrate the entire project to TypeScript by @Jocs in #4247
  • refactor(stores): type editor + preferences Pinia stores (TS migration follow-up 1/6) by @Jocs in #4249
  • refactor(renderer): type prefComponents schemas + leaf SFC controls (TS migration follow-up 2/6) by @Jocs in #4250
  • refactor(test): port specs to strict TS β€” drop @ts-nocheck, ESM imports (TS migration follow-up 3/6) by @Jocs in #4251
  • refactor(renderer): type sidebar + top-level SFCs β€” drop @ts-nocheck (TS migration follow-up 4/6) by @Jocs in #4252
  • refactor(renderer): type editor + components SFCs β€” drop @ts-nocheck (TS migration follow-up 5/6) by @Jocs in #4253
  • refactor(renderer): type preference page SFCs β€” drop @ts-nocheck (TS migration follow-up 6/6) by @Jocs in #4254
  • chore(eslint): tighten @typescript-eslint/no-explicit-any to error (TS migration follow-up 7/7) by @Jocs in #4255
  • chore(eslint): ignore .claude/ worktree clones in lint runs by @Jocs in #4256
  • fix(ipc): tighten three IPC channels + SET_IMAGE_FOLDER_PATH signature by @Jocs in #4258
  • fix(renderer): editor fills width when sidebar collapses to icon strip by @Jocs in #4262
  • style(preferences): polish dialog UI and unify design by @Jocs in #4263
  • style(ui): batch polish sidebar, tabs, preferences, and theme contrast by @Jocs in #4264
  • style(sidebar): unify collapse arrows and tighten tree spacing by @Jocs in #4265
  • fix(muya): guard stale cursor/block lookups against null by @Jocs in #4267
  • ci(release): split into validateβ†’buildβ†’publish, harden workflow by @Jocs in #4266
  • test(e2e): regression guards for previously-reported "Unexpected error" crashes by @Jocs in #4268
  • docs(release): expand RELEASE.md into a step-by-step playbook by @Jocs in #4270
  • fix(release): restore updater metadata artifacts by @Jocs in #4272
  • fix(sidebar): create-file button works in non-English locales by @Jocs in #4273
  • chore: remove unused SVG icons from renderer by @Jocs in #4275
  • FIx: switch path-browserify to Pathe + image pasting on windows + cleanup console.logs by @Tkaixiang in #4274
  • refactor(image): remove GitHub uploader and None option; default to PicGo by @Jocs in #4276
  • feat(sidebar): implement file & folder sort with natural ordering by @Jocs in #4277
  • feat(sidebar): add toggle to hide Opened Files + cap list to 4 items by @Jocs in #4278
  • build: add Windows ARM64 native build support by @Jocs in #4279
  • fix(uploader): remove 5 MB hard limit on image uploads by @Jocs in #4280
  • fix(preferences): update broken doc links to correct develop-branch paths by @Jocs in #4281
  • fix(build): restore dedicated .md file icon on Windows by @Blueteemo in #4284
  • chore: remove residual Unsplash code by @Jocs in #4286
  • chore: remove dead code and debug noise by @Jocs in #4287
  • refactor(editor): rename LINTEN_FOR_* typos and unify JSON deep-clones by @Jocs in #4288
  • perf(filesystem): cut stat syscalls and per-call regex compilation by @Jocs in #4289
  • chore: misc simplifications by @Jocs in #4290

New Contributors

Full Changelog: v0.17.0...v0.19.0

  •  

v0.19.0-rc.4

27 Mei 2026 om 05:59

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • fix(preferences): update broken doc links to correct develop-branch paths by @Jocs in #4281
  • fix(build): restore dedicated .md file icon on Windows by @Blueteemo in #4284

Full Changelog: v0.19.0-rc.3...v0.19.0-rc.4

  •  

v0.19.0-rc.3

25 Mei 2026 om 05:03

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

What's Changed

  • docs(release): expand RELEASE.md into a step-by-step playbook by @Jocs in #4270
  • fix(release): restore updater metadata artifacts by @Jocs in #4272
  • fix(sidebar): create-file button works in non-English locales by @Jocs in #4273
  • chore: remove unused SVG icons from renderer by @Jocs in #4275
  • FIx: switch path-browserify to Pathe + image pasting on windows + cleanup console.logs by @Tkaixiang in #4274
  • refactor(image): remove GitHub uploader and None option; default to PicGo by @Jocs in #4276
  • feat(sidebar): implement file & folder sort with natural ordering by @Jocs in #4277
  • feat(sidebar): add toggle to hide Opened Files + cap list to 4 items by @Jocs in #4278
  • build: add Windows ARM64 native build support by @Jocs in #4279
  • fix(uploader): remove 5 MB hard limit on image uploads by @Jocs in #4280

Full Changelog: v0.19.0-rc.2...v0.19.0-rc.3

  •  

v0.19.0-rc.2

24 Mei 2026 om 09:05

❗ This is a pre-release

  • May contain bugs and unfinished features.

⚠️ Note for macOS users

Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:

xattr -cr /Applications/marktext.app

Verifying downloads

All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:

sha256sum -c SHA256SUMS.txt --ignore-missing

Full Changelog: v0.19.0-rc.1...v0.19.0-rc.2

  •  

OBS Studio 32.2.2

15 Augustus 2026 om 00:43

Important

The NVIDIA SDK was updated to version 13 in this release. This means that the minimum supported driver version is now 570. If you experience any issues with NVENC, please ensure that your GPU driver version is fully up to date.

Important

Due to an update to Qt, macOS 12 is no longer supported. For macOS 12, please use OBS Studio 32.1.2.

32.2.2 Hotfix Changes

  • Fixed an issue where plugins might not load properly on the first start after updating OBS on Windows [notr1ch]
  • Blocked OBS Studio from running on macOS 12 [RytoEX]
    • Due to a Qt update, OBS Studio 32.2.x fails to launch on macOS 12. For macOS 12, please use OBS Studio 32.1.2.

32.2.1 Hotfix Changes

  • Fixed game capture failing after updating OBS if the previous hook was still in use [notr1ch]

32.2 New Features

  • Replaced add source dropdown with new dialog [Warchamp7]
  • Added copy paste functions to frontend API [exeldro]
  • Added filter to compose SDR into HDR [jpark37]
  • Added delete as a hotkey to delete sources on macOS [PatTheMav]
  • Added dynamic bitrate support to multitrack video [lexano-ivs]
  • Added missing file support for filters [exeldro]
  • Added ability for plugins to set custom icons for new source types [cg2121]
  • Improved FPS selector UX [jcm93]
  • Included .webp files when adding a directory to Image Slide Show source [TarunCore]

32.2 Changes

  • Forced Intel-based installations to update to Apple Silicon version on macOS [PatTheMav]
    • This change means that OBS Studio versions built for Intel-based Macs but running on Apple Silicon Macs will automatically update to OBS Studio built for Apple Silicon Macs. If an installation was using third-party plugins, those plugins will no longer load until replaced with Apple Silicon versions.
  • Fixed audio mixer state getting out of sync when changing settings via websockets or plugins [Warchamp7]
  • Added theming for checked QToolButtons [glikely]
  • Added minimum width to spinboxes [Warchamp7]
  • Changed new capture devices to use fallback frame rate by default [PatTheMav]
  • Improved OpenGL performance slightly on low-end machines [kkartaltepe]
  • Set minimum size for color source to 1 pixel [exeldro]
  • Disallowed overwriting the crash handler [sebastian-s-beckmann]
  • Applied process mitigation policies for Windows [notr1ch]
  • Adjusted description of multitrack video [jhnbwrs]
  • Improved DLL loading behavior on Windows [notr1ch]
  • Limited multitrack video config to Custom service [PatTheMav]
  • Removed redundant "Monitor Only" from the Advanced Audio Properties window [Warchamp7]
    • Mute and Monitor are handled independently in the new Audio Mixer
  • Removed Close button from What's New dialog [Warchamp7]
  • Removed margins from What's New dialog [Warchamp7]

32.2 Bug Fixes

  • Fixed OAuth and dock state save corruption [PatTheMav]
  • Fixed group bounds not resizing when removing items [howellrl]
  • Fixed canvas mixes not being restored after video reset [dsaedtler]
  • Fixed some erroneous crashes during shutdown [Warchamp7]
  • Fixed display capture sometimes capturing black after a duplicator failure [ThrowTop]
  • Fixed color of controls dock output buttons in System theme [shiina424]
  • Fixed virtual camera reset failures [stephematician]
  • Fixed potential crash when user discards changes in the settings window [suogesi]
  • Fixed incorrect return value in virtualcam filter [xtfo]
  • Fixed source toolbar buttons not working after dragging a source into a group [Warchamp7]
  • Fixed properties hint icon spacing [Warchamp7]
  • Fixed potential crash when a video device reconnects on macOS [jcm93]
  • Fixed an issue where PipeWire could fail on NVIDIA GPUs [hoshinolina]
  • Fixed obs_canvas_get_video_info returning incorrect framerate [dsaedtler]
  • Fixed NVENC using incorrect bitrate in CQVBR mode [Lordmau5]
  • Fixed VAAPI AV1 not working when streaming with WHIP [RytoEX]

32.2 Deprecations

  • Deprecated obs_properties_add_button [sebastian-s-beckmann]

Checksums

OBS-Studio-32.2.2-Sources.tar.gz: ec81fb66b03e75ddb3076b576f62679c39262e0e9960cef3e17a40dc5d68e6b4
OBS-Studio-32.2.2-Ubuntu-24.04-x86_64-dbsym.ddeb: c658adb3e99d2a46f44c61e884e0c78e481167fc663b5b533e5d3bf6ca401568
OBS-Studio-32.2.2-Ubuntu-24.04-x86_64.deb: b6557ca2059287210332accc94c267094050489cffffc5c832e746e3a418dab0
OBS-Studio-32.2.2-Ubuntu-26.04-x86_64-dbsym.ddeb: e0c95ffa9f2cbecb8828f9d5ea578892795ff5672172717a92c60dfcc8321c4e
OBS-Studio-32.2.2-Ubuntu-26.04-x86_64.deb: f256927aeba7b8d2ce64815402e723d1dd8332d1e6535939b03572f2adcc2849
OBS-Studio-32.2.2-Windows-arm64-PDBs.zip: 1d1a352b33d7eb96e5133b8bbe3108cbcc9bcaee3dbbd8987bb9f36d1ad6c18e
OBS-Studio-32.2.2-Windows-arm64.zip: b16b41c3cf89b8a919738359a46acb25d207ec1e488563139d7c276cfffb0906
OBS-Studio-32.2.2-Windows-x64-Installer.exe: c3a0b880adbe64dc4bcb68f93016916ab5b55ae43fd227115287bf80257d92dc
OBS-Studio-32.2.2-Windows-x64-PDBs.zip: a2d2c16859ea3c2508f49c2b9a48b8ec630578334d301fbdf42718f6e473662a
OBS-Studio-32.2.2-Windows-x64.zip: 4d6e40e3ab155f56b30de517380566a206d74b63cdf5ad49aa596924768f97e1
OBS-Studio-32.2.2-macOS-Apple-dSYMs.tar.xz: 5d5d839a9c0376ad4393eb5d84f74e3c0a52aa2dffd54523c33e2c60dc3a7fdc
OBS-Studio-32.2.2-macOS-Apple.dmg: 920d6f26703d2df6e4085bd3c1cbed30488325084136c7a6e9e37021fbd6aaf7
OBS-Studio-32.2.2-macOS-Intel-dSYMs.tar.xz: 774bd980cb8d095fb9539f480d9663a349ba0956106134e25b173a8b7d7bae42
OBS-Studio-32.2.2-macOS-Intel.dmg: f8d8afe3dffdc86efa0698c02ff0c997866bac3e6208ddaf56d37108baacf197

  •  

HeidiSQL v12.21

3 Augustus 2026 om 19:48

12.21 - 2026-08-03

⛰️ Features

  • Create opt-in option for displaying columns in database tree - (f492bed)
  • Enhance order of items in completion proposal, so exact matches are at the top - (c1b817b)
  • For keyboard navigation on the completion proposal, wrap around the item list - (db952f8)
  • First attempt to create a user manager for PostgreSQL - (f0d7103)
  • Show index icons on columns in tree, and the data type text color - (e6e90aa)
  • Auto-adjust width of various combo boxes - (ca9b748)
  • Show table columns in tree, as child nodes - (0e20e70)
  • Query size of all indexes in one query - (c5201eb)
  • Display size of each index and paint a color bar behind it - (48a93d2)
  • Make custom proposal popup interval effective - (500c529)
  • Icons, colors and padding in completion proposal - (3d1254d)

πŸ› Bug Fixes

  • (ui) Exchange icon for "column" and its variants for add, delete, edit - (08558f9)
  • Sporadic crash in DBtreePaintText with columns - (f76c54f)
  • Enable foreign key drop down on grid field in MS SQL mode - (9f83561)
  • Remove column nodes from tree in table tools dialog - (b09823e)
  • Empty command line part for sshpass on FreeBSD - (ed881b3)
  • Handle MONEY column types as float - (67521d4)
  • Hang and wrong check states in data grid column selection on macOS - (6c5b66c)
  • Invalid folder path for SQL export cannot be created if it contains a duplicated path delimiter - (4555274)
  • Various CVEs regarding libssl and libcrypto - (379d28a)
  • Context menu does not appear at right-click on a tree node text - (8befce3)
  • Crash when opening textfile import dialog, with 0 tables in database - (83c4947)
  • Crash when cancelling session manager while a session rename is active - (1da8683)
  • Prevent crashes from SetFocus on various controls - (bf46821)
  • Data grid header keeps showing previous table's columns on macOS - (255695d)
  • Prevent SQL error "Property 'MS_Description' already exists" - (ac50b73)
  • Enhance anchors on some of the table editors controls - (bfebd9e)
  • Bad width of collation combo box - (a90f73c)
  • File > "New window" does nothing on macOS - (0583a4e)
  • Still wrong proposal background color in dark mode - (e62c47f)
  • Wrong proposal background color in dark mode - (eec978c)
  • Crash when opening a table, due to using the TCanvas member of a not yet visible form or frame - (bfe29c1)
  • Give the trees and grids more height for the header - (568098a)
  • Widen many TSpinEditEx instances to either 80px or align them with neighbor controls - (5964be6)
  • Some trees have their own OnContextMenu logic set at design time, do not overwrite - (7c2870a)
  • Work around unused Header.PopupMenu menu on Linux when a tree has a PopupMenu - (2030a91)
  • DPI related scale glitches, mainly on completion proposal - (905b126)
  • Do not paint size bar in nodes of level 2, and do not show "-" text there neither - (3e678bc)
  • Bad text color for selected item in proposal - (1c46db7)
  • Propose items when editor already contains a leading backtick quote - (8f12b3e)
  • Missing support for custom keyboard shortcut for executing completion popup - (79f1d38)
  • Glitches with padding in completion proposal, and non-restored width - (cf67d11)
  • EXPLAIN actions either disabled or non-working for PostgreSQL and SQLite - (2572681)
  • Hanging in a loop over result nodes by right-click on query result - (bc8f903)
  • Detect release version string from Lazarus project file, and insert into Contents/Info.plist of macOS bundle - (2171b58)
  • Crash during refresh on disconnected session - (0b0106d)
  • When parsing the command line, make use of Application.GetOptionValue and friends, instead of ParamStr(x) with regular expressions - (f436354)
  • Use default library of connection when the one from a stored session contains an invalid path/file - (51023c3)
  • Refresh session tree after import per More > Import settings file - (cfca46f)
  • CAS(x AS CHAR) not supported by MySQL below v4.0.2 - (e9e5263)
  • Always enable release link label on update check dialog, which points to the general download page - (2d475d2)
  • Prepend database name to the trigger name at the correct position, when newer MariaDB versions use IF NOT EXISTS - (27a3a51)

🚜 Refactor

  • Prefer Delphi friendly SysUtils.PathDelim over System.DirectorySeparator - (84104d0)

⚑ Performance

  • Avoid full string scans in StrEllipsis - (32f3bd0)

βš™οΈ Miscellaneous Tasks

  • Update SQLite libraries to v3.53.4 - (7bfd91d)
  • Ignore auto-created IntelliJ project files - (64613cf)
  • Prefer macos-15 over macos-15-arm64, due to better availability of the Intel runners - (c3be9d4)
  • Stick to macOS 15, because the FPC package is only officially qualified up to macOS 11 and uses a package format Apple has tightened in newer releases, so it no longer installs on the macos 26 runners. - (0c969da)

Cleanup

  • TbsSeparator TToolButton's now seem to have a default width of 8px (was 6px at some point), and TStatusBar's height now has a default height of 23px (was 28px) - (660c82d)

Localize

  • Update compiled .mo translation files - (3480cf4)

Note

For a list of all the changes up to date, please read CHANGELOG.md.

  •  

OBS Studio 32.2.1

30 Juli 2026 om 04:41

Important

The NVIDIA SDK was updated to version 13 in this release. This means that the minimum supported driver version is now 570. If you experience any issues with NVENC, please ensure that your GPU driver version is fully up to date.

Important

Due to an update to Qt, macOS 12 is no longer supported. For macOS 12, please use OBS Studio 32.1.2.

32.2.1 Hotfix Changes

  • Fixed game capture failing after updating OBS if the previous hook was still in use [notr1ch]

32.2 New Features

  • Replaced add source dropdown with new dialog [Warchamp7]
  • Added copy paste functions to frontend API [exeldro]
  • Added filter to compose SDR into HDR [jpark37]
  • Added delete as a hotkey to delete sources on macOS [PatTheMav]
  • Added dynamic bitrate support to multitrack video [lexano-ivs]
  • Added missing file support for filters [exeldro]
  • Added ability for plugins to set custom icons for new source types [cg2121]
  • Improved FPS selector UX [jcm93]
  • Included .webp files when adding a directory to Image Slide Show source [TarunCore]

32.2 Changes

  • Forced Intel-based installations to update to Apple Silicon version on macOS [PatTheMav]
    • This change means that OBS Studio versions built for Intel-based Macs but running on Apple Silicon Macs will automatically update to OBS Studio built for Apple Silicon Macs. If an installation was using third-party plugins, those plugins will no longer load until replaced with Apple Silicon versions.
  • Fixed audio mixer state getting out of sync when changing settings via websockets or plugins [Warchamp7]
  • Added theming for checked QToolButtons [glikely]
  • Added minimum width to spinboxes [Warchamp7]
  • Changed new capture devices to use fallback frame rate by default [PatTheMav]
  • Improved OpenGL performance slightly on low-end machines [kkartaltepe]
  • Set minimum size for color source to 1 pixel [exeldro]
  • Disallowed overwriting the crash handler [sebastian-s-beckmann]
  • Applied process mitigation policies for Windows [notr1ch]
  • Adjusted description of multitrack video [jhnbwrs]
  • Improved DLL loading behavior on Windows [notr1ch]
  • Limited multitrack video config to Custom service [PatTheMav]
  • Removed redundant "Monitor Only" from the Advanced Audio Properties window [Warchamp7]
    • Mute and Monitor are handled independently in the new Audio Mixer
  • Removed Close button from What's New dialog [Warchamp7]
  • Removed margins from What's New dialog [Warchamp7]

32.2 Bug Fixes

  • Fixed OAuth and dock state save corruption [PatTheMav]
  • Fixed group bounds not resizing when removing items [howellrl]
  • Fixed canvas mixes not being restored after video reset [dsaedtler]
  • Fixed some erroneous crashes during shutdown [Warchamp7]
  • Fixed display capture sometimes capturing black after a duplicator failure [ThrowTop]
  • Fixed color of controls dock output buttons in System theme [shiina424]
  • Fixed virtual camera reset failures [stephematician]
  • Fixed potential crash when user discards changes in the settings window [suogesi]
  • Fixed incorrect return value in virtualcam filter [xtfo]
  • Fixed source toolbar buttons not working after dragging a source into a group [Warchamp7]
  • Fixed properties hint icon spacing [Warchamp7]
  • Fixed potential crash when a video device reconnects on macOS [jcm93]
  • Fixed an issue where PipeWire could fail on NVIDIA GPUs [hoshinolina]
  • Fixed obs_canvas_get_video_info returning incorrect framerate [dsaedtler]
  • Fixed NVENC using incorrect bitrate in CQVBR mode [Lordmau5]
  • Fixed VAAPI AV1 not working when streaming with WHIP [RytoEX]

32.2 Deprecations

  • Deprecated obs_properties_add_button [sebastian-s-beckmann]

Checksums

OBS-Studio-32.2.1-Sources.tar.gz: 6a2532b1094bc51bc2fdeb1068d5c19cfe04216191a5b35c8707625401a80bf4
OBS-Studio-32.2.1-Ubuntu-24.04-x86_64-dbsym.ddeb: 7fd2a7f043658ce9504f9d31ec5af45067fdfd49d41717897f3d60123259809d
OBS-Studio-32.2.1-Ubuntu-24.04-x86_64.deb: f3ce385c9157a33db7219953dc672ae566aefe4d1ac1417fff1e2114de3316b5
OBS-Studio-32.2.1-Ubuntu-26.04-x86_64-dbsym.ddeb: 27c9a45baf6679f7f992e2f61c906cef4712172ecfc2b1eb0a28b46483024687
OBS-Studio-32.2.1-Ubuntu-26.04-x86_64.deb: 9411b2eb1cd64c0e4f442f017e482689cc59795d352c6c120356c7364c8c13be
OBS-Studio-32.2.1-Windows-arm64-PDBs.zip: 48f44ca5cb15be42179d3d2eaf6e2a68b38f9a8ac32c1482bea8661f4c8c2f73
OBS-Studio-32.2.1-Windows-arm64.zip: 53f6bca41dc59153f30a9fca69a2a9ae1be6086cc8c592dca178cd80c59c7ab9
OBS-Studio-32.2.1-Windows-x64-Installer.exe: bbb95e52b96ad9b7ccd5abd13121379d29774d6cc5fdbef82ffa249e8a24a289
OBS-Studio-32.2.1-Windows-x64-PDBs.zip: e6dcf4a06b4457cd54006b2a602202095482ccd1cb82e455da6a57ef97fd124f
OBS-Studio-32.2.1-Windows-x64.zip: db64a2934f8261f85b1410b84be011207a0afda5400d008289f1f1e211bcc7de
OBS-Studio-32.2.1-macOS-Apple-dSYMs.tar.xz: 635d5cbf8971ddb512c367d18f32773e44db5f612e08735b7f5e953f28e28422
OBS-Studio-32.2.1-macOS-Apple.dmg: 6120c995614be17ecd0ee0877514a88b121249e6261cde46d1440b87d7ffd70c
OBS-Studio-32.2.1-macOS-Intel-dSYMs.tar.xz: c90a80e6e8bc503dfd9314e599743b922d7593c16a258defe0b959077d0d0cda
OBS-Studio-32.2.1-macOS-Intel.dmg: 6900a7a6d4422956114cac3c148d871307fdb0530160c2cbb4e97f624c9f85a5

  •  

OBS Studio 32.2.0

30 Juli 2026 om 04:55

Important

The NVIDIA SDK was updated to version 13 in this release. This means that the minimum supported driver version is now 570. If you experience any issues with NVENC, please ensure that your GPU driver version is fully up to date.

Important

Due to an update to Qt, macOS 12 is no longer supported. For macOS 12, please use OBS Studio 32.1.2.

32.2 New Features

  • Replaced add source dropdown with new dialog [Warchamp7]
  • Added copy paste functions to frontend API [exeldro]
  • Added filter to compose SDR into HDR [jpark37]
  • Added delete as a hotkey to delete sources on macOS [PatTheMav]
  • Added dynamic bitrate support to multitrack video [lexano-ivs]
  • Added missing file support for filters [exeldro]
  • Added ability for plugins to set custom icons for new source types [cg2121]
  • Improved FPS selector UX [jcm93]
  • Included .webp files when adding a directory to Image Slide Show source [TarunCore]

32.2 Changes

  • Forced Intel-based installations to update to Apple Silicon version on macOS [PatTheMav]
    • This change means that OBS Studio versions built for Intel-based Macs but running on Apple Silicon Macs will automatically update to OBS Studio built for Apple Silicon Macs. If an installation was using third-party plugins, those plugins will no longer load until replaced with Apple Silicon versions.
  • Fixed audio mixer state getting out of sync when changing settings via websockets or plugins [Warchamp7]
  • Added theming for checked QToolButtons [glikely]
  • Added minimum width to spinboxes [Warchamp7]
  • Changed new capture devices to use fallback frame rate by default [PatTheMav]
  • Improved OpenGL performance slightly on low-end machines [kkartaltepe]
  • Set minimum size for color source to 1 pixel [exeldro]
  • Disallowed overwriting the crash handler [sebastian-s-beckmann]
  • Applied process mitigation policies for Windows [notr1ch]
  • Adjusted description of multitrack video [jhnbwrs]
  • Improved DLL loading behavior on Windows [notr1ch]
  • Limited multitrack video config to Custom service [PatTheMav]
  • Removed redundant "Monitor Only" from the Advanced Audio Properties window [Warchamp7]
    • Mute and Monitor are handled independently in the new Audio Mixer
  • Removed Close button from What's New dialog [Warchamp7]
  • Removed margins from What's New dialog [Warchamp7]

32.2 Bug Fixes

  • Fixed OAuth and dock state save corruption [PatTheMav]
  • Fixed group bounds not resizing when removing items [howellrl]
  • Fixed canvas mixes not being restored after video reset [dsaedtler]
  • Fixed some erroneous crashes during shutdown [Warchamp7]
  • Fixed display capture sometimes capturing black after a duplicator failure [ThrowTop]
  • Fixed color of controls dock output buttons in System theme [shiina424]
  • Fixed virtual camera reset failures [stephematician]
  • Fixed potential crash when user discards changes in the settings window [suogesi]
  • Fixed incorrect return value in virtualcam filter [xtfo]
  • Fixed source toolbar buttons not working after dragging a source into a group [Warchamp7]
  • Fixed properties hint icon spacing [Warchamp7]
  • Fixed potential crash when a video device reconnects on macOS [jcm93]
  • Fixed an issue where PipeWire could fail on NVIDIA GPUs [hoshinolina]
  • Fixed obs_canvas_get_video_info returning incorrect framerate [dsaedtler]
  • Fixed NVENC using incorrect bitrate in CQVBR mode [Lordmau5]
  • Fixed VAAPI AV1 not working when streaming with WHIP [RytoEX]

32.2 Deprecations

  • Deprecated obs_properties_add_button [sebastian-s-beckmann]

Checksums

OBS-Studio-32.2.0-Sources.tar.gz: a26a5da53964a8c38741c613f14f93cc37d95354e5225a07b6618152cdfcec1c
OBS-Studio-32.2.0-Ubuntu-24.04-x86_64-dbsym.ddeb: 650dc0f064b96a02238b0f328263b221abca3a246456ea379e2d7729ac48adba
OBS-Studio-32.2.0-Ubuntu-24.04-x86_64.deb: 4b691bef1eabba502e6d7592f87d09049af56d00d83f06087a7b447cc7c19d98
OBS-Studio-32.2.0-Ubuntu-26.04-x86_64-dbsym.ddeb: f0b0962bda0e5739250e903c61d536c5db3746f23902a7c142f1521c8c386d4d
OBS-Studio-32.2.0-Ubuntu-26.04-x86_64.deb: 82a74954f7fad626480b20fa6ab50c48245d604962b5c57c68a5dfe0e55fcb0a
OBS-Studio-32.2.0-Windows-arm64-PDBs.zip: a5b673de8e198b2db1d8d974043661bb64ee3f5b9ddcae33a3c9aa48604e8bd4
OBS-Studio-32.2.0-Windows-arm64.zip: 5c819148cf916d8621449633f55fa8b80eaf7d51bd5d5afa984d509105484047
OBS-Studio-32.2.0-Windows-x64-Installer.exe: e85f7cc39129c4c1999d84765fde8dade4c9a9800972f78d752ad218e7c50302
OBS-Studio-32.2.0-Windows-x64-PDBs.zip: dfa28cb12311e61b432b63d7dc5308365542ca8703a67a3f0d262825171b1aef
OBS-Studio-32.2.0-Windows-x64.zip: 793c8866796f94b907646c63ac73b9d0df7e98dcdab5b6bfd5baebf153e1ed92
OBS-Studio-32.2.0-macOS-Apple-dSYMs.tar.xz: 0b1c0380cc6d37ba3966518e9d8b9ad56ca92989255fd010f404d834bb5cd970
OBS-Studio-32.2.0-macOS-Apple.dmg: e4bed7f871efa8f2bb5b31d1bbdbde1d0b1016062050f5eab03fd16d44f7a04d
OBS-Studio-32.2.0-macOS-Intel-dSYMs.tar.xz: 4927c042adddf67955deff437560c81906f94316a1ebbc720db8e16ead099f56
OBS-Studio-32.2.0-macOS-Intel.dmg: 7c8cccd19db5771aaa3a803124534b2e9dbf0ebe5ce1c7cee78baaa54c2e21da

  •  

OBS Studio 32.2.0 Release Candidate 2

23 Juli 2026 om 03:55

Important

The NVIDIA SDK was updated to version 13 in this release. This means that the minimum supported driver version is now 570. If you experience any issues with NVENC, please ensure that your GPU driver version is fully up to date.

Release Candidate 2 Changes

  • Fixed right-click not working on disable Sources in Sources list in Beta 1 to RC1 [RytoEX]
  • Adjusted Add Source dialog according to feedback [Warchamp7]

Release Candidate 1 Changes

  • Fixed empty name label in volume meter in Beta 1-3 [Warchamp7]

Beta 3 Changes

  • Fixed extra padding on some UI elements on Windows in Beta 1-2 [Warchamp7]
  • Fixed NVIDIA Audio Effects not working in Beta 1-2 [pkviet]
  • Fixed issues with long item names in the Audio Mixer in Beta 1-2 [Warchamp7]
  • Removed redundant "Monitor Only" from the Advanced Audio Properties window [Warchamp7]
    • Mute and Monitor are handled independently in the new Audio Mixer
  • Removed Close button from What's New dialog [Warchamp7]
  • Removed margins from What's New dialog [Warchamp7]

Beta 2 Changes

  • Fixed a CI deployment issue. There are no application changes since Beta 1.

32.2 New Features

  • Replaced add source dropdown with new dialog [Warchamp7]
  • Improved FPS selector UX [jcm93]
  • Added missing file support for filters [exeldro]
  • Added ability for plugins to set custom icons for new source types [cg2121]
  • Included .webp files when adding a directory to Image Slide Show source [TarunCore]
  • Added copy paste functions to frontend API [exeldro]
  • Added filter to compose SDR into HDR [jpark37]
  • Added delete as a hotkey to delete sources on macOS [PatTheMav]
  • Added dynamic bitrate support to multitrack video [lexano-ivs]

32.2 Changes

  • Forced Intel-based installations to update to Apple Silicon version on macOS [PatTheMav]
    • This change means that OBS Studio versions built for Intel-based Macs but running on Apple Silicon Macs will automatically update to OBS Studio built for Apple Silicon Macs. If an installation was using third-party plugins, those plugins will no longer load until replaced with Apple Silicon versions.
  • Fixed audio mixer state getting out of sync when changing settings via websockets or plugins [Warchamp7]
  • Added theming for checked QToolButtons [glikely]
  • Improved OpenGL performance slightly on low-end machines [kkartaltepe]
  • Set minimum size for color source to 1 pixel [exeldro]
  • Added minimum width to spinboxes [Warchamp7]
  • Disallowed overwriting the crash handler [sebastian-s-beckmann]
  • Applied process mitigation policies for Windows [notr1ch]
  • Adjusted description of multitrack video [jhnbwrs]
  • Changed new capture devices to use fallback frame rate by default [PatTheMav]
  • Improved DLL loading behavior on Windows [notr1ch]
  • Limited multitrack video config to Custom service [PatTheMav]

32.2 Bug Fixes

  • Fixed OAuth and dock state save corruption [PatTheMav]
  • Fixed group bounds not resizing when removing items [howellrl]
  • Fixed canvas mixes not being restored after video reset [dsaedtler]
  • Fixed some erroneous crashes during shutdown [Warchamp7]
  • Fixed display capture sometimes capturing black after a duplicator failure [ThrowTop]
  • Fixed color of controls dock output buttons in System theme [shiina424]
  • Fixed virtual camera reset failures [stephematician]
  • Fixed potential crash when user discards changes in the settings window [suogesi]
  • Fixed incorrect return value in virtualcam filter [xtfo]
  • Fixed source toolbar buttons not working after dragging a source into a group [Warchamp7]
  • Fixed properties hint icon spacing [Warchamp7]
  • Fixed potential crash when a video device reconnects on macOS [jcm93]
  • Fixed an issue where PipeWire could fail on NVIDIA GPUs [hoshinolina]
  • Fixed obs_canvas_get_video_info returning incorrect framerate [dsaedtler]
  • Fixed NVENC using incorrect bitrate in CQVBR mode [Lordmau5]
  • Fixed VAAPI AV1 not working when streaming with WHIP [RytoEX]

32.2 Deprecations

  • Deprecated obs_properties_add_button [sebastian-s-beckmann]

Checksums

OBS-Studio-32.2.0-rc2-Sources.tar.gz: 3d813d852701ba37b7a887bc3c99d4c5c4ffaa52afb3e2d281185b613f5831c1
OBS-Studio-32.2.0-rc2-Ubuntu-24.04-x86_64-dbsym.ddeb: abeb5dea2fb0999036f2c723a086f349e9566d5fc44bedfd37cc22bac08baff5
OBS-Studio-32.2.0-rc2-Ubuntu-24.04-x86_64.deb: 6fdeff435c295c8a915b91733c15ff85f11e7604808a5ba2e6b5cbb381d2a8d9
OBS-Studio-32.2.0-rc2-Ubuntu-26.04-x86_64-dbsym.ddeb: 3b49ac3dd84e07f52f91aee77b37f7361cb7930fd486447cafa32d60390b897f
OBS-Studio-32.2.0-rc2-Ubuntu-26.04-x86_64.deb: 6432a2a781b0ffa97da223b7e226d7968889d023275b54b6d37795598ea15d3e
OBS-Studio-32.2.0-rc2-Windows-arm64-PDBs.zip: c59e25a34774937428f4060903e38951b8e8f1d386ba761d50c8543864184ade
OBS-Studio-32.2.0-rc2-Windows-arm64.zip: 87f9bd65a8d48dd5e9a574f3f276277f6547846860cd7679994a724e8639362b
OBS-Studio-32.2.0-rc2-Windows-x64-Installer.exe: 80482d8b08b4650cecb2e1a68b6a5bf420660c0cde8a8664cdefcb63b3f93b44
OBS-Studio-32.2.0-rc2-Windows-x64-PDBs.zip: 719b3912e9e7cb5ea666f6a86b4adb811a3a83ab18e72f9d08d78cc49de06b24
OBS-Studio-32.2.0-rc2-Windows-x64.zip: b33ff9917b6440505d1b62906f7dbd0d8e910d7137f1269572817bf538a914ed
OBS-Studio-32.2.0-rc2-macOS-Apple-dSYMs.tar.xz: 2a84fda1b52ce60f6a6cbc5e4923c1e2ce13f4f27cdb6bea5c5518e8cbde8c7f
OBS-Studio-32.2.0-rc2-macOS-Apple.dmg: 19dcdd8fe01d916f63617db4e4d62501e4881f6a737359e3462101fe76d8d3df
OBS-Studio-32.2.0-rc2-macOS-Intel-dSYMs.tar.xz: 13d83b972de76c7acd215dd0a1c3d61c2d1b8b0a9d21b47b93364e37d82d336e
OBS-Studio-32.2.0-rc2-macOS-Intel.dmg: dfe081310f8444fd38912763dee1b8db5c1164a17da6a78d2cff272638e22681

  •  

OBS Studio 32.2.0 Release Candidate 1

23 Juli 2026 om 03:55

Important

The NVIDIA SDK was updated to version 13 in this release. This means that the minimum supported driver version is now 570. If you experience any issues with NVENC, please ensure that your GPU driver version is fully up to date.

Release Candidate 1 Changes

  • Fixed empty name label in volume meter in Beta 1-3 [Warchamp7]
  • Fixed macOS Audio Capture sources capturing cursors unnecessarily [jcm93]

Beta 3 Changes

  • Fixed extra padding on some UI elements on Windows in Beta 1-2 [Warchamp7]
  • Fixed NVIDIA Audio Effects not working in Beta 1-2 [pkviet]
  • Fixed issues with long item names in the Audio Mixer in Beta 1-2 [Warchamp7]
  • Removed redundant "Monitor Only" from the Advanced Audio Properties window [Warchamp7]
    • Mute and Monitor are handled independently in the new Audio Mixer
  • Removed Close button from What's New dialog [Warchamp7]
  • Removed margins from What's New dialog [Warchamp7]

Beta 2 Changes

  • Fixed a CI deployment issue. There are no application changes since Beta 1.

32.2 New Features

  • Replaced add source dropdown with new dialog [Warchamp7]
  • Improved FPS selector UX [jcm93]
  • Added missing file support for filters [exeldro]
  • Added ability for plugins to set custom icons for new source types [cg2121]
  • Included .webp files when adding a directory to Image Slide Show source [TarunCore]
  • Added copy paste functions to frontend API [exeldro]
  • Added filter to compose SDR into HDR [jpark37]
  • Added delete as a hotkey to delete sources on macOS [PatTheMav]
  • Added dynamic bitrate support to multitrack video [lexano-ivs]

32.2 Changes

  • Forced Intel-based installations to update to Apple Silicon version on macOS [PatTheMav]
    • This change means that OBS Studio versions built for Intel-based Macs but running on Apple Silicon Macs will automatically update to OBS Studio built for Apple Silicon Macs. If an installation was using third-party plugins, those plugins will no longer load until replaced with Apple Silicon versions.
  • Fixed audio mixer state getting out of sync when changing settings via websockets or plugins [Warchamp7]
  • Added theming for checked QToolButtons [glikely]
  • Improved OpenGL performance slightly on low-end machines [kkartaltepe]
  • Set minimum size for color source to 1 pixel [exeldro]
  • Added minimum width to spinboxes [Warchamp7]
  • Disallowed overwriting the crash handler [sebastian-s-beckmann]
  • Applied process mitigation policies for Windows [notr1ch]
  • Adjusted description of multitrack video [jhnbwrs]
  • Changed new capture devices to use fallback frame rate by default [PatTheMav]
  • Improved DLL loading behavior on Windows [notr1ch]
  • Limited multitrack video config to Custom service [PatTheMav]

32.2 Bug Fixes

  • Fixed OAuth and dock state save corruption [PatTheMav]
  • Fixed group bounds not resizing when removing items [howellrl]
  • Fixed canvas mixes not being restored after video reset [dsaedtler]
  • Fixed some erroneous crashes during shutdown [Warchamp7]
  • Fixed display capture sometimes capturing black after a duplicator failure [ThrowTop]
  • Fixed color of controls dock output buttons in System theme [shiina424]
  • Fixed virtual camera reset failures [stephematician]
  • Fixed potential crash when user discards changes in the settings window [suogesi]
  • Fixed incorrect return value in virtualcam filter [xtfo]
  • Fixed source toolbar buttons not working after dragging a source into a group [Warchamp7]
  • Fixed properties hint icon spacing [Warchamp7]
  • Fixed potential crash when a video device reconnects on macOS [jcm93]
  • Fixed an issue where PipeWire could fail on NVIDIA GPUs [hoshinolina]
  • Fixed obs_canvas_get_video_info returning incorrect framerate [dsaedtler]
  • Fixed NVENC using incorrect bitrate in CQVBR mode [Lordmau5]
  • Fixed VAAPI AV1 not working when streaming with WHIP [RytoEX]

32.2 Deprecations

  • Deprecated obs_properties_add_button [sebastian-s-beckmann]

Checksums

OBS-Studio-32.2.0-rc1-Sources.tar.gz: 33fccf85f9c0b5babbdbce4d069eef80a5b289438b732df1198f10730293e56f
OBS-Studio-32.2.0-rc1-Ubuntu-24.04-x86_64-dbsym.ddeb: 294ddfaa0e27ba110c63f47dd6da80116633d2ef6cd680ee97b58a90f3e2acab
OBS-Studio-32.2.0-rc1-Ubuntu-24.04-x86_64.deb: dfd762e1cb3408d87ab7684661b4e6807164b9218ea8f2b71861e610b6f7a672
OBS-Studio-32.2.0-rc1-Ubuntu-26.04-x86_64-dbsym.ddeb: 403c67a04a3f6ce3a6afa9dc07d06ab8e5a999021b819bdf99c272fb899397bd
OBS-Studio-32.2.0-rc1-Ubuntu-26.04-x86_64.deb: 1faa382af348e533a1addcc43c6c3446b59fcc6256a9b717581b873caa5d2375
OBS-Studio-32.2.0-rc1-Windows-arm64-PDBs.zip: db8b4e5e70c05fee263e48b3b4871ff715c6ba6f7ab8de668f7b96b755f8703d
OBS-Studio-32.2.0-rc1-Windows-arm64.zip: fe3489579e5972dd30908475a413fb4eca6217902c176d083a758e161fe91a13
OBS-Studio-32.2.0-rc1-Windows-x64-Installer.exe: 0f6d61c551f8204268edee48aae8d8706c3eb3807b0f985c89c486bdd2f6ceec
OBS-Studio-32.2.0-rc1-Windows-x64-PDBs.zip: 1851fc4e3858393723d037c03d1fb886ab518305045dcec33b463756063a6a31
OBS-Studio-32.2.0-rc1-Windows-x64.zip: fba72e42aff09ce0171cd96ca6aaf694c7a55e3a01700400a2f6e700750d7088
OBS-Studio-32.2.0-rc1-macOS-Apple-dSYMs.tar.xz: 21bfa07fd5f190359b7566be7fcc5a33f90b59ea43fba55031bbb631d05f7088
OBS-Studio-32.2.0-rc1-macOS-Apple.dmg: d948f620a04a50c4c45cc4e4014350132f68d1b2f1ec46138f11a80b4c215972
OBS-Studio-32.2.0-rc1-macOS-Intel-dSYMs.tar.xz: 982ab5af5fcfab921e4f169d426af0f674bc71e34a4442ecc4ead79d3395f5c2
OBS-Studio-32.2.0-rc1-macOS-Intel.dmg: 9c7bf3524094ee50dfbafdbdbe9cf910adfd53b5160508eefb3476fa07690403

  •  
❌