← Package directory
Available on winget

Install Cue

CUE is an open source data constraint language which aims to simplify tasks involving defining and using data.

Install with winget
winget install --id CueLang.Cue
Upgrade
winget upgrade --id CueLang.Cue
Uninstall
winget uninstall --id CueLang.Cue

About Cue

CUE is an open source data constraint language which aims to simplify tasks involving defining and using data.

What's new in 0.16.1

Language The fallback keyword in the aliasv2 experiment is replaced by otherwise, which is clearer. cue fmt or cue fix can be used to rewrite existing code. Evaluator Fix a regression where the compiler could add comments to the input AST value, which could lead to increased memory usage. Fix a bug where exporting certain schemas could result in "cannot have both alias and field in same scope" errors. cmd/cue Fix a panic which could occur when using non-label expressions in the --path flag. Teach cue login to give helpful errors when used with OCI registries which don't support the OAuth2 device flow. Go API Fix a regression where cue.Context.Encode could panic on custom marshaler types with pointer receivers. Full list of changes since v0.16.0 - internal/cueversion: bump to v0.16.1 by @mvdan in 6d609d7 - internal/ci: build releases with Go 1.26.2 by @mvdan in cedf4c8 - update all golang.org/x/... dependencies by @mvdan in b4efeef - all: rename fallback keyword to otherwise by @mpvl in f813811 - lsp/cache: improve rename by @cuematthew in 8e47027 - integration/workspace: add test showing bad behaviour by @cuematthew in a5e0ef5 - cmd/cue: suggest docker/podman login when OAuth2 device flow is unsupported by @mvdan in c169605 - cmd/cue: add testscript for cue login when device code endpoint is unsupported by @mvdan in d7c882a - cmd/cue: clarify how to authenticate with standard OCI registries by @mvdan in 2613edf - internal/core/compile: avoid mutating AST by @rogpeppe in e4b0516 - internal/core/export: fix alias/field name conflict in pattern constraints by @mvdan in 1e46409...

Read release notes

Version history

Version Updated Notes
0.16.1 Unknown Language The fallback keyword in the aliasv2 experiment is replaced by otherwise, which is clearer. cue fmt or cue fix can be used to rewrite existing code. Evaluator Fix a regression where the compiler could add comment...
0.16.0 Unknown Changes which may break some users are marked below with: ⚠️ Language As a reminder, we have two ongoing language experiments since v0.15; a replacement for struct embedding and a rework of aliases. Please give these a t...
0.15.4 Unknown Evaluator Fix a panic which could occur when using the error built-in with cyclic references. Fix a panic which could occur when loading @experiment(aliasv2) syntax with an invalid alias name. cmd/cue Relax the cue login...
0.15.3 Unknown Evaluator Fix a panic which could occur when using Expr after LookupPath on a cue.Value. cmd/cue Fix a panic which could occur when using cue cmd tasks referencing definitions. Fix a panic which could occur when cue get...
0.15.1 Unknown Evaluator Fix an evalv3 regression first introduced in v0.11.0 where the and built-in function started evaluating its arguments too eagerly, causing failures in cue def. Fix an evalv3 regression where closedness info cou...
0.15.0 Unknown Changes which may break some users are marked below with: ⚠️ Note that this release no longer includes a checksums.txt asset; GitHub now provide digests natively. LSP This release includes the initial version of cue lsp...
0.14.2 Unknown Evaluator Fix an unintended evalv2 regression in v0.14.1; the change only intended to affect evalv3. Fix a panic in the parser which could occur when @experiment() file attributes are invalid. Fix an edge case where bina...
0.14.1 Unknown Evaluator Fix three more regressions where evalv3 gave cycle errors and evalv2 did not. Fix a regression where evalv3 was too strict with ellipses in certain situations, causing "field not allowed" regressions. Fix a reg...
0.14.0 Unknown This release brings significant performance improvements, three language changes, and initial support for Kubernetes CRDs. Changes which may break some users are marked below with: ⚠️ Evaluator Performance A particularly...
0.13.2 Unknown Evaluator Fix a regression causing odd number of disjuncts to misbehave in some cases. Full list of changes since v0.13.1 - internal/cueversion: bump for v0.13.2 by @mvdan in cfdcbe5 - internal/core/adt: fix default logi...
0.13.1 Unknown Evaluator The evaluator's core packages no longer depend on the golang.org/x/mod module, which was only used to format version strings. Fix a regression causing "cyclic field to reference" in some cases. Fix a regression...
0.13.0 Unknown This release finally enables the new evaluator by default -- the culmination of over a year's worth of work! It also packs in lots of new features, such as support for absolute module packages, dozens of JSON Schema impr...
0.12.1 Unknown Evaluator Embedding binary files like @embed(file="foo", type=binary) no longer interprets the files as Unicode text, which mangled invalid UTF-8 bytes. cmd/cue The release archives are now built with Go 1.24, which shou...
0.12.0 Unknown Release notes
0.8.0 Unknown Release notes
0.7.1 Unknown This release is a re-build of CUE v0.7.0 with Go 1.22.0 to prevent cue get go panics; see
0.7.0 Unknown Release notes
0.6.0 Unknown No notes