SoquelBeta

The last file manager you'll ever need. And it's open source!

Version 1.7.0 · Free and MIT licensed · Apple silicon · macOS 13 or later

Soquel is in beta. Version 2.0 will be the first alpha release.

Views

List view ⌥⌘1
Rows and columns. Click a header to sort.
Icon view ⌥⌘2
Files as icons, with a slider for how big.
Column view ⌥⌘3
One column per folder level, left to right.
View-mode pill
One control to switch between the three views.
Thumbnails in icon view
Icons show the actual picture, page or video frame.
Sort by name, size, kind, date, extension or created ⌃⌘1⌃⌘6
Or click a column header.
Multi-column sorting
Shift-click a second header to break ties.
Auto-sized columns ⌥⌘=
Widths snap to fit the longest name in the folder.
Metadata columns
Show dimensions, duration, codec, camera and more as columns.
Preview and details panel ⌥⌘I
A side panel with the preview, dates, permissions, owner and a checksum.
Quick Look Space
The same spacebar preview as Finder.

Panes and tabs

Nested pane splits ⌘D ⇧⌘D
Split a pane in two, and split those again.
Up to four panes, tabs in each
⌘1–⌘4 to focus a pane, ⌘T for a new tab.
Session restore
Reopens the panes and tabs you had last time.
Named workspaces
Save a pane layout under a name and reopen it later.
Pane toolbar
A filter box and buttons you choose, above each pane.

Moving files

Create, rename, duplicate, copy, move, trash, delete
If one file fails the rest still go, and it names the one that failed.
Rename in every view
Rename from list, icon or column view.
Conflict handling
Keep both, replace or skip, with both sizes and dates shown.
Folder merge on conflict
Merge two folders instead of replacing one with the other.
Undo ⌘Z
Undoes rename, create, duplicate, trash and move.
Clean This Folder ⌃⌘L
Proposes where the files should go, shows the exact request and every move first, then offers to undo the entire clean in one step. Local AI is recommended: Ollama, LM Studio and llama.cpp need no key and keep the request on your Mac. Use hosted APIs only for approved data; protected health information requires an executed BAA. Opt-in under Settings › Clean.
Transfer queue ⌥⌘J
See copies in progress, and pause, resume or cancel each one.
Selection shelf ⌃⌘A ⌃⌘B
Collect files from several folders, then move them all at once.
Batch rename
Rename many files at once, with a preview before it happens.
Cut and paste in the context menu
Right-click cut, then paste where you want it.
Drag and drop
Between panes, and to and from other apps.
New File templates
Make an empty text, Markdown, JSON, Swift, Python, shell, HTML or CSV file.
Folder comparison and sync ⇧⌘K
Compare two folders and copy the differences one way.

Finding things

Search panel ⌥⌘F
Search names or contents, by plain text, regex or glob.
Search by meaning ⌃⌘F
Finds a file by what it is about, not the exact words. Runs on your Mac.
Search says what it skipped
Tells you how many files it could not read, so nothing looks like a clean zero.
Search ranking
Name matches come before content matches.
.gitignore-aware search
Optionally skip whatever the repository ignores.
Saved searches
Keep a search in the sidebar and run it again.
In-folder filter /
Type to narrow the folder you are in.
Command palette ⇧⌘P
Type the name of any command instead of hunting the menus.

Getting around

Breadcrumbs and an editable path bar
Click the path to type or paste one.
History, enclosing folder, Git root
Back, forward, ⌘↑ for the parent, and a jump to the repository root.
Folder tree ⇧⌘T
The folder hierarchy in the sidebar.
Sidebar groups
Sort your pinned folders into named sections.
Pin to the sidebar
Drag a folder in to keep it there.
Custom sidebar icons
Give a pinned folder any emoji or symbol, and a different display name.
Keyboard-first preset
vi-style keys: j and k to move, h and l to leave and enter.
Remappable shortcuts
Change any shortcut by pressing the keys you want.

Knowing what is there

Disk map ⇧⌘U
A ring chart of what is using the space, biggest first.
Folder sizes
An optional column showing how big each folder is.
Git status
Marks changed files, and folders with changes inside.
Archive browsing
Look inside a zip, tar, 7z or rar without unpacking it.
Copy path, six formats
Absolute, file URL, filename, no extension, parent, shell-escaped.
Compare two files ⌥⌘D
A unified diff, with both sets of line numbers. Patches open in it too.
Branches ⇧⌘B
Every local branch, ahead and behind, and a diff against the current one. Switching is a beta setting and refuses a dirty tree.
Recents ⇧⌘Y
The files you touched and the actions you took, newest first.
Hide from screen sharing ⌃⌘P
Every window is left out of a screen share, a recording and a screenshot, and stays on your own screen as it is.
Hidden files ⇧⌘.
Show or hide dotfiles.

Reaching other places

Connect to Server ⌃⌘K
Mount SMB, AFP, NFS, WebDAV or read-only FTP. No password goes through Soquel.
SFTP with nothing to install
Type what you would type for ssh. No macFUSE, no sshpass, no kernel extension.
The SFTP password never reaches the command line
It goes to ssh over a pipe, and is not stored.
One SFTP connection, reused
You are asked for the password once. Browsing after that does not reconnect.
Cloud drives in the sidebar
iCloud Drive, Google Drive, Dropbox, OneDrive and Box, wherever they are installed.
Terminal and editor ⌃⌘T ⌃⌘E
Open the current folder in your terminal or editor.
Open With, and set the default
Open a file in any app, or change what opens that type everywhere.
Choose what opens each kind of file
Twenty-three file kinds in one Settings table.
A prompt before slow applications
Asks first before launching Xcode, Android Studio and the like.

Making it yours

Settings as one JSON file
settings.json. Edit it in any editor and the app picks it up without restarting.
Customisable colours
Seven colour slots, set separately for light and dark.
Ready-made palettes
Eight to pick from, or edit theme.json yourself.
Background image
Any image behind the file list, with opacity and five fit modes.
Designed light and dark palettes
Numbers are monospaced, so columns of them line up.
Settings window ⌘,
Appearance, Themes, Keyboard, Applications, Window and Updates.

When something goes wrong

Logging
Every notable action goes to a dated file in ~/Library/Logs/Soquel/.
Copy Recent Logs
Puts the last three minutes on the clipboard, ready to paste into a bug report.

Questions

Is it safe to open? It is not from the App Store.
It is signed with an Apple Developer ID and notarised by Apple, so it opens with a normal double-click and no warning. Notarising means Apple has scanned the build; it does not mean Apple endorses it.
Desktop, Documents and Downloads look empty.
Those folders are protected by macOS and need Full Disk Access. Soquel offers to set it up on the first launch, and the same window is under Soquel → Set Up Permissions… A file manager cannot grant itself that, and neither can anything else: the list is protected by System Integrity Protection precisely so no program can add itself to it.
Can Soquel replace Finder?
Not entirely, and no application can. macOS keeps folders for Finder — the call to reassign them is refused. Disks can be reassigned, so double-clicking one opens it here, and anything can be opened in Soquel through Open With.
Does it send anything anywhere?
There is no account and no telemetry. Search by meaning runs on the language model macOS already ships. Clean This Folder is off by default; if enabled, Ollama, LM Studio and llama.cpp keep its request local and are the recommended choice. A hosted provider receives the exact text shown by Show What Would Be Sent; use one only for approved data, and never send protected health information without an executed BAA. Hidden files are skipped, secret-bearing files are not opened and key-shaped text is removed first. Separately, the opt-in update check asks github.com for the latest release tag and sends nothing about you or your machine.
Where does it keep my settings?
Three readable JSON files in ~/Library/Application Support/Soquel/: settings (the sidebar included), colours and saved layouts. Edit one in another editor while Soquel is running and the window redraws. Deleting the folder resets everything.
Is it really free?
Yes.
Where do I ask a question or report something?
Two places, pick whichever fits. soquel.hamlet.so is a forum — plain questions, "how do I", "this is behaving oddly", ideas. No GitHub account needed. GitHub issues is for bug reports with steps to reproduce, and feature requests you want tracked against the code.

Changelog

1.7.0

27 Aug 2026 notes
  • Local AI comes first. Ollama, LM Studio and llama.cpp are first in the provider picker, Ollama is the default, and the app recommends the local path because it needs no key and keeps the request on your Mac.
  • Hosted use requires an explicit data approval. Before adding or using a hosted API key, confirm that the provider is approved for the files and that an executed BAA covers any protected health information.
  • Removed stale Keychain wording left in the provider interface. Keys live in Soquel's separate mode-0600 credentials file.

1.6.0

27 Aug 2026 notes
  • Clean This Folder says what it did, and offers to put it back. How many files went into how many folders, with an Undo button beside Done. The whole clean is one step, so nothing has to be unpicked file by file.
  • Fixed: the panel could wedge. Both “Show What Would Be Sent” and the provider picker opened a sheet on a sheet, which never presents and still blocks its parent — every click beeped and force quit was the only way out.
  • Fixed: pressing a button before the folder had been read crashed.
  • Fixed: the ✦ button never reached the toolbar, and the API key is now a 0600 file rather than a Keychain item that asked for a password on every update.

1.5.0

26 Aug 2026 notes
  • Clean This Folder ⌃⌘L, a beta you turn on in Settings › Clean. Reads one folder and suggests where things should go, as moves you tick. Nothing moves until you say so, and the whole clean undoes as one step.
  • Ask whichever service you like, or none: Ollama, LM Studio and llama.cpp run on your own machine and need no key, and Soquel finds the one you already have running. OpenRouter, Anthropic, OpenAI, GLM, DeepSeek, Groq and Together are a click each, or type in any address that speaks either format.
  • The only feature that sends the contents of files anywhere, so: hidden files are not read, files whose names suggest a secret are never opened, anything shaped like a key or a password is removed first, and a button prints the exact text before it is sent. Your files on disk are never altered by any of that.
  • Mark a folder as global and things can be filed into it from anywhere. Write a sentence about what a folder is for and Soquel is told it. A plan may not move a file anywhere else.

1.4.0

24 Aug 2026 notes
  • Launch Soquel from Terminal. Settings › General installs the soquel command; run it on its own or give it one or more folders to open.
  • The installer puts the command in /usr/local/bin, asks for administrator approval only when needed, and asks before replacing a file already using that name.

1.3.0

21 Aug 2026 notes
  • Update channels. The middle number is a finished release, the last one is a nightly, so 1.3.0 is finished work and 1.3.1 would be the day's. Settings › Updates picks which you follow.
  • Soquel can install an update itself — it checks the download is signed by the developer before replacing anything, and refuses outright if it is not. Off until you turn it on.
  • A faulty-build notice. If the version you are running has been withdrawn, Soquel says what breaks and offers one click to the fix and one back to the last good version.
  • Settings › Default App. Finder starts, Soquel takes over, Finder quits — covering the Dock's Finder icon and Reveal in Finder. Also mounted disks, and hiding the desktop icons. One button gives all of it back.
  • The Git column explains itself. Hovering a badge says what Git thinks and what would change it; the column header carries the whole legend.

1.1.1

19 Aug 2026 notes
  • Fixed: a branch whose name begins with a dash was passed to git as an option. git diff --output=<file> writes over that file, so Diff with Current could empty one of your files with one click. This withdrew 1.1.0.
  • Fixed: the diff panel dropped every blank line and numbered every line after one too low.
  • Fixed: parsing a patch was quadratic and ran on the main thread — 16,000 lines froze the window for 8.3 seconds. It is linear now, and off the main thread.
  • Fixed: opening a .diff had no size limit. It refuses over 8 MB, as comparing two files already did.
  • Fixed: extracting one entry of an archive could reveal an unrelated file outside the extraction folder.
  • New: a faulty-build notice. If the version you are running has been withdrawn, Soquel says so and offers one click to install the fix and one to go back to the last good version. Both check the signature first. Settings › Updates turns it off.

1.1.0 — withdrawn

18 Aug 2026 removed

Withdrawn — do not use. In the Branches panel, Diff with Current on a branch whose name begins with a dash can empty one of your files. Git reads the name as an option rather than a branch. Use 1.1.1. This release has been removed and can no longer be downloaded.

  • Compare two files ⌥⌘D. A unified diff with both sets of line numbers. A .diff or .patch opens as a diff instead of grey text.
  • Branches ⇧⌘B. Every local branch with ahead and behind counts, and a diff against the one you are on. Switching branches is a beta setting, off by default — with it on a switch is refused while there are uncommitted changes rather than stashing them for you.
  • Renumber a batch that is already numbered. Close a gap, start somewhere else, or insert in the middle, keeping the rest of every name.
  • Recents ⇧⌘Y. What you opened, moved, renamed and trashed. Recording costs 2.2 microseconds and the file is written on a timer, not per action.

1.0.11

17 Aug 2026 notes
  • Hide from screen sharing, on ⌃⌘P. Every Soquel window is left out of a screen share, a recording and a screenshot, and stays on your own screen exactly as it is. macOS refuses to make an image of the window at all, so nothing you forgot to hide can leak.
  • A General pane in Settings holding every switch that used to live only in the command palette: hidden files, folders first, Git status, folder sizes, column fitting, per-folder views, the preview panel, the folder tree, sync browsing, keyboard-first keys and verified copies.

1.0.10

17 Aug 2026 notes
  • The pane toolbar disappeared for good below about 820 pt of window width. It scrolls now, so every button stays reachable at any size.
  • The breadcrumb keeps the folder you are in on screen instead of cutting it off the end.
  • The sidebar notices volumes as they mount and unmount. A disk image did not appear until the next launch.
  • Clicking the Dock icon with no window open makes one.

1.0.9

17 Aug 2026 notes
  • Eject a mounted disk image, external drive or network share from the sidebar — a button on the row, or Eject in its context menu. Installers no longer sit there mounted with no way to get rid of them.
  • ⌘W closes the window and leaves the app running. ⇧⌘W quits. Close Tab moved to ⌥⌘W, Close Pane to ⌃⌘W.
  • A copy-path button in the address bar. It was reachable only from a menu or a shortcut before.

1.0.8

15 Aug 2026 notes
  • 209 bug fixes.
  • Reading a folder of 1,000 files: 50 ms → 10 ms. Copying 4,000 files: 31 a second → 2,000 a second.
  • Drag and drop only worked list-to-list. It works in icon view, column view and onto the sidebar now.
  • Double-click did nothing in icon view.
  • A file named -m made Compress delete the other files you selected.
  • A typo in a hand-edited settings.json wiped every setting on the next save.
  • ⌘W quit the app when the window had one tab.
  • Five of the six settings panes were blank.
  • Undo was greyed out after every file operation.

1.0.7

7 Aug 2026 notes
  • Command palette moved from ⌘K to ⇧⌘P. ⌘K is unbound.
  • SFTP and cloud drive entries added to the feature search; they shipped in 1.0.6 unlisted.
  • Changelog added to this page.

1.0.6

6 Aug 2026 notes
  • SFTP over /usr/bin/sftp. No macFUSE, no sshpass, no kernel extension.
  • SFTP password passed via SSH_ASKPASS pipe, not argv. Not stored.
  • SFTP holds one ControlMaster connection; later operations skip the handshake.
  • SFTP is a browser window, not a mount. Other applications cannot see the files.
  • Connect to Server infers sftp:// from user@host.
  • Sidebar lists iCloud Drive, and any provider under ~/Library/CloudStorage.
  • Fixed: empty password segfaulted — window released inside the alert's dismissal.
  • Fixed: SFTP hit the mount check and was rejected before the browser opened.
  • Fixed: tree folder expansion was never persisted; only sidebar groups were.
  • Fixed: navigating a pane scrolled the sidebar and moved its selection.
  • Fixed: sidebar click called focusTable(), so arrow keys never reached the outline.
  • Fixed: Themes tab widened the Settings window. Panes are pinned to the tab view width.
  • Fixed: Escape did not close Settings.

1.0.5

6 Aug 2026 notes
  • Rename edits in place in list, icon and column view. Base name selected, extension excluded.
  • Return commits, Escape cancels, click elsewhere commits.
  • Fixed: editColumn(0,…) targeted the Git column, which has no text field. Name column now looked up by identifier.
  • Fixed: editor had no opaque background; row highlight and old name showed through.
  • Fixed: commit ran inside the dismissing click, collapsing parent columns in column view.
  • Fixed: editor frame grew from the cell origin, drawing half a row high.

1.0.4

6 Aug 2026 notes
  • Reads .DS_Store for view mode, sort column and icon size. Never writes one.
  • Soquel's own per-folder settings take precedence over Finder's.
  • ⌘A in list, icon and column view.
  • -click and -click in column view.
  • Column widths and column-view width draggable, clamped to a minimum.
  • Icon view zoom.
  • HTML preview via WKWebView.
  • Fixed: two filter fields were on screen at once.

1.0.3

5 Aug 2026 notes
  • Fixed: tab bar invisible in every build shipped. .fullSizeContentView put the top 28pt of each pane behind an opaque title bar.
  • Fixed: double-click and list-view rename did nothing. Pane read Prefs.viewMode while the list drew from its own mode.
  • Fixed: column view drew an empty pane, same cause.
  • Fixed: path bar emitted //Applications; a separator followed the root crumb.
  • Default sort is newest first. Folders no longer grouped above files.
  • Copy Path on ⌥⌘C.
  • Compress excludes .DS_Store, __MACOSX and ._*.
  • Themes install from a gist or a git repo. A repo can carry an image.
  • Window opacity applies to the window, not the background image.
  • Air, Windows 95 and Platinum themes.
  • Settings searchable.

1.0.2

3 Aug 2026 notes
  • Duplicate finder. Groups by size, hashes only on collision. Detects duplicate folders, not just files.
  • Verified copy. Checksums both ends, reports per-file pass or fail. Off by default.
  • Quick Look on a folder shows its contents.
  • Sync browsing. Off by default.
  • Make Symlink — ln -s, relative when link and target share a parent.
  • Folder tree lists files, five then an overflow row.
  • Show Package Contents in a window over the pane.
  • Tags, per-folder view settings, transfer retry, Run a Command Here.
  • Uninstaller matches both Name and com.vendor.Name support folders.
  • Warning before trashing on a network volume.
  • Opt-in update check.

1.0.1

27 Jul 2026 notes

First public release. 38 issues from an adversarial sweep closed. Seven could lose data:

  • Fixed: the test suite wrote over the user's colours.
  • Fixed: opening theme.json rewrote it with the shipped palette and dropped the background.
  • Fixed: folder sync wrote a file over a directory, deleting the tree, and reported one replaced file.
  • Fixed: replace deleted the destination before confirming the replacement landed.
  • Fixed: type-to-select only worked in list view — NSTableView implements it; nothing else did.
  • Fixed: thumbnail cancellation was a no-op; every generator ran to completion and was discarded.
  • Fixed: a failed regex reported "no matches" instead of an error.
  • Fixed: semantic search scoped to ~/Notes returned hits from ~/Notes-archive.
  • Fixed: disk map charged unreadable files zero bytes, so a protected folder read as empty.
  • Fixed: sidebar drops landed at the bottom regardless of target.
  • ⇧⌘L pins and unpins the current folder.

Pay what you like

The download is the whole thing. There is no paid version and nothing is held back from this one. That said, if you found it helpful, you can send USDC, USDT or ETH here:

Ethereum. Other chains tooWell established tokens are fine, including on Solana and Bitcoin. Shitcoins I burn on sight. They have destroyed the world of crypto.