This document covers local setup, build/test commands, and release steps.
- Nix with flakes enabled
- macOS: Xcode Command Line Tools if you plan to use Homebrew dependencies
-
(Optional) Pre-fetch the ghostty dependency to speed up the first build:
just setup
just setupcaches theghosttysource tarball; the regular build will fetch it automatically if you skip this step. -
Enter the development shell:
nix develop
Or, if using direnv:
direnv allow
-
Verify the environment:
zig version # Should show 0.15.2+ (compatible with ghostty-vt) just --list # Show available commands
Build the project:
just build
# or
zig buildBuild optimized release:
zig build -Doptimize=ReleaseFastRun the application:
just run
# or
zig build run- ghostty-vt is fetched as a pinned tarball via the Zig package manager (
build.zig.zon). - SDL3 and SDL3_ttf are provided by Nix. SDL3 is pinned to 3.4.0 via
overlays/sdl3-3-4-0.nixwith binaries cached in the publicforketyforkCachix to avoid rebuilds.
Run tests:
just test
# or
zig build testCheck formatting and script linting:
just lint
# or
zig fmt --check src/
shellcheck scripts/*.sh scripts/verify-setup.sh
ruff check scripts/*.pyFormat code:
zig fmt src/macOS release binaries are automatically built for both ARM64 (Apple Silicon) and x86_64 (Intel) architectures via GitHub Actions when a version tag is pushed:
git tag v0.1.0
git push origin v0.1.0Each release includes:
architect-macos-arm64.tar.gz- Apple Siliconarchitect-macos-x86_64.tar.gz- Intel