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.
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.