Reference
Core Commands
radbuild project create ./workspace --non-interactive --project-name demo
radbuild project create --list-templates
radbuild project create ./workspace --non-interactive --template fpga-mpsoc-buildroot --project-name demo
radbuild project create ./workspace --non-interactive --register --template radpx-os-terminal --project-name radpx-terminal
radbuild project register ./workspace/demo
radbuild project list --json
radbuild project unregister ./workspace/demo
radbuild project validate --settings ./workspace/demo/settings.json
radbuild graph --settings settings.json --json
radbuild host inspect --json
radbuild generate --settings settings.json
radbuild build fpga --settings settings.json --json-events
radbuild build os --settings settings.json --json-events
radbuild build all --settings settings.json --dry-run --json-events
radbuild deploy --settings settings.json --json-events
Schema Skeleton
{
"radbuild_schema": "2.0",
"radbuild_version": "0.2.2-beta.2",
"project_name": "example",
"systems": [],
"connections": [],
"artifacts": [],
"deploy": [],
"packages": {}
}
Host And Provider Execution
Projects may define host execution preferences when a provider can run either natively or through an adapter:
{
"host": {
"mode": "native"
},
"provider_execution": {
"vivado": "native",
"oss-cad-suite": "native",
"radpx-os": "wsl"
}
}
radbuild host inspect --json reports the current host kind and detected toolchains. Native Windows support in 0.2.2-beta.2 is focused on FPGA and light embedded flows. Linux-only OS providers intentionally refuse native Windows execution until the WSL provider mode is implemented end to end.
Common System Types
fpga.vivadofpga.litexlinux.petalinuxlinux.buildrootlinux.yoctoos.radpxsoftware.nativesoftware.crossfirmware.genericpackage.debian
Packaged Project Templates
fpga-vivadofpga-mpsoc-petalinuxfpga-mpsoc-buildrootfpga-linux-softwareradpx-os-terminalradpx-os-wm
Use radbuild project create --list-templates --json for machine-readable template metadata.
Project Registry
The project registry is a user-level list of RadBuild project roots shared by the CLI and VSCode extension. By default it lives at $XDG_CONFIG_HOME/radbuild/projects.json or ~/.config/radbuild/projects.json. Set RADBUILD_PROJECT_REGISTRY=/path/to/projects.json for isolated testing or automation.
A registered project must point to a directory containing schema v2 settings.json, or directly to a JSON settings file.
VSCode Commands
RadBuild: Projectsopens the registered project table. Project rows exposeRadBuild: Register Project Directoryvalidates and registers a project root.RadBuild: Create Projectcreates from packaged templates and registers theRadBuild: Project Settingsopens a form editor for common project fields,RadBuild: Preview Build Planrunsradbuild vscode-events --dry-runandRadBuild: RadHDL Catalogopens a browser for catalog JSON/VHDL entriesRadBuild: Toolchainsdetects and stores common toolchain paths. Vivado andRadBuild: Build Systembuilds a selected graph node;Build Allbuilds the
Open; project-specific settings, artifacts, and build actions appear after a project is active. If the target folder is already open, RadBuild activates the project without forcing a VSCode folder reload.
result. Switching templates resets defaults and disables non-applicable fields.
systems, config values, and project toolchain selectors.
shows ordered graph systems without invoking vendor toolchains.
reported by radbuild hdl catalog --json.
PetaLinux register roots containing valid version directories and expose one selected active version. OSS CAD Suite, Gowin, GHDL, Yosys, nextpnr, QEMU, Buildroot, RadHDL, RadicalPackages, and cross compiler paths are tracked as explicit overrides.
active project graph.
RADPx/RADix-specific image configuration panels, QEMU launchers, serial-log filters, and packagegroup selectors are deferred while the OS interface remains in active development. OS projects still use the shared validate, generate, and build commands.
JSON Events
Build commands with --json-events emit line-delimited JSON for IDEs and automation. Consumers should read stdout one line at a time and treat unknown event fields as forward-compatible metadata.