Skip to content

Repository files navigation

Duetto icon

Duetto

A fast, keyboard-driven dual-pane file manager for Windows, macOS, and Linux.

License: MIT CI Latest release Downloads

Two panes, everything on the keyboard, and a window that feels native on every desktop. Copy and move between panes, browse remote servers over SFTP, search in an instant, and delete straight to the system trash.

Quick install

macOS - via Homebrew:

brew install --cask utopleman/duetto/duetto

Windows / Linux - grab the latest build from the Releases page.

Duetto is unsigned, so macOS blocks it on first launch: right-click the app and choose Open, or run xattr -dr com.apple.quarantine "/Applications/Duetto.app". See Install below for all download options.

macOS

Duetto on macOS

Windows

Duetto on Windows

Linux

Duetto on Linux

Features

  • Dual-pane, keyboard-first - view (F3), copy (F5), move (F6), delete (F8), rename (F2), new file/folder (F7); Tab switches panes, Enter opens, Backspace goes up.
  • Built-in file viewer - F3 on the cursor file (or a search result) opens a reusable viewer window: text with line numbers, a hex dump for binaries, images rendered inline, SVG drawn as vector art, and PDF pages rendered page by page (PgDn/PgUp or the arrow keys step pages). Works over every backend, local and remote. Ctrl/Cmd+F finds within the file, n/N step through matches, W toggles word wrap, Esc closes. Limits: the first 4 MB of a text or binary file is shown (with a footer notice and an Open in default app action), images up to 64 MB are decoded - anything larger falls back to a hex dump - and PDFs up to 128 MB are rendered.
  • Native on every OS - the window chrome adapts to Windows, macOS, and GNOME.
  • Remote over SFTP - save connections and browse or transfer files over SSH, with trust-on-first-use host-key verification. (setup & security)
  • Remote over SMB / Samba - connect to Windows shares and NAS boxes (SMB 2/3) with a pure-managed client; user/password/domain or guest, share browsing. (setup & security)
  • Remote over S3 - connect to Amazon S3 and S3-compatible stores (MinIO, R2, Wasabi, B2); access keys, AWS profile, or anonymous; the root lists your buckets. (setup & security)
  • Remote over Azure Blob - connect to Azure Blob Storage and Blob-compatible services (Azurite); account key, connection string, SAS, or anonymous; the root lists your containers. (setup & security)
  • Instant search - recursive, scoped to the current folder or a remote share.
  • Safe deletes - everything goes to the system trash: the Recycle Bin on Windows, the FreeDesktop trash on Linux, and the native macOS trash (with Put Back and correct handling of other volumes).
  • Remembers your workspace - window position, size, and maximized state, plus each pane's last folder, restored on the next launch.
  • Command line - duetto [folder] opens a folder in the left pane; a duetto launcher installs itself on your PATH the first time you run the app.

Install

Download the latest build for your platform from the Releases page:

Platform Download
Windows (x64) duetto-<version>-win-x64.zip
macOS (Apple Silicon) Duetto-<version>-arm64.dmg, duetto-<version>-osx-arm64.zip
macOS (Intel) Duetto-<version>-x64.dmg, duetto-<version>-osx-x64.zip
Linux (x64) duetto-<version>-linux-x64.zip

Builds are self-contained - no runtime to install.

macOS builds are unsigned. On first launch, right-click the app and choose Open, or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/Duetto.app

Command line: after launching once, duetto is on your PATH:

duetto .            # open the current directory
duetto ~/Projects   # open a specific folder

Build from source

Requires the .NET 10 SDK.

dotnet run --project src/Duetto                       # run the app
dotnet test tests/Duetto.Tests/Duetto.Tests.csproj    # run the tests

scripts/publish-all.sh          # self-contained zips for all platforms
scripts/make-dmg.sh osx-arm64   # macOS .dmg (osx-arm64 | osx-x64)

See CONTRIBUTING.md for more, and docs/remote-sftp.md for SFTP details.

License

MIT © 2026 UtopleMan

Third-party notices

The viewer embeds two rendering stacks whose licenses ship with every build:

Component Used for License
PDFium (via Docnet.Core) PDF page rendering BSD-3-Clause (PDFium), MIT (Docnet.Core)
Svg.Controls.Avalonia with Svg.Model, Svg.SceneGraph, ShimSkiaSharp SVG rendering MIT
Svg.Custom (transitive, from the same stack) SVG document model MS-PL

The PDFium native libraries are redistributed unmodified; their BSD-3-Clause notice is the LICENSE file inside each Docnet.Core runtime package.

About

Dual-pane file manager for macOS built with Avalonia, with SFTP remote support

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages