Repository navigation
Getting Started
- macOS 15 (Sequoia) or later, Apple silicon
- Xcode 27 or later (the toolchain the CI and releases use)
-
xcodegen2.45+ (for generating the Xcode project) - An HQBase instance running 1.1.0 or later with OAuth bearer support
Install xcodegen via Homebrew:
brew install xcodegenClone the repo, generate the project, and open it:
git clone https://github.com/awizemann/herald.git
cd herald
xcodegen generate
open Herald.xcodeprojThen build and run the Herald scheme in Xcode.
To build in an isolated DerivedData directory and launch a dev copy:
./scripts/build-detached.shIt keeps a private DerivedData folder and quits only its own previous instance, so it never touches the released Herald you may also be running.
project.yml is the source of truth for all build configuration; Herald.xcodeproj is generated and should not be edited directly. Run xcodegen generate after any change to project.yml.
The layout is:
-
HeraldKit/— Swift Package with all logic (auth, API, sync/cache, compose, notifications);HeraldAPIinside it is the generated OpenAPI client -
Herald/— the SwiftUI app: app coordination, views, compose window, design tokens, analytics -
HeraldTests/,HeraldKit/Tests/— test suites -
scripts/— build and release helpers -
.memory/— project decisions, architecture, conventions (read these for deep context) -
CHANGELOG.md— release notes, also consumed by the release script
- Launch Herald
- Click "Sign in" and authorize with your HQBase instance
- Herald lists your mailboxes and starts syncing; the local cache makes later launches instant
- Start reading and composing — more accounts can be added from the sidebar switcher
Debug builds use their own Keychain namespace and cache, so a dev copy runs side by side with the released app without sharing a sign-in.
Check that:
- Xcode 27 is selected:
xcodebuild -version - You can generate the project:
xcodegen generate(should update timestamps on.pbxproj) - The app builds:
./scripts/build-detached.sh(should produce a runnable app)
Last updated: 2026-08-19 — build and setup; fact-checked against the code for v0.3.0
Herald is AGPL-3.0. This wiki lives in the repo's wiki/ folder and is managed by Memophant — see Wiki Maintenance.