A single-binary Yocto / BitBake workspace manager with declarative layers, a lockfile and a live build web UI.
BitForge makes Yocto builds reproducible and easy to manage from one static
binary — no Python virtualenv or global installs required. It:
- Scaffolds a Yocto workspace and clones poky / OpenEmbedded-core plus BitBake
with a single
BitForge --init. - Manages upstream layers declaratively in
BitForge.toml, keeping the manifest andbblayers.confin sync automatically. - Pins every layer to an exact commit in
BitForge.lock, so a fresh checkout rebuilds the same tree. - Generates your BitBake configuration and serves a built-in web UI that streams BitBake output live — start and watch builds from the CLI or the browser.
- Updates itself in place with
BitForge --update(with a--betachannel for early builds).
Download and install the latest stable binary with the install script:
curl -fsSL https://raw.githubusercontent.com/DraviaVemal/BitForge/release/install.sh | shThis installs the BitForge binary to ~/.local/bin. Options:
# Install the latest pre-release (beta) build
curl -fsSL https://raw.githubusercontent.com/DraviaVemal/BitForge/release/install.sh | sh -s -- --beta
# Install to a custom directory
curl -fsSL https://raw.githubusercontent.com/DraviaVemal/BitForge/release/install.sh | sh -s -- --dir=/usr/local/binMake sure the install directory is on your PATH, then run BitForge --init to
bootstrap your first workspace.
Full documentation — getting started, layer and workspace guides, the build web
UI, the complete BitForge.toml schema and the CLI reference — lives at:
https://docs.draviavemal.com/bitforge
BitForge is dual-licensed — use it under whichever fits your case:
- GNU GPL-3.0 (open source) — the full text is in the
LICENSEfile. You may use, study, modify and distribute the software, including for commercial purposes, provided distributed derivative works remain open under GPL-3.0. - Commercial license — for closed-source / proprietary use without the GPL-3.0 copyleft obligations, offered through GitHub Sponsors. It adds commercial-friendly (MIT-style) terms, access to a private packaged-release repository and priority support.
See the licensing overview for details, and Versioning & Licensing for how terms can differ between versions. For custom arrangements, contact contact@draviavemal.com.
Contributions target the single release branch:
- Fork the repository and create a feature branch from
release. - Make your change in clear, focused commits using Conventional Commits
(e.g.
feat: add layer prune command,fix: handle missing lockfile). - Add or update tests and docs where relevant.
- Open a pull request against
releasedescribing the change and its motivation. Merging publishes a new alpha automatically; stable releases are cut later by a maintainer pushing avX.Y.Ztag.
A good bug report includes the version (stable or alpha), a minimal reproducible example, expected vs. actual behaviour, and your OS and toolchain versions. Please keep interactions respectful and constructive. See the shared community & contributing guide for more.