Getting started

Install

Sinclair ships from GitHub releases with a Homebrew cask for macOS and AppImage, deb, and tarball packages for Linux on both x86_64 and aarch64. You can also build it from source.

macOS

The Homebrew cask is the simplest path and keeps Sinclair up to date:

brew install --cask wess/packages/sinclair

Prefer a direct download? Grab the latest Sinclair.dmg from the releases page, open it, and drag Sinclair.app into /Applications.

Note

Release builds are signed and notarized. If macOS still warns on first launch, right-click the app and choose Open once.

Linux

Every release publishes packages for x86_64 and aarch64. Pick whichever fits your distro.

AppImage (no install)

chmod +x Sinclair-*-x86_64.AppImage
./Sinclair-*-x86_64.AppImage

Debian / Ubuntu (.deb)

sudo apt install ./sinclair_*_amd64.deb

Tarball

tar xzf sinclair-*-linux-x86_64.tar.gz
# run it directly…
./sinclair-*-linux-x86_64/usr/bin/sinclair
# …or install the tree under /usr/local

From source

Sinclair is a Cargo workspace. The GUI lives in the app crate and the shipped binary is sinclair. A recent stable Rust toolchain is required.

git clone https://github.com/wess/sinclair
cd sinclair
cargo run -p app --release

To assemble distributable packages locally:

CommandProduces
scripts/bundle.shA release build assembled into dist/Sinclair.app (macOS).
scripts/dmg.shdist/Sinclair.dmg (run bundle.sh first).
scripts/linux.sh [x86_64|aarch64].tar.gz, .deb, and .AppImage (Linux).

First run

Launch Sinclair and you get a single tab running your login shell. From here:

Tip

Config changes apply live — there's no need to restart Sinclair after editing your theme, fonts, padding, or keybindings.

Keeping Sinclair up to date

Sinclair checks GitHub for a newer release on launch and once an hour, and offers to update when one is available. You can also check any time from Sinclair → Check for Updates…. Turn the automatic check off with "auto-update": false.

How the update is applied depends on how you installed Sinclair:

Note

The update check only asks GitHub for the latest release tag — no package manager is consulted, and nothing is downloaded until you say yes.