Skip to content

Build from source

Requirements

  • macOS 26 or newer
  • Xcode 26
  • Swift 6.2 or newer
  • Git

Verify the active developer directory and versions before a long build:

bash
sw_vers -productVersion
xcode-select -p
swift --version

xcode-select -p should point inside /Applications/Xcode.app.

Clone and build

bash
git clone https://github.com/AstroQore/vibe-bar.git
cd vibe-bar
swift test
./Scripts/build_app.sh release
open ".build/Vibe Bar.app"
bash
git clone https://github.com/AstroQore/vibe-bar.git
cd vibe-bar
swift test
./Scripts/build_app.sh debug
open ".build/Vibe Bar.app"

The Swift package contains:

  • VibeBar, the executable application target;
  • VibeBarCore, the testable parsers, storage, privacy, adapter, and usage logic.

The packaging script assembles .build/Vibe Bar.app, copies its resources and Sparkle framework, and ad-hoc signs the bundle for local use.

More precisely, it builds the chosen Swift configuration, creates the app bundle skeleton, copies the executable and SwiftPM resource bundle, preserves Sparkle's versioned framework links, installs Info.plist and the icon, signs nested helpers from the inside out, and verifies the finished bundle.

Verify the bundle

Before distributing a local build, run the full project checks documented in the repository:

bash
swift build
swift test
./Scripts/build_app.sh release
codesign --verify --deep --strict ".build/Vibe Bar.app"
codesign -d --entitlements - ".build/Vibe Bar.app"

Because Vibe Bar is intentionally unsandboxed, the entitlement output should not contain com.apple.security.app-sandbox.

Smoke-test the packaged app

bash
open ".build/Vibe Bar.app"

Confirm:

  • the menu-bar item appears;
  • Overview opens and the settings window is reachable;
  • an available core provider refreshes;
  • the app writes normal derived state to ~/.vibebar/;
  • no new sandbox container is created under ~/Library/Containers/com.astroqore.VibeBar/.

Do not move the bundle into /Applications until you have finished the smoke test and decided to replace any installed copy.

Common failures

  • If xcode-select points to CommandLineTools, select the full Xcode app.
  • If Gatekeeper reports the bundle as damaged, use right-click → Open or remove quarantine from the local bundle.
  • If macOS is too old, the application cannot launch; the deployment target is macOS 26.
  • If all providers look logged out in an old build, inspect the legacy sandbox container described in Troubleshooting.

Read before changing integrations

The repository's AGENTS.md contains the complete architecture, privacy, adapter, and verification rules. Read the relevant section before modifying provider or local-data behavior.

Never place real tokens, cookies, email addresses, organization IDs, machine hostnames, or personal home paths in source, fixtures, examples, or logs.

Released under the AGPL-3.0-only license.