DeployForge
Check, then install, then skip it next time. A recipe file that's safe to re-run.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get DeployForge
Check, then install, then skip it next time. A recipe file that's safe to re-run.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, DeployForge is included in every plan along with the rest of the range.
Two commands per step
A manifest is JSON: a name and an ordered list of steps, each carrying a check and an install shell command. deployforge apply setup.json runs check first. Exit 0 and the step is already satisfied, so install never runs and the step reports SKIP. Non-zero and install runs.
That’s the whole idempotence mechanism, and it’s why running the manifest twice on a machine that’s already provisioned does nothing except print a column of skips.
Failures stop the line
If an install exits non-zero on a real run, DeployForge reports FAILED and stops. Later steps usually depend on earlier ones, so attempting them just buries the real error under three more.
--dry-run behaves differently on purpose: nothing runs, every step reports WOULD INSTALL or SKIP, and the preview continues to the end. Nothing is happening, so there’s no reason to stop early.
--log run.log appends one JSON object per step with the verdict, both exit codes, a timestamp, and a dry_run boolean so previews and real runs stay distinguishable in one accumulated file.
validate parses the manifest, checks for empty fields and duplicate step names, and executes nothing.
Windows imaging, unattended setup and EFI repair are elsewhere in the plan.
Reading on the job itself
- How to set up Windows the same way every time Write the setup as a list of steps, each with a check that says whether it is already done. Then the recipe...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working CLI prototype of the guided-recipe core: a manifest-driven, idempotent check-then-install step runner with fail-fast and a JSON-lines run log. Custom Windows images, unattended setup, boot USB creation, EFI repair, and driver injection need privileged Windows-only deployment APIs and are on the roadmap.
Naming status
Working name only — brand verdict **AVOID** (Very High). Collision: DeployForge. Rename completely.
What it draws on
Existing paid software whose best ideas shaped this program: NTLite, WinToUSB Professional, EasyUEFI Professional, Macrium Reflect X.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
deployforge - manifest-driven, idempotent check-then-install step runner
Usage:
deployforge apply <manifest.json> [--dry-run] [--log run.log]
deployforge validate <manifest.json>
deployforge help
Commands:
apply Run a deployment manifest: for each step, run its "check"
command; if it already succeeds the step is skipped, otherwise
the "install" command runs to make it so. Stops at the first
failed step (fail-fast) unless --dry-run is given.
validate Parse and sanity-check a manifest without running anything.
Flags for apply:
--dry-run Preview what would happen; never runs install commands,
and does not stop early on a step that would fail.
--log <file> Append a JSON-lines record of every step's outcome to
<file> (real runs and dry runs alike).
Run "deployforge apply -h" or "deployforge validate -h" for more detail.
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
console.go · console_test.go · guided.go · main.go
SHA-256 checksums · build instructions & scope notes · full build plan