Per-repo documentation — each repo's docs/ and README, ingested and associated with the repo. Rendered through the <<<RepoDocs>>> tag.
← jazz-forge docs · README.md
Single-developer, GitLab-free build environment. Everything is local and backed up.
- Action log — forge.db (SQLite), actions table. Every harness action is recorded. - Local headless git remote — bare repos under remotes/<name>.git (pushed via file://). - Mirror — a second bare copy under mirror/<name>.git (headless backup of each remote). - Version stamping — git describe --tags --dirty --always → _version.py. - Artifacts registry — a NATIVE content-addressed store (forge.artifacts, no Docker). Binary build outputs (VM images, cidata seeds, squashfs, .img, wheels, …) are stored by sha256 (so identical content dedupes), indexed in the artifacts table (name:version → sha256 + provenance). Blobs live OUTSIDE the repo at ~/bin/config/forge-artifacts (override FORGE_ARTIFACTS; swept by backup-conductor). Replaced the old pypiserver-in-Docker mock. - CI/CD — forge ci <repo>: test → build → publish into the artifacts registry, every stage logged. - Backup — forge backup: tars the harness and copies to iCloud Drive (forge-backups/).
python -m forge.cli init # create the action DB + artifacts index
python -m forge.cli ci <repo> # test+build+publish a module into the registry
python -m forge.cli push <repo> # push to local bare remote
python -m forge.cli mirror <name> # mirror that remote
python -m forge.cli backup # tar -> iCloud
python -m forge.cli tail -n 30 # recent actions
# artifacts registry (content-addressed; big binaries welcome)
python -m forge.cli artifact put disk.qcow2 --name pi-imaging --version 2026-07-08 --kind qcow2
python -m forge.cli artifact list [name]
python -m forge.cli artifact get pi-imaging # -> blob path (latest); --version to pin
A launchd timer (com.forge.backup) runs backup automatically.