Tideline

Install

Homebrew or a disk image, either way it ends up in /Applications. macOS 14 or later, Apple silicon and Intel both.

With Homebrew

brew install --cask estruyf/tap/tideline

Or from the release

Open Tideline-<version>-macos-universal.dmg from the latest release and drag Tideline.app onto the Applications folder next to it. Then eject the image; nothing is left behind.

The zip attached to the same release is the same build, signed and notarized the same way. It is there because it is what Tideline downloads when it updates itself — an update should not have to mount anything — and either one installs by hand just as well.

“Unable to expand … It is in an unsupported format.” That download came from the Actions run page rather than the release. GitHub wraps every build artifact in a zip of its own, so it is a zip inside a zip — unpack it twice, or take the asset from the latest release instead, which is the app zipped once.

Why it wants to be in /Applications

That is where it keeps itself current. Tideline looks for a newer release once a day and offers it — see Updates — and replacing itself means being somewhere it can write.

That is also why a plain brew upgrade leaves it alone: the cask is marked as updating itself, so the two never race. Naming it is enough to take a version from Homebrew instead:

brew upgrade --cask estruyf/tap/tideline

brew upgrade --greedy does the same thing across every cask that updates itself, if that is how you would rather work.

What it is

Native Swift with no dependencies at all: about 3 MB to download, 9.6 MB on disk because it ships for both Apple silicon and Intel. No Electron, no bundled runtime, no helper process quietly installed beside it — one menu bar app that schedules itself, and quitting it really is the end of it.

The build is signed with a Developer ID and notarised by Apple, so it opens without a right-click-and-Open detour.

Removing it

brew uninstall --cask tideline, or --zap as well to take its settings and log with it. Neither touches anything Tideline filed — your Downloads folder is left exactly as it stands. There is more, including the by-hand version, on Uninstall.

Building it yourself

The app is a single SwiftPM executable and a shell script — no npm dependencies, no project file. See Building.

Next. Nothing is filed until you say so. What the app asks the first time you open it is on First launch.