Building a Golem Application with golem build
SkillDev toolsBuilding a Golem application. Use when asked to build a Golem project, compile components to WASM, or troubleshoot build errors.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Building a Golem Application with golem build skill
What this skill tells your AI
The instructions your AI receives, as published by golemcloud/golem in golem-skills/skills/common/golem-build/SKILL.md and read by ahel’s review.
Both golem and golem-cli can be used — all commands below work with either binary.
Usage
golem build --yes
Run this from the application root directory (where the root golem.yaml is located). It builds all components defined in the project. Always pass --yes to avoid interactive prompts.
What golem build Does
The build is a multi-step pipeline:
- Check — verifies that required build tools are installed (e.g.,
cargofor Rust,npm/nodefor TypeScript). - Build — executes the build commands defined in
golem.yamlfor each component. These commands are language-specific:- Rust: runs
cargo build --target wasm32-wasip2(or with--releasefor the release preset). - TypeScript: runs
rollupto bundle the component (type checking happens in-process during bundling), then injects the bundle into a prebuilt QuickJS WASM and optionally preinitializes it. - Scala: runs Scala.js compilation, JavaScript linking, QuickJS WASM injection, agent wrapper generation, and WASM composition.
- Rust: runs
- Add Metadata — embeds component name and version into the output WASM binary.
- Generate Bridge — generates bridge SDK code if the project uses inter-component communication.
Up-to-date Checks
golem build tracks file hashes of sources and targets. If nothing changed since the last build, steps are skipped automatically. Use --force-build to bypass this.
Build Output
The final WASM artifact is placed in golem-temp/agents/ under the application root:
- Rust (debug preset):
golem-temp/agents/<component_name_snake_case>_debug.wasm - Rust (release preset):
golem-temp/agents/<component_name_snake_case>_release.wasm - TypeScript:
golem-temp/agents/<component_name_snake_case>.wasm - Scala:
golem-temp/agents/<component_name_snake_case>.wasm
The component name in snake_case is derived from the component name in golem.yaml. For example, a component named my-app:rust-main produces my_app_rust_main_debug.wasm.
Available Options
| Option | Description |
|---|---|
[COMPONENT_NAME]... | Build only specific components (by default, all components are built) |
-s, --step <STEP> | Run specific build step(s): check, build, add-metadata, gen-bridge |
--skip-check | Skip build-time requirement checks |
--force-build | Skip up-to-date checks, rebuild everything |
-P, --preset <PRESET> | Select a component preset (e.g., release) |
-Y, --yes | Non-interactive mode — always use this flag |
Build Configuration in golem.yaml
Build commands are defined per component template and preset in golem.yaml:
componentTemplates:
rust:
presets:
debug:
default: true
build:
- command: cargo build --target wasm32-wasip2
componentWasm: "target/wasm32-wasip2/debug/<name>.wasm"
outputWasm: "golem-temp/agents/<name>_debug.wasm"
The build section is a list of steps. Each step can be:
command:— a shell command to executeinjectToPrebuiltQuickjs:— injects a JS bundle into a QuickJS WASM (TypeScript/Scala only)preinitializeJs:— preinitializes the JS runtime in the WASM (TypeScript/Scala only)
Each step can specify sources and targets for incremental builds, dir for the working directory, and env for environment variables.
Cleaning Build Artifacts
golem clean
This removes golem-temp/ and any other directories listed in the clean section of each preset.
Common Build Errors
- Missing
wasm32-wasip2target (Rust): runrustup target add wasm32-wasip2 - Missing npm packages (TypeScript):
golem buildautomatically runsnpm installifpackage.jsonis present butnode_modulesis missing - Type errors (TypeScript): fix the errors in
.tssource files; thetscstep runs with--noEmit false --emitDeclarationOnly
For a deeper breakdown of build pipeline stages, dependency auto-fix behavior, and manifest tracing, load golem-troubleshoot-build.
Related Skills
- Load
golem-troubleshoot-buildwhen a build fails or when diagnosing manifest/configuration issues
Signals
- GitHub stars
- 2k
- Forks
- 212
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
golem-build- Source
- github.com/golemcloud/golem