Install the Mac app
Check the requirements, build SI Fabrik, and confirm everything is ready with the system check.
SI Fabrik is a native SwiftUI app for macOS 26 or later. Download it from sifabrik.com, then check the tools it uses on the Mission Control screen. You can also build it from source.
Requirements#
| Tool | Needed for | Required |
|---|---|---|
| macOS 26 or later | The app (SwiftUI, Liquid Glass) | Yes |
| Xcode 27 or later and XcodeGen | Building from source | Only to build it yourself |
| Git | Cloning task workspaces, saving branches | Yes |
Claude Code (claude) | The default agent runner on your Mac | Yes |
| Docker Desktop | Running agents in Docker sandboxes (recommended) | Optional |
Codex CLI (codex) | runner.kind: codex | Optional |
GitHub CLI (gh) | Opening pull requests on GitHub, the GitHub tracker fallback token | Optional |
Install Claude Code with npm if you don't have it:
npm i -g @anthropic-ai/claude-codeDownload the app#
- Download
Get the latest version from sifabrik.com/download. It's signed with Developer ID by Think Define Create LLC and notarized by Apple. The download page lists the file's SHA-256 if you want to check it with
shasum -a 256. - Install
Unzip it, drag SI Fabrik to your Applications folder and open it. macOS opens notarized apps without a warning.
- Check the system
Open Mission Control. The System check card lists each tool with its version, or how to install it:
- Claude Code:
claude --version. - Docker (optional): engine version and CPUs, or why it isn't running.
- Git: install the Xcode Command Line Tools if it's missing.
- Codex CLI (optional): only for
runner.kind: codex. - GitHub CLI (optional): for the GitHub tracker and pull requests.
Press the refresh button on the card after installing something.
- Claude Code:
To update, download the new version and replace the app in Applications. Projects, settings and Keychain items stay where they are. SI Fabrik doesn't update itself.
Build from source#
- Generate the Xcode project
From the SI Fabrik source folder, generate
Harness.xcodeprojfromproject.yml:Shellxcodegen generate - Build and run
Open the project and press ⌘R, or build headless:
Shellopen Harness.xcodeproj # ⌘R to run, ⌘U for the test suite # or xcodebuild -scheme Harness -derivedDataPath build/DD build testThe app bundle is
SI Fabrik.app. It's built with the hardened runtime, so other processes running as you can't inject code into it or attach a debugger to a release build.
Then open Mission Control and check the system as described above.
Set up Docker isolation#
Agents run with bypassPermissions by default, which is a high-trust setting. Run them in Docker so only the task's workspace is exposed.
- Start Docker Desktop
The Sandboxes screen shows the engine as running once Docker is up.
- Build the agent image
On Sandboxes, press Build on the Agent Image card. It builds
harness-agent:latest(Node 22, Claude Code, Codex CLI, git, gh, ripgrep, Python) with live logs. Build the browser image too if your projects use browser testing. - Add a credential for containers
Containers can't use your Mac's Claude login. Open Settings → Credentials and paste either an Anthropic API key (
sk-ant-api…) or a long-lived token fromclaude setup-token(sk-ant-oat…). You can also route agents through a model gateway instead.
When agents run on the host (no sandbox) and you haven't set a credential, Claude Code uses your existing login on this Mac.
Optional: a signed release build#
To give the app to other Macs, scripts/release.sh builds a release signed with Developer ID, notarizes it with Apple, staples the ticket and checks it with Gatekeeper. You need, once:
- a Developer ID Application certificate in your login keychain (Xcode → Settings → Accounts → Manage Certificates);
- notary credentials stored under a profile name:
xcrun notarytool store-credentials sifabrik-notary --apple-id <you> --team-id <team>Then run:
scripts/release.sh # build, sign, notarize, staple → build/release/SI Fabrik.app and .zip
scripts/release.sh --no-notarize # build and sign only, to check signing firstNOTARY_PROFILE names the profile (default sifabrik-notary) and TEAM_ID the signing team.
Optional: build the server#
harnessd, the Remote-mode server, builds with SwiftPM on Linux or macOS (Swift 6.2 or later):
swift build -c release --product harnessdSee Install on Linux.