Docs/Reference

Build from source

The source repository is devjasha/Zurafa on GitHub. This page describes the current development build, not a Developer ID signed distribution workflow.

Prerequisites

Use a Mac with Xcode/Swift tooling and Rust/Cargo installed. The Swift package targets macOS 14 or newer; the release currently builds for Apple Silicon. Dependencies are resolved through SwiftPM and Cargo.

Build the app bundle

From the repository root:

scripts/bundle.sh
open build/Zurafa.app

The script builds the Rust daemon, Rust CLI, and SwiftUI app in release mode, places the executables inside build/Zurafa.app, includes the app icon and font resources, and applies an ad-hoc signature. It does not notarize the result.

Run during development

(cd rust && cargo build)
cd apps/macos && ZURAFA_DAEMON=../../rust/target/debug/zurafa-daemon swift run

Run tests

(cd rust && cargo test)
(cd apps/macos && swift test)

The Rust test suite includes real PTY-backed integration tests, event routing, snapshots, reconnection, status parsing, and layout ordering. Swift tests cover protocol decoding, appearance, Ghostty import, SSH address parsing, Nerd Font fallback, dither processing, and terminal-host reattachment.

Source layout

PathPurpose
rust/crates/zurafa-clizurafa command-line interface
rust/crates/zurafa-daemonSocket server, PTYs, terminal parsing, SSH hosts
rust/crates/zurafa-eventsTyped events, dispatcher, snapshots, layout, status records
apps/macosSwiftUI application and tests
docs/ipc-protocol.mdProtocol 1 and 2 reference
scripts/bundle.shLocal macOS app bundle build

For the wire-level contract, see the IPC protocol reference.