Repository navigation
Releases
OPNduck v0.6.1-Beta - quick follow-up (expect bugs)
OPNduck v0.6.1-Beta
A quick follow-up to v0.6.0-Beta, the biggest update yet. It might be super buggy: expect bugs, and please report them on GitHub Issues.
Which file do I download?
| Your system | Download |
|---|---|
| Windows | OPNduck-Windows.exe |
| Mac (Apple silicon) | OPNduck-Mac.dmg |
| Linux | OPNduck-Linux.zip: unzip it, then run OPNduck.AppImage (any distro), or on Arch sudo pacman -U opnduck-desktop-0.6.1-beta.pacman |
| Android | OPNduck-Android.apk |
| Terminal only (Node.js 20+) | OPNduck-Terminal.tar.gz |
Ignore the rest (SHA256SUMS.txt is for checking a download; "Source code" is added by GitHub).
What's new
- The assistant can use the internet (Settings > AI assistant, off by default): web search and reading pages, with Wikipedia (no account), Brave Search (your key), your own SearXNG server or DuckDuckGo (best effort). It never opens addresses on your computer or home network, and what it reads is only information.
- The assistant can change settings and the theme when you ask ("something green", "reduce motion"). Each change is a card you confirm. Sharing, keys, folders and power settings stay manual.
- The assistant shows what it is doing with an animated icon: waking up, thinking, looking something up, preparing a plan, writing.
- Settings are sorted into 8 categories instead of five with a long System list.
- A more compact Home: while a tool is open the tiles shrink to a strip so the tool is in view; the last row of tiles fills the width.
- Recipes and Chat have their own menu icon animations.
Fixed
- Chat: "Context size has been exceeded" with OPNduck's own model (bigger default memory, shorter tool descriptions, a clear message).
- The local AI engine now stops when you eject it and when OPNduck quits; a leftover one from a crash is stopped before a new one loads (it used to hold about 4 GB of graphics memory and the next load failed).
- The assistant knows where OPNduck's own settings are, no longer invents theme names, and says when internet access is off.
Full list: CHANGELOG.md.
Known issues
- Expect bugs. This is still a very large Beta.
- Windows builds are made from Linux via wine and are untested on real Windows.
- The macOS and Android builds are not signed or notarized. There is no Intel Mac build.
- Not on the AUR yet (registration is paused), not on F-Droid, and the npm terminal package is not published for this version yet.
OPNduck v0.6.0-Beta - the biggest update yet (expect bugs)
OPNduck v0.6.0-Beta
This is the biggest update yet for OPNduck, and possibly ever. It might be super buggy. Expect bugs, and please report them on GitHub Issues.
Free, open source (GPL-3.0), local-first: your media never leaves your machine unless you point an AI feature at a cloud key yourself. About 65 commits and 30,000 lines changed since v0.5.3-Beta, most of it new and lightly tested. Back up anything you care about and tell us what breaks.
Which file do I download?
| Your system | Download |
|---|---|
| Windows | OPNduck-Windows.exe |
| Mac (Apple silicon) | OPNduck-Mac.dmg |
| Linux | OPNduck-Linux.zip: unzip it, then run OPNduck.AppImage (any distro), or on Arch sudo pacman -U opnduck-desktop-0.6.0-beta.pacman |
| Android | OPNduck-Android.apk |
| Terminal only (Node.js 20+) | OPNduck-Terminal.tar.gz |
Ignore the rest (SHA256SUMS.txt is for checking a download; "Source code" is added by GitHub).
New tools
- Colour Grade: fixes washed-out, dark or tinted footage by itself (it measures the picture and says why it changed each setting), six built-in looks (warm film, teal and orange, bleach bypass, rich black and white, vintage fade, cool night), your own
.cubeLUTs, matching the look of a reference picture, an AI "make it look like..." option, and sliders with a live before/after. HDR is tone-mapped first. - Background Remover: cuts a person or object out of a picture or video with no green screen. Put behind it: transparent (PNG, WebM or ProRes with alpha), a colour, a blurred copy or another picture. One-frame preview. Add-on download about 150 MB.
- Dubbing (Beta): makes a video speak English, Swedish, German, French, Spanish or Italian, all locally: the voice is split from the music, written down (Whisper), translated (Argos), spoken by a free Piper voice and fitted into the timing; the picture is not re-encoded. The dub is a first audio track (original kept as second) or replaces the audio. No voice cloning.
- Beat Finder: BPM, beat times and musical key (DJ notation), waveform with a line on every beat, tap tempo, writes the tags, and cuts a set of clips to the beat of a song.
- Restore: deinterlace (only when really interlaced), denoise, stabilize and colour fixes for old or shaky footage, with a before/after slider; can chain into upscale and interpolation.
- Jump Cut: removes the silences from talking videos and podcasts, with loudness normalizing.
- Compress: land just under a size (20 MB for Discord, 16 MB for WhatsApp, 25 MB for email).
- GIF & Stickers: GIF, animated WebP, Telegram video stickers and Discord stickers.
- Music Tagger: artist, title, album, year, track and cover art for MP3, FLAC, M4A, Ogg and Opus, with a Fix tags button in the Library and optional automatic tagging of new downloads.
- Recipes: chain tools into one saved flow (for example download as MP3, then tag it; or upscale, then smooth the motion). Also in the terminal app, in the watch folder and through MCP.
- Auto settings: an Auto button on the upscalers, interpolation, subtitles and compress that looks at your file and picks settings.
AI (off by default)
- AI runtime (Settings > AI): Ollama or LM Studio on this computer, another computer over Tailscale, or a cloud API with your own key (OpenAI-compatible, Anthropic, Gemini). Keys are kept in the system keyring. Optional monthly token limit.
- OPNduck's own model: downloads a small open model (Ministral 3 3B, sees pictures; or Qwen3 1.7B) and the llama.cpp engine, both checked against published checksums, loads when needed and ejects when idle (also from the tray).
- Chat page and a terminal Ask screen: streaming answers; it proposes jobs as cards and only runs them when you press Run, and only on files you picked.
- Spoken words: transcripts of your videos made on your computer, searchable from the Library (a hit opens the trimmer at that moment), plus summaries, chapters (written into a copy without re-encoding), questions about a video, and a thumbnail picker.
- Why did this fail? plain-language reasons for the errors people actually hit; Tidy name for downloads; Colour Grade AI looks.
- Share the AI model with your paired devices in the OpenAI format (never a cloud key).
npm run ai:evalchecks the prompts against a model.
Send to OPNduck, server and phone
- Send to OPNduck: links from your phone, browser or another PC land in OPNduck (off by default) through an
opnduck://link, a direct connection (this computer, Tailscale or home network), or an end-to-end encrypted ntfy relay. A Chrome/Firefox extension and a phone web page are included. It only ever carries a link. - OPNduck Server: the engine without a window for a home server, NAS or container (
opnduck-server, Docker images, compose files for NVIDIA, AMD/Intel and Tailscale). Settings > Servers adds one by pair link; every tool card gets a Run on menu, and jobs on a server show up in your queue and Library. - Android companion (first version): pair by QR code, send links (also from any app's Share menu), watch the queue, download results.
- Per-device sharing: a phone or extension only sees and manages the jobs it started. Only a device paired with
opnduck-server pair --adminsees everything.
Platforms, system and plugins
- macOS (Beta): Apple silicon build, smoke-tested on a Mac in CI. Not notarized, so the first launch needs "Open Anyway" (see
docs/MACOS.md). Homebrew tools are found even from the Dock; VideoToolbox and Metal are used. - Smart scheduling: only start heavy jobs in a time window, hold them on battery, pause the GPU job when it gets hot.
- Plugin system (beta): plugins can add cards and background scripts, each behind permissions you approve; a Plugins page and an index of community plugins.
- First-launch setup wizard, community files (code of conduct, contributing, security policy, issue forms).
Fixed
- A round of code-audit fixes: remote jobs wrongly refused, upload bookkeeping, look-alike private hostnames, AI engine downloads now need a published checksum, jobs from another device are never forwarded to a third, the ntfy relay reconnects after silence, resumed downloads can't corrupt files, chats save to the right chat, Grade and Dubbing cope with odd audio and subtitle tracks.
- The full list is in
CHANGELOG.md.
Known issues
- Expect bugs. This is a very large Beta.
- Windows installers are built from Linux via wine and are untested on real Windows.
- The macOS and Android builds are not signed or notarized. There is no Intel Mac build yet.
- Not on the AUR yet (AUR registration is paused) and not on F-Droid yet; the npm terminal package is not published for this version yet.
v0.5.3-Beta
OPNduck v0.5.3-Beta
Free, open source (GPL-3.0), local-first: your media never leaves your machine. Expect bugs and report them on GitHub.
This release adds a terminal version of OPNduck and a first-launch setup wizard. The Tauri migration is still postponed (WebKitGTK on Linux stutters/crashes with NVIDIA + Wayland); OPNduck stays on Electron.
Added
- OPNduck TUI (beta): the tools in a terminal, about 100 MB of memory instead of about 680 MB. Tools, Queue, Library, Settings and Setup screens, forms for all eight tools with path completion, live progress, and all 26 themes. It shares settings and history with the desktop app. Unpack
opnduck-tui-0.5.3-beta.tar.gz(needs Node.js 20 or newer) or runnpm run tui. Also published as an npm package. Seedocs/TUI.md. - Setup wizard: on first launch (and from Settings, System, Open setup) it lists the downloader, the fast video engine, Audio AI and Subtitles with download sizes, marks what you already have, and installs the ones you tick with live progress and a Cancel button. Tools from your package manager (ffmpeg, Real-ESRGAN, RIFE, LibreOffice) are listed with their install command when missing.
Changed
- Internal: the job code now lives in Electron-free
electron/core/modules. The desktop app behaves the same. - The developer-tool channels in the desktop shell refuse to run unless Developer mode is on. This is a guard inside the app, not a security boundary.
- Switching back to Blarange or Monochrome clears the cached theme colours the startup screen uses.
- Builds no longer include Python
__pycache__folders.
Assets
OPNduck-0.5.3-beta.AppImage,opnduck-desktop-0.5.3-beta.pacman(Linux x64)OPNduck.Setup.0.5.3-beta.exe,OPNduck.0.5.3-beta.exe(Windows x64 installer and portable)opnduck-tui-0.5.3-beta.tar.gzSHA256SUMS.txt
Known issues
- Windows installers are built from Linux via wine and are still untested on real Windows.
- No AUR publication and no artifact signing yet (deferred).
OPNduck v0.5.2-Beta
OPNduck v0.5.2-Beta
Free, open source (GPL-3.0), local-first: your media never leaves your machine. Expect bugs and report them on GitHub.
A visual and tidying release: Home is a compact grid of tool tiles, there is a themed startup screen, corners are sharper and the wording is plainer. The Tauri migration is still postponed (WebKitGTK on Linux stutters/crashes with NVIDIA + Wayland); OPNduck stays on Electron.
Added
- New startup screen: a duck bobbing on moving waves with the wordmark hopping in, all in the colours of your chosen theme (including Omarchy and palette themes).
- Pixel look: a blocky pixel wordmark in the top bar and on Home, and a faint scatter of pixels along the top of every page, in the current theme's accent.
- More developer tools (Settings, with dev mode on): IPC trace, event-loop lag, saved-settings viewer (redacted), raw job launcher, sample media generator, and layout outlines.
Changed
- Home is less crowded: a compact tile for each tool, and only the tool you pick opens below. The open tool is in the URL (
?tool=), so the command palette jumps straight to it. - Calmer Blarange colours: neutral surfaces, orange kept for actions, focus and the active item.
- Sharper corners (1-4 px).
- Plainer wording and less filler across the app.
- Readable text and icons in every Omarchy palette, including themes like Nord.
Performance
- Engine checks (PyTorch, Demucs, Whisper) are remembered between launches and re-checked in the background, so the cards load faster.
Website
The OPNduck website also got a try-any-theme picker and an omarchy.org-style look (not part of the app).
Known issues
- Windows installers are built from Linux via wine and are still untested on real Windows.
- No AUR publication and no artifact signing yet (deferred).
OPNduck v0.5.1-Beta
OPNduck v0.5.1-Beta
Free, open source (GPL-3.0), local-first: your media never leaves your machine. Expect bugs and report them on GitHub.
A follow-up to v0.5.0-Beta: OPNduck can now be controlled by any MCP-capable AI app, the menu icons are animated, and something is hiding for the curious. The Tauri migration is still postponed (WebKitGTK on Linux stutters/crashes with NVIDIA + Wayland); OPNduck stays on Electron.
Added
- A secret for the curious: something hides behind the OPNduck name. Once found, Settings gains a switch to keep it in the menu.
- Animated menu icons: Settings spins, Plugins pulls back and plugs in with a spark, Library pulls a book out, Home hops. They play on hover/press and are off with reduced motion.
- MCP server (Settings → System, off by default): any MCP-capable AI app (Claude Code, Codex, Gemini CLI, Cursor, Claude Desktop, LM Studio, ...) can start downloads, conversions, upscales, interpolation, subtitles, trims and audio AI, watch jobs and their logs, cancel jobs and pause the queue. Localhost only, token-protected, saves only to your download folder, jobs are tagged "via MCP". See
docs/MCP.md.
Known issues
- Windows installers are built from Linux via wine and are still untested on real Windows.
- No AUR publication and no artifact signing yet (deferred).
OPNduck v0.5.0-Beta
OPNduck v0.5.0-Beta
Free, open source (GPL-3.0), local-first: your media never leaves your machine. Expect bugs and report them on GitHub.
The performance release. Video upscaling now streams frames straight through the GPU (PyTorch) with no temporary
image files, AI video jobs encode on the GPU (NVENC), and long videos run in bounded-size chunks. It also adds a
trimmer, a watch folder, queue controls, live logs, all Omarchy 4.5 themes and developer tools. The Tauri migration
is still postponed (WebKitGTK on Linux stutters/crashes with NVIDIA + Wayland); OPNduck stays on Electron.
Added
-
One-click installs: missing Python tools can be installed from the card itself. AI Audio sets up
Demucs and Subtitles sets up faster-whisper inside OPNduck's own Python environment (progress shown,
cancelable). The manual command stays visible. -
yt-dlp can be downloaded and updated from inside OPNduck (checksum-verified, no admin rights);
Settings → Downloads shows the version and an Update button. -
Spotify tracks: pasting a link switches the format to MP3, and "Run again" on a failed match
asks, then picks a different YouTube video (premieres are skipped). -
New app icon (the website duck).
-
packaging/aur/PKGBUILDfor an Arch package that runs on the systemelectron. -
A "How many" limit for channel and search links in the command-palette download panel, and a notice
when some files of a batch couldn't be started. -
Watch folder: Settings → Watch folder converts new media files dropped into a chosen folder (checked every 10
seconds; files still being copied are left alone; results go to aconvertedsubfolder; each file is handled once). -
Trim card: cut a section out of a video or audio file. Fast cut copies the streams (instant, snaps to the
nearest keyframe); Precise re-encodes for an exact frame.
Open visual trimmer… shows a pop-up with a thumbnail timeline, two draggable handles (or ← → keys) and a live
preview of the frame at the handle you are moving. -
Queue controls: Pause queue in the Library stops waiting jobs from starting (running ones finish), Run next
moves a queued job to the front of its line, and Settings → Job queue sets how many downloads (1–6) and
conversions (1–4) run at once. -
All Omarchy 4.5 themes built in: Settings → Appearance now lists every theme from Omarchy 4.5.0-rc2 (23, including
the new Jade Horse and Starship), plus Osaka Jade, which rc2 dropped but stays here as a swatch picker. They work on any system, not just where Omarchy is
installed, share the Omarchy look and keep your choice between launches. "Synced with Omarchy" still follows your live
theme and picks up new Omarchy themes automatically. -
Dev launcher (
npm run desktop:dev): only one dev session at a time. Starting it again stops the previous one
(Vite and Electron) instead of piling up windows, frontend edits hot-reload, backend edits (electron/*.cjs,.py)
restart the app automatically, and closing the app stops everything it started. Normal launches are also
single-instance now: opening OPNduck again just brings the open window forward. -
Developer tools additions: a performance overlay (FPS, JS heap, DOM nodes), a theme token viewer with color
chips and Copy as CSS, a local-storage editor, and window-size presets. -
More developer utilities (Settings → Developer tools, with dev mode on, Ctrl+Shift+D): system and tool versions
(OPNduck, Electron, Chromium, GPU, yt-dlp, ffmpeg, upscalers, Python, PyTorch), live per-process CPU and memory, an
app log viewer with level filters, a raw tasks inspector, buttons for DevTools, reload, the data folder and a test
notification, simulated jobs (success or failure) to try the UI, and Copy diagnostics — a bug-report text with
your home folder and any credentials removed. -
Notifications and tray: Settings → Notifications & tray. A desktop notification when jobs finish while OPNduck
isn't the focused window (a batch becomes one notification), and an option to keep running in the system tray
when you close the window so jobs and subscription checks continue. -
Download extras: a checkbox embeds cover art and tags (title, artist) into MP3, MP4 and MKV files (FLAC gets
tags only). Subtitles can be translated to English (new checkbox on the Subtitles card; outputname.en.srt).
Fixed
- Progress bars no longer jump backwards. A download's video and audio streams each restarted the bar from
0%; progress is now weighted by stream size, never moves backwards while a job runs, and every bar eases
toward the reported value instead of snapping. - Frame Interpolation failed with "only rife-v4 model support custom numframe" on installs whose RIFE
defaults to an older model; it now usesrife-v4.6. - Subtitles failed with "unexpected keyword argument 'metadata_errors'" when the system PyAV didn't
match faster-whisper; audio is now decoded with ffmpeg. Songs no longer come out empty (the speech
filter is retried off), and a file with no speech reports that instead of saving an empty .srt.
Changed
- Electron 45.2.0 (Chromium 156, Node 24.22). Release notes for 45.0–45.2 reviewed: nothing in OPNduck uses the
removed sandbox preload globals, the changed ASARfs.openbehaviour, or the deprecatedsafeStorage. New in
OPNduck from it: the taskbar/dock icon shows the overall progress of running jobs (setProgressBar, now working on
Linux launchers too), the "job finished" notification has a Show in folder button, and the window remembers its
position, size and maximized state between launches (not visible on tiling window managers, which set the size).
Security
- Updated Electron to 44.10.0 and refreshed dependencies;
npm auditnow reports 0 vulnerabilities (Electron, undici
and fast-uri advisories).
Performance
- Faster video upscaling engine (PyTorch, NVIDIA): frames now stream ffmpeg → GPU → ffmpeg through pipes with
no temporary image files at all. End to end on an RTX 3080 it was about 1.4–1.8× faster than the classic engine
at 2× and 2.3–3.6× faster at 4× (output quality matches: SSIM 0.993). Settings → GPU jobs picks Auto or Classic
(ncnn); the Video Upscaler card offers a one-click install (about 5 GB) when it isn't set up. Model weights are
official Real-ESRGAN releases downloaded once, checksum-pinned. Any failure falls back to the classic engine
automatically, and cancelling removes the partial file. - GPU video encoding (NVENC): AI video jobs encode on the GPU when it works (H.264 up to 4096 px wide, HEVC
above), falling back to x264 on any failure. Settings → GPU jobs can force the CPU. - Show live logs: every task card (and each Library row) has a "Show live logs" toggle that tails what the
job's tools are printing right now (yt-dlp, ffmpeg, the upscalers, Whisper, Demucs) plus the pipeline's own
steps (e.g. "Chunk 2 of 5: upscaling"). Logs live in memory only. - GPU subtitles (NVIDIA): the Subtitles card offers a one-click "Add GPU support" (about 2.3 GB: the CUDA 12
runtime libraries Whisper's GPU engine needs, installed into OPNduck's own Python environment, nothing
system-wide). In testing a 20-second clip with thesmallmodel took 5 s instead of about 45 s on the CPU. If
the GPU can't be used, subtitles still fall back to the CPU automatically. - AI models stay loaded between files: AI Audio (Demucs) and Subtitles (Whisper) now run in a background
worker that keeps the model in memory, so a batch only pays the load cost once (second Demucs job: 4.3 s →
0.9 s on a 20-second clip). The worker exits after 60 s idle so it doesn't hold GPU memory, and cancelling a
job simply restarts it. - Long videos no longer need huge temp space: video upscaling and frame interpolation now work in
chunks (the video is split without re-encoding, each chunk is processed and encoded on its own, then the
chunks are joined with the original audio). Temp disk use is bounded by one chunk (about 2.5 GB) instead of
every frame of the video; a 12-second test clip dropped from 226 MB to 59 MB (upscale) and 74 MB to 21 MB
(interpolate) with identical frame counts and duration. Each chunk reloads the model, so very short clips
can take a little longer. - Smaller install: the app archive no longer carries 105 MB of UI libraries that were already bundled
into the page (50 MB → 1.4 MB), and only the English Chromium locale ships. Unpacked app 332 → 276 MB,
AppImage 136 → 124 MB. Library, Settings and Plugins load when first opened (main script 549 → 492 KB). - Faster AI video jobs: the upscaler and frame interpolator now load, process and save frames in
parallel (measured on an RTX 3080: video upscale ~27% and interpolation ~20% faster end to end on a
small clip; up to 2× on the GPU step alone). Settings → GPU job speed has a Low memory mode for older
GPUs, and a job that fails right away on the fast setting retries once on the conservative one. - The Library no longer re-sends and re-renders hundreds of finished rows on every progress tick, and
long histories load 60 at a time. Stale temp folders from interrupted jobs are cleaned at startup.
Known issues
- Windows installers are built from Linux via wine and are still untested on real Windows.
- The PyTorch upscaling engine, NVENC and GPU subtitles need an NVIDIA GPU; other GPUs use the classic engine.
- No AUR publication and no artifact signing yet (deferred).
OPNduck v0.4.0-Beta
OPNduck v0.4.0-Beta
First Beta. Free, open source (GPL-3.0), local-first: your media never leaves your machine. Expect bugs and report them on GitHub.
First Beta. The Tauri migration is still postponed (WebKitGTK on Linux stutters/crashes with
NVIDIA + Wayland); OPNduck stays on Electron.
Added
-
Subtitles card wired to faster-whisper (uses your own Python 3 with
faster-whisper
installed; setOPNDUCK_PYTHONto point at a venv). -
Background setting (Settings → Appearance): Flat is now the default; Gradient
restores the theme's fade. In flat mode cards are lifted slightly so they never blend
into the page. -
Update check (notify-only): on launch OPNduck asks GitHub whether a newer release
exists and offers Download / Later / Skip this version; Settings → System → Updates has an
on/off switch and Check now. Nothing is installed automatically. -
Windows smoke-test GitHub workflow (
windows-smoke.yml). -
Downloader power-ups: 8K (4320p) and 1440p quality; subtitles (uploaded or auto-generated, any
language the video offers, saved as .srt, optionally embedded, or subtitles-only); dubbed/multi-language
audio tracks saved as separate MP3 files; 360°/3D tags; whole channels, search results, Watch Later and
Liked lists with a "first N" choice; a proxy setting (Settings → Downloads); and Smart mode, which
remembers your choices for every new download (card and command palette). -
Sign-in for private content (Settings → Downloads): use your browser's login (Firefox, Chromium,
Chrome, Edge, Brave, Opera, Vivaldi, with an optional profile), acookies.txtfile, or OPNduck's own
sign-in window (separate session; only cookies are saved, in a private file, deleted by Sign out).
Unlocks Watch Later, Liked videos, private playlists and age-restricted media. Includes a Test sign-in
button. -
Library management: search, filter by type and status, and sort (newest, oldest, name, size,
status); batches (several files started together, or a download plus its audio tracks) show as one
collapsible group with Cancel all and Retry failed; remove single entries; Export the history to a
JSON file and Import it back (add to history, or add and run again) — imports are re-validated,
so a hand-edited file can't smuggle in anything the app wouldn't accept. History now keeps 500 entries. -
Subscriptions (Library → Subscriptions, or "Subscribe to new uploads" on a channel/playlist link in
the Downloader): new uploads download automatically. Checked shortly after launch and then hourly
while OPNduck is open; only future uploads by default (optionally the latest 3/5/10 too); a failed
download is retried on the next check (up to 3 times per session); desktop notification when something new starts. -
AI Audio card (Demucs): remove vocals (instrumental), extract vocals / remove background music,
isolate a voice (vocals + speech cleanup), and a basic ffmpeg echo & noise reduction mode. Works on
audio or video files (optionally putting the processed audio back on the video), outputs MP3/FLAC/WAV.
Needs Python withtorch,demucsandsoundfile(a venv at~/.opnduck-venvis found automatically, or setOPNDUCK_PYTHON); the card
shows the install command when it's missing.
Changed
- Job queues: downloads run 3 at a time, conversions 2, GPU jobs (upscale, interpolation, AI audio) 1;
the rest wait in line. - Output files never overwrite each other: names are reserved when a job is queued, so batch items
with the same file name get a numbered suffix. - Many hardening fixes from the pre-beta audits: stricter validation of imports, settings and
sign-in windows, safer folder opening, subscription retry limits, and MP4-safe video output for
AI Audio. - Command palette default shortcut is now Ctrl+K (existing rebinds are untouched).
- Dependency refresh (Electron, framer-motion, oxlint).
Performance
- Removed the per-card
backdrop-filter(a no-op blur that cost a compositing layer on every
card), the six animated blurred background blobs (invisible but still drawn every frame) and
the whole-page blur animation on page switches. Measured on the packaged UI: idle ~103 → ~200
fps, scrolling ~97 → ~199 fps, page switching ~60 → ~160 fps. - Job-progress updates are coalesced (max one per 120 ms) so a running upscale no longer
re-renders every card dozens of times a second. - Removed unused theme tokens, dead code and a leftover platform helper.
Fixed
- Keyboard shortcuts with Ctrl no longer miss letters/Space on input methods and non-US
layouts (shortcuts read the physical key). - Windows: LibreOffice is found outside PATH; yt-dlp output is forced to UTF-8.
Known issues
- Windows installers are built from Linux via wine and are still untested on real Windows.
- AI Audio: real-music separation quality has only been checked on speech. The Demucs install is
large (about 5.5 GB including the CUDA libraries). - Signing in inside the built-in window may be refused by Google; use browser cookies instead.
- A Library with a very large history is not virtualized; task updates still include history;
stale temp folders are not swept at startup; the Smart download panel has no "first N" limit
for channels. - No AUR publication and no artifact signing yet (deferred).
Downloads
- Linux:
OPNduck-0.4.0-beta.AppImage,opnduck-desktop-0.4.0-beta.pacman - Windows (untested on real Windows):
OPNduck.Setup.0.4.0-beta.exe(installer),OPNduck.0.4.0-beta.exe(portable)
Checksums (SHA256)
8777d1a84614df6d5387e465a74950866006d26ff855957e496771f60bc91ac8 OPNduck-0.4.0-beta.AppImage
828361c6230849600f04d96eb036c942c267c4956d771a1d1e86fe0a4e3de08b OPNduck.0.4.0-beta.exe
a09b47334ee452f38bbb3cc2d672b1ac358ea09a6400c5d9edbcbc6fc62786aa opnduck-desktop-0.4.0-beta.pacman
478701d559872d2ddc351330a4e4f3b2abca02c167f310b112a9807fc7c70974 OPNduck.Setup.0.4.0-beta.exe
OPNduck v0.3.2-Alpha
Fixed
- Jobs started from Home now keep showing their progress after you navigate
away and back, and the card's button stays disabled while they run.
Previously leaving the page made the card forget its jobs, so it was easy to
start duplicates by accident (for example 50 upscales). - Video Upscaler and Frame Interpolation now return their task immediately, so
a progress bar appears right away instead of only after the whole job
finished.
Added
- Drag & drop: drop files onto the Converter, Image Upscaler, Video Upscaler
and Interpolation cards, and drag a link onto the Downloader. Dropping a file
elsewhere in the window no longer replaces the whole UI. - Library history now persists across launches, with Open folder, Run again
and Clear finished. - Per-card presets (Downloader, both Upscalers, Interpolation). The Converter
gets one-click format presets and "Save as preset" in the format picker.
Tauri migration: still POSTPONED
Unchanged: the Tauri v2 migration is archived on the tauri-migration-phase1
branch but is postponed and not shipping. Tauri uses WebKitGTK on Linux,
which stutters/lags and can segfault with hardware compositing on the NVIDIA
proprietary driver under Wayland (an upstream platform bug, not an OPNduck
bug). OPNduck stays on Electron.
Known issues
- Windows installers are built from Linux via wine and are untested on Windows.
- Drag & drop of real files from a file manager was only tested at the code
path level, not by hand. - No AUR publication and no artifact signing yet (deferred).
Checksums (SHA256)
60111aa5a29bb8f105ddfea6ac8a46eef68ef3f4cdd3498feeeff6227623ca78 OPNduck-0.3.2-alpha.AppImage
0a22766d3a416b29f505eefdf84873799e4e2ed8148630c4966ea112dcf26ea8 OPNduck.0.3.2-alpha.exe
f7b151e8f4e8c594a246090929bf56d5646db23d9c918a16247051e51afca197 opnduck-desktop-0.3.2-alpha.pacman
77e37ede2e404ea892390cb938229af6972ee30565cab066dfa176fdc30facc2 OPNduck.Setup.0.3.2-alpha.exe
OPNduck v0.3.1-Alpha
Hotfix. Everyone on v0.3.0-Alpha should upgrade.
Fixed
- Critical: installed/packaged v0.3.0-Alpha builds opened a blank,
transparent window.electron/main.cjspassed a bare filesystem path to
win.loadURL(), which no longer navigates on Electron 44.7 (it worked on
44.1). The built UI is now loaded withwin.loadFile(). Dev mode was
unaffected, which is why it was not caught before release. The packaged
Linux build was verified to render before this release was published. - Batch conversions are now capped at 2 running at once.
- Video upscale/interpolate outputs are always
.mp4. - Cancelling a LibreOffice conversion now kills the whole process tree (no
orphanedsoffice.bin).
Security / hardening
- Only
http(s)links are accepted; IPC requests are validated; Spotify
lookups are restricted toopen.spotify.com. - A Content-Security-Policy was added to the renderer.
Changed
- Full keyboard navigation in dropdowns.
- Command-palette downloads now offer the playlist choice.
Tauri migration: still POSTPONED
Unchanged from 0.3.0: the Tauri v2 migration is archived on the
tauri-migration-phase1 branch but is postponed and not shipping. Tauri
uses WebKitGTK on Linux, which stutters/lags and can segfault with hardware
compositing on the NVIDIA proprietary driver under Wayland (an upstream
platform bug, not an OPNduck bug). OPNduck stays on Electron.
Known issues
- Windows installers are built from Linux via wine and are untested on Windows.
- No AUR publication and no artifact signing yet (deferred).
Checksums (SHA256)
49f18b19495a7b795be7f552eaaea2a6ea8079576096cec2b1363df475b287df OPNduck-0.3.1-alpha.AppImage
1268dc3f640fb6cc622af1d2b5a6849469f37c4eeee14d7aa38505e47cd09040 OPNduck.0.3.1-alpha.exe
7e1853399eb0ef6d23eb225eafe52c075306ba483aa4518320b3a6c19905005d opnduck-desktop-0.3.1-alpha.pacman
6fceb6752a1edbf6b52e23e2d68cfa83caddd51ef074c85a748f7eec9c6fe397 OPNduck.Setup.0.3.1-alpha.exe
OPNduck v0.3.0-Alpha
Known broken: installed builds open a blank window — use v0.3.1-Alpha instead.
Largest feature release since 0.2.0: a rebuilt multi-format Converter, YouTube
playlist downloads, AI upscaling/interpolation cards, a lot of UI polish, a
dependency security pass and an audit-hardening pass.
Tauri migration: POSTPONED
The Tauri v2 migration was fully built (Rust backend, ported pipelines,
vendored Windows sidecars) and is archived on the tauri-migration-phase1
branch, but it is postponed and not shipping. Tauri uses WebKitGTK on
Linux, which stutters/lags and can segfault with hardware compositing on the
NVIDIA proprietary driver under Wayland (an upstream platform bug, not an
OPNduck bug). OPNduck stays on Electron until that is fixed upstream; it
may be revisited for Windows (WebView2) or non-NVIDIA Linux.
Added
- Multi-format Converter (rebuilt): video/audio/image via ffmpeg and
documents (PDF, DOCX, ODT, RTF, TXT, HTML) via LibreOffice, with a big
format-picker window, a supported-formats panel and per-tool gating when
ffmpeg or LibreOffice is missing. - YouTube playlist downloading in the Downloader; Run Task is blocked
until the link check finishes and the playlist is probed in parallel. - AI Image Upscaler, AI Video Upscaler (multi-file queue) and AI frame
interpolation (RIFE) cards, plus rebindable keybinds. - Hidden "Synced with Omarchy" theme with square corners.
- Real SVG icons instead of emoji/text glyphs.
Changed
- Motion & Density settings now apply app-wide.
- Home grid lays out with equal-height rows and no gaps.
- Dropdowns are portaled and no longer render underneath neighbouring cards.
- Electron 44.1 to 44.7, React/React DOM 19.3, TypeScript 7.0, framer-motion
14.1, Vite 8.3, plus minor bumps (react-router-dom, Tabler icons, oxlint,
wait-on, React types).@types/node26 (Electron 44 bundles Node 24, so
types are slightly ahead of the runtime).
Fixed / Security
- yt-dlp option-injection fix (hardened spawning); cancel, preview and picker races.
- Better error messages, ffmpeg stream mapping and theme fallback.
- Dependency advisories cleared.
concurrently10.0.6 pulls the patched
shell-quote(critical command injection);npm audit fixpatched
brace-expansion,http-cache-semantics,joi,source-map-js,undici
andfast-uri. The only remaining advisory is a dev-only moderate chain
underelectron-builder(sprintf-jsviaroarr/global-agent); the sole
offered fix downgradeselectron-builder, so it is left until upstream fixes it.
Known issues
- Batch conversions start all jobs at once (no concurrency cap).
- Video upscale/interpolate output extension follows the input container.
- Cancelling a LibreOffice job may leave a
soffice.binorphan process. - No URL scheme allow-list or IPC input validation (low exposure; the window is sandboxed).
- No Content-Security-Policy.
- GlassSelect has no keyboard navigation.
- Linux packaging is only built where possible; no Windows/AUR publication in this release.
Checksums (SHA256)
0817a03b7186545dcf45fad9c89ea2ef94666914fa0fb0b4a7e4c11cad41aa2d OPNduck-0.3.0-alpha.AppImage
02e9e2a8860df2e5699ae3ba7aab0c93906a31b9646dfd014499b9b6f4e3aafd OPNduck.0.3.0-alpha.exe
df4a74b266649ab265af6fc32e8d97bd91981faba8ceb1ca54c7953ff3c027f1 opnduck-desktop-0.3.0-alpha.pacman
bec47b7242114286575ddf6d8e2e1a05cf2ddfe3e7a38431d9a290c96ae1a38a OPNduck.Setup.0.3.0-alpha.exe