Machine definitions are in private beta. Join the waitlist.
Overview
Most workflows spend their first few minutes installing the same dependencies. They set up a language runtime, install a package manager, pull system packages from apt, and download browsers or CLIs, and every job repeats it on a fresh VM before the real work starts. A machine definition describes the machine your jobs need, once: an Ubuntu base, x64 or ARM, the setup script your jobs keep repeating, and the environment variables they expect, with secrets kept secret. Blacksmith builds it into a machine image, so the setup is already there when a job starts. You don’t have to write the definition from scratch: Blacksmith drafts one from what your recent jobs installed and what your workflows set up, and you review it before you publish it. A few examples of what goes into one:- A Next.js storefront whose end-to-end tests install Node 22, pnpm,
ffmpegand the fonts its screenshots need, then download Chromium and WebKit for Playwright on every run. - A Rust service that pins a nightly toolchain and runs
cargo installforsqlx-cliandcargo-nextestbefore it can build. - A Python data pipeline that installs uv, a specific Python, and the Google Cloud SDK with the
gke-gcloud-auth-plugincomponent.
