Microfish
Microfish: windows in columns on a strip, with the minimap along the bottom of the screen

Microfish

Microfish is a scrolling, tiling window manager for macOS, in the style of niri and PaperWM. Windows sit in columns on a strip that scrolls sideways. A column can hold a stack or a set of tabs, and optional rows put several strips on one display. A three-finger swipe scrolls the strip, and a minimap shows where you are.

Download Microfish 0.1.0-beta.1

beta · 11.0 MB · macOS 15 or later, Apple silicon

Microfish is in beta; there is no stable release yet. It is built for macOS 15 and has only been tested on macOS 27. All releases

What it does

Swipe. A three-finger swipe scrolls the strip sideways and it glides to a stop. Holding Hyper and scrolling does the same.
Focus and move. Hyper ← → focuses the neighboring column. Add ⇧ to swap the focused window with it.
Widths. Hyper R cycles a column through a third, a half, two thirds and the full width of the screen; with ⇧ it cycles back. Hyper F is full width and Hyper C centers.
Stacks and tabs. Hyper [ and ] stack the focused window into the column to its left or right. Hyper T shows a stack as tabs, with a folder-style tab bar, and Hyper K J switch between them.
Rows. Rows are off by default. Turn on Virtual rows in Settings › Rows, and Hyper ↑ ↓ moves between strips stacked vertically on the display.
Minimap. Holding Hyper, swiping or scrolling shows a minimap of the strip. Settings › Minimap picks its style (Cards, Compact or Titles), position and timing.
Window map. Left-click the menu-bar icon for a map of every row and column. You can drag a column to another row, and the Views menu saves and recalls arrangements.

Install

  1. Unzip the download and move Microfish into the Applications folder. Microfish only runs from there (or from ~/Applications).
  2. Open Microfish. macOS says it was downloaded from the internet and asks whether to open it. The app is signed with a Developer ID and notarized by Apple, so choose Open. A menu-bar icon appears.
  3. If Microfish says it needs your approval, open System Settings › General › Login Items & Extensions and allow the Microfish background item (it may be listed as Microfish or Microfish Engine), then open Microfish again.
  4. When the alert “Allow Microfish to Control Windows” appears, choose Continue. Then turn on both Microfish Engine and Microfish in System Settings › Privacy & Security › Device Control and Data Access. On macOS before 27 that pane is called Accessibility. Windows start tiling once the engine has access.
  5. If three fingers already switch full-screen apps, set System Settings › Trackpad › More Gestures › Swipe between full-screen applications to four fingers, or change Microfish to four fingers in Settings › Behavior › Swipe with.

Screen Recording is optional. It is only used by Match selected tab to app color in Settings › Appearance. Microfish has no network access apart from update checks, and it collects nothing.

Hyper is Control-Option-Command (⌃⌥⌘). Caps Lock can be mapped to Hyper with Karabiner-Elements (optional). Every shortcut can be changed in Settings › Shortcuts. The full list of default keys is in the README.

Homebrew

brew trust elenaonline/tap
brew install --cask elenaonline/tap/microfish

The cask installs the newest published build, which today is the beta. Homebrew 7 refuses casks from a tap you haven’t trusted, which is what the first line is for. Older Homebrew has no brew trust; skip that line there.

Updates

Microfish uses Sparkle to check this project’s releases. Every update is code-signed and notarized by Apple, and signed with an EdDSA key that the app checks before installing. Before an update replaces the app, Microfish stops the engine cleanly (it saves your session), then relaunches.

In Settings › Updates, Automatically check for updates is on by default and Automatically download and install updates is off. Check for Updates… is in the menu-bar menu.

Get beta updates is off by default. Every release so far is a beta, so a copy of 0.1.0-beta.1 is offered nothing newer until you turn that switch on. Turning betas off never downgrades you: you stay on the beta until a newer stable version arrives.

Uninstall

  1. Choose Quit Microfish from the menu-bar icon.
  2. Drag Microfish out of Applications into the Trash. With Homebrew, run brew uninstall --cask microfish instead.
  3. Optional: remove Microfish and Microfish Engine from Device Control and Data Access (Accessibility before macOS 27), and check Login Items & Extensions for a leftover Microfish item.
  4. Optional: delete what Microfish wrote:
    rm -r ~/Library/"Application Support"/Microfish ~/Library/Logs/Microfish
    rm -r ~/Library/Caches/net.webreceptor.microfish ~/Library/HTTPStorages/net.webreceptor.microfish
    defaults delete net.webreceptor.microfish

Requirements and known limits

The README has the rest.