GIT STRATA Desktop

macOS · Apple silicon · v0.2.0

Watch the session.
Approve the proposal.

GIT STRATA Desktop is the macOS app for git-strata sessions. It lists each session’s repos, checkpoints, pending changes, and conflicts. A dependency proposal moves only after you approve it, and macOS asks for Touch ID or your password first.

  • 4 Nov 2026
  • macOS 13+
  • Apple silicon
  • com.gwd.git-stratad
  • Base tree
  • Deps set
  • Session
brew tap dickwu/tap
brew install --cask dickwu/tap/git-strata-desktop

The command-line tool is a separate page: git-strata CLI. This one is only the desktop app. Source and cask homepage: github.com/dickwu/git-strata.

Shared base snapshot

The base stays with the CLI.

git-strata gives every session an APFS clone of each repo and its dependency set, over a shared base snapshot. Checkpoints record edits. publish commits them. They reach the remote only through git-strata push, or a publish whose repo is configured to push.

Agents create a session with git-strata new. The desktop app watches that session. With no sessions yet, the window says: No sessions. Agents create one with git-strata new.

Repos and the data root have to sit on one APFS volume. That is a git-strata rule. The app reads the daemon that enforces it. Read the git-strata README for the CLI, and the catalog for the rest of the tools.

Touch ID or password

Nothing moves until you pass the prompt.

The prompt names “approve dependency proposal” and the id. If the number is different, or you didn’t click Approve, cancel it.

Waiting for you

Grouped by repo.

Approve applies that proposal to every session on the repo that can move at the moment you confirm, as the daemon sees it then. The result lists each session that moved or was skipped. You can copy git-strata deps approve and the proposal id and run it in a terminal instead.

  • Deps proposal. Review it in the app. macOS asks for Touch ID or your password, and the prompt names the proposal id.
  • Conflict. Those files kept the session’s version when it moved to the new base. Fix them in the session workspace. The note says the conflict needs the session’s agent.
  • Config relax waiting. Opens the Daemon screen. The 0.2.0 release notes say the desktop app shows reload and relax state.
  • Newer changes not applied for over a day. The note offers the oldest session.

Work applying from main is listed apart from that note. The menu bar icon is one of down, alert, checking, waiting, conflict, syncing, or normal. A waiting item opens the session it belongs to.

The window

Sessions, then the one you open.

The list is the whole window. There is no sidebar. Filter by ticket, session, repo, or agent. A repo filter keeps sessions that use every selected repo. An agent filter keeps sessions from any selected agent. Tracked repos are marked. A reference repo stays a reference.

Ticket Session State Repos Pending Conflicts Time

No sessions. Agents create one with git-strata new.

  • Repos
  • Checkpoints
  • Head
  • Base tree
  • Deps set
  • Path
  • Health
  • Pending
  • Conflicts
  • Published chain

⌘K searches sessions and screens, switches the theme among System, Light, and Dark, or refreshes now. While the window is open, session status is checked every 30 seconds. The app is a Tauri shell around that window: product name GIT STRATA, bundle id io.github.dickwu.git-strata.

LaunchAgent com.gwd.git-stratad

It drives the formula’s daemon.

The cask depends on dickwu/tap/git-strata. The app starts and reads that formula’s daemon. Use the one LaunchAgent com.gwd.git-stratad. Do not also run brew services: a second agent would start a second daemon on the same socket and lock, and neither the CLI nor the app manages it.

Start daemon asks launchd to start that agent and waits until it answers. The control does not stop the daemon. If no launch agent is installed, the app cannot start it from the window yet. Install the plist the way the README section Install and daemon describes, then start it.

The Daemon screen shows the socket, reconcile runs, holds, storage on disk and the logical size, requests waiting per repo, and warnings. When the daemon does not return upstream detail, the screen says its reply does not include the cause.

The app’s own files use the bundle id io.github.dickwu.git-strata. The daemon’s config, pins, and store stay in ~/Library/Application Support/git-strata. Removing the cask does not delete that directory.

See brew info dickwu/tap/git-strata for the formula, and the cask for the app.

Homebrew

Install on this Mac.

  1. Tap

    Add the tap that publishes the cask and the formula.

    brew tap dickwu/tap
  2. Cask

    This installs GIT STRATA.app and depends on the git-strata formula, so the daemon comes along. The arm64 disk image is only the app. Apple silicon, macOS Ventura (13) or later.

    brew install --cask dickwu/tap/git-strata-desktop
  3. First open

    Unless this release is notarized, macOS blocks the first open. Allow it in System Settings > Privacy & Security > Open Anyway. If the app is not listed there, clear quarantine on the app bundle. The formula binaries are not quarantined; Homebrew does not quarantine formula downloads.

    sudo xattr -dr com.apple.quarantine "/Applications/GIT STRATA.app"

Questions

Before you install.

What does GIT STRATA Desktop do?

GIT STRATA Desktop is the macOS app for git-strata sessions. It lists each session's repos, checkpoints, pending changes, and conflicts, and it is where you approve a dependency proposal. Agents create a session with git-strata new. The app does not replace the CLI.

How do I install GIT STRATA Desktop?

Run brew tap dickwu/tap, then brew install --cask dickwu/tap/git-strata-desktop. The cask installs GIT STRATA.app and depends on the git-strata formula. It requires Apple silicon and macOS Ventura (13) or later.

How is the desktop app different from the git-strata CLI?

The desktop app drives the daemon that ships in the git-strata formula, LaunchAgent com.gwd.git-stratad. Install the formula with brew install dickwu/tap/git-strata. Keep that single LaunchAgent; do not also start it with brew services. The CLI has its own page at https://git-strata.lifefarmer.ca.

Why does macOS block the first open?

Unless this release is notarized, macOS blocks the first open. Allow it in System Settings > Privacy & Security > Open Anyway. If the app is not listed there, run sudo xattr -dr com.apple.quarantine "/Applications/GIT STRATA.app".

Does uninstalling the app delete git-strata data?

No. The app's own files use the bundle id io.github.dickwu.git-strata. The daemon's config, pins, and store stay in ~/Library/Application Support/git-strata, and the cask does not remove that directory.

What happens when I choose Approve?

macOS asks for Touch ID or your password. The prompt names "approve dependency proposal" and the proposal id. If the number is different, or you didn't click Approve, cancel it. Approve applies that proposal to every session on the repo that can move at the moment you confirm. You can instead run git-strata deps approve with the proposal id in a terminal.

Can the app start the daemon?

Start daemon asks launchd to start LaunchAgent com.gwd.git-stratad. That control does not stop the daemon. If no launch agent is installed, the app cannot start it yet; install the plist as the git-strata README section "Install and daemon" describes, then start it.