Skip to content

Automation and Go

Isolate Wago state

Set WAGO_HOME to place manager configuration, installed runtimes, and caches under one root:

sh
WAGO_HOME="$PWD/.wago-ci" wago version current

Give concurrent CI jobs separate directories. Inspect paths rather than guessing:

sh
wago status --json
wago version which
wago cache dir

Automation flags

FlagMeaning
--no-inputNever prompt; fail if input is missing
--dry-runShow a supported mutation plan
--jsonEmit machine-readable output where supported
--lockedRefuse manifest or lockfile changes
--offlineUse installed and cached resources only

For a prepared repeatable build:

sh
wago run --locked --offline app.wasm

Describe the command surface programmatically:

sh
wago commands --json

Shell completions

sh
wago config completions zsh
wago config completions zsh --install

Use --output for a specific completion file and --rc for a particular startup file. Preview installation with --dry-run.

Configure the Go API

go
cfg := wago.NewRuntimeConfig().
	WithCoreFeatures(wago.CoreFeaturesV3).
	WithMemoryLimitPages(256).
	WithFunctionWorkers(0)

if err := cfg.Validate(); err != nil {
	return err
}

rt := wago.NewRuntime(wago.WithRuntimeConfig(cfg))

Use WithBoundsChecks, WithDeferBoundsChecks, and WithOptimization for narrower compiler choices. Use WithPolicy during instantiation for guest authority and declared resource limits.

Next

Released under the Apache 2.0 License.