DOCS · GETTING-STARTED
ALL DOCS FIG. 15 · DWG VC-015

Build from source

Clone the repository, install from the checkout, run the gates, and build your own signed desktop artifact.

Canonical source — docs/public/getting-started/build-from-source.md

Build from source

A source checkout installs the same runtime the bootstrap installs, and adds every build, test and release target on top of it. Take this path when you want to modify Vibecrafted, run its gates, or produce your own signed artifact.

Prerequisites

ToolWhy it is needed
gitcheckout
bash 4 or newerinstaller and command deck
uvPython toolchain and the pinned vibecrafted tool environment
Rust toolchainvoc, vc-admin, vc-server, vc-terminal, vc-frame
maketarget surface
Xcode command line toolsmacOS only, for codesign and notarytool

The installer reports every missing prerequisite in one pass, so you do not have to discover them one failure at a time.

Clone and install

git clone https://github.com/vetcoders/vibecrafted.git
cd vibecrafted
make install
TargetBehavior
make installguided install
make install-autonon-interactive install; this is what CI runs
make install-alladds the Rust binaries (voc, vc-admin, vc-server) as real files into ~/.local/bin
make wizardbrowser-guided install surface
make dry-runshow what an install would do without doing it

The target surface

make help        # everyday targets
make help-dev    # the full inventory
GroupTargets
installinstall · install-auto · install-all · install-python-tools · install-vendored-binaries · install-app-binaries · install-server · install-server-service · skills · helpers · setup-dev · wizard · gui-install · dry-run · restore · migrate · foundations · bundle
teststest · test-core · test-skills · test-install · test-parity · test-vc-frame · test-memex · test-aicx-sync · dispatch-test · test-race-protection · check · semgrep
serverserver · server-build · server-check · server-test · server-smoke
releaseapp · dmg · dmg-signed · release-local · notarize · release · publish-release
versionversion · version-show · version-bump · bump-patch · bump-minor · bump-major
hooksinit-hooks · seed-commit-msg-hooks · commit-safe

Run the gates

make test        # the full suite
make check       # shell lint
make semgrep     # security gate

The repository holds two test trees whose conftest.py files collide if you run them in a single pytest invocation. Run them separately:

uv run --project vibecrafted-core pytest vibecrafted-core/tests
uv run --project vibecrafted-core pytest tests/tui

Build the desktop artifact

Producing a distributable DMG requires Apple Developer ID signing material. The release script reads it from $KEYS, which defaults to ~/.keys:

FilePurpose
signing-identity.txtDeveloper ID identity
Certificates.p12signing certificate
cert_password.txtcertificate password
vibecrafted-signing.keydetached artifact signing key
.notary.envnotarytool credentials
make app             # build Vibecrafted.app only
make dmg             # build a DMG without notarizing
make release         # build, sign and notarize the canonical versioned DMG
make publish-release # cold-verify the built DMG and publish it

The artifact is named Vibecrafted_<version>-<YYYYMMDD>-<sha8>.dmg, where the version comes from VERSION, the date from VIBECRAFTED_RELEASE_DATE (defaults to today, UTC), and the short SHA from the checkout’s HEAD.

The release build pins MACOSX_DEPLOYMENT_TARGET=14.0 and remaps Rust path prefixes, so release payloads never carry the building machine’s home directory, Cargo registry paths, or checkout location in panic and debug metadata.

Without signing material, make app and make dmg still work for local testing. make release does not.

Environment overrides

VariableEffect
KEYSdirectory holding signing material
VIBECRAFTED_RELEASE_DATEYYYYMMDD stamp in the artifact name
VIBECRAFTED_RELEASE_DIRoutput directory, defaults to dist/
VIBECRAFTED_TERMINAL_REPOpath to the vc-terminal checkout
VIBECRAFTED_FRAME_REPOpath to the vc-frame checkout

Next