HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
cue-lang
cue
Go2021–2026
cue-lang / cue

cue

The home of the CUE language! Validate and define text-based and dynamic configuration

11Distinct people
24Mentions
0Explicit recommenders
6.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The home of the CUE language! Validate and define text-based and dynamic configuration

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year24 dated mentions

Observed mentions: 2021-07-06 08:30:08 UTC to 2026-09-28 03:11:01 UTC.

02462021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC716
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC303
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC505
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC606
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

What Hacker News says

24 sources
I think [1] is a good summary of the types and [2] to be a good explanation of their philosophy, but I had some experience with lattice theory and typed feature structure grammars which helped a lot. There are a couple of papers cited in [2] that would help a lot in providing background. Not quite a one-pager! Maybe it would make a good blog post... [1]: https://cuelang.org/docs/concept/the-logic-of-cue/ [2]: https://github.com/cue-lang/cue/blob/master/doc/ref/impl.md
In Adding algebraic data types to Nickel
> Besides, config languages never have the level of polish (re: tab completion and static analysis) that the main language does. They don't have to! > Why deny your users the niceties that you set up for yourself? Don't do this, of course. :) For instance, Nickel gained[1] an LSP implementation years before it hit version 1.0. When editing Nickel configs,byou get all the stuff you'd expect for a programming language: syntax highlighting, type hints, autocompletion, etc. But beyond static analysis, Nickel can also validate your configurations dynamically, according to arbitrary predicates-- and that too, integrates with your editor through the language server. Nickel ships with a command-line evaluator, REPL, pretty printer for data structures, code formatter, documentation generator, and CLI tab completions for Bash, zsh, Fish, PowerShell
Read the rest
, and Elvish. Upstream distributes the tooling (which is, Go-style, a single executable with subcommands) as a Nix flake, a Docker image, and static executables for Linux aarch64 and x86_64 (< 30 MB, for now at least). Nickel doesn't yet have a package manager[3], but other than that it honestly has a better tooling story than many general-purpose programming languages currently in widespread use. CUE, an older (but not old) configuration language (very cool in its own right), likewise has great tooling. It ships with a command-line evaluator, a pretty printer, a formatter, package management based on Go modules (i.e., it has both a `mod` and a `get` subcommand), a few refactoring tools, and tab completions for bash, zsh, and fish.[4] It currently lacks a language server[5] but there is recent and ongoing work to enable that. There's no reason that a configuration language can't have first-rate tooling! There is a new crop of really innovative, powerful configuration languages out there. I hope they start catching on. > This way all your users are suitably placed on a slippery slope where one edit in the same language but to another file will transition them from user to contributor. > Jail them in a separate language and they'll stay users forever. This, I admit, deeply appeals to me. It's one of the things I really like about the Nix language, wart-y though it may be: the tools you use to configure your NixOS computer are the same ones you can go on to use to extend NixOS. I think that's an enormous strength. But I also like for simple configuration to look really simple, and not trouble you much with the details of the language (or, God forbid, configuring the runtime). Perhaps programmable configuration languages, then, are good fits for tools like build systems and packaging systems (where the 'upstream' code users might next want to play with is also essentially fancy, expressive configuration in a special domain), but embedded DSLs might be better for applications (and work for packaging and build systems, too). Re: creating a continuous road for users to hack on the software they use, GNU is really trying to do something special there: with Guix you have application configuration, package management, and system configuration handled in a DSL in Guile Scheme. But then Guix itself is also written in Guile! And at the same time, Guile is the official extension language of the GNU project, so GNU applications all (hopefully?) have Guile bindings, so you can use the same language to plug into (hopefully?) all the other GNU applications on your system. It's a cool idea. -- 1: https://github.com/tweag/nickel/pull/405 2: https://www.tweag.io/blog/2024-05-16-nickel-programmable-lsp... 3: https://github.com/tweag/nickel/issues/1585 4: https://cuelang.org/docs/reference/command/ 5: https://github.com/cue-lang/cue/issues/142
In What you learn by making a new programming language
I tried it early on, being a big CUE fan. Pros: - comes from someone with deep k8s experience - has features for secrets and dynamic information based on k8s version and CRDs - thinks about the full life-cycle and e2e process Cons: (at the time) - holds CUE weird, there are places where they overwrite values (helm style) which is antithetical to CUE philosophy. This was rationalized to me as keeping with the Helm mindset rather than using the CUE mindset, because it is what people are used to. I think this misses the big opportunity for CUE in k8s config. - has its own module system that probably won't integrate with CUE's (as it stands today), granted CUE's module system wasn't released at the time, but it seems the intention is to have a separate system because the goal is to align with k8s more than CUE - Didn't allow for Helm modules
Read the rest
to be dependencies. This seems to have since changed, but requires you to use FluxCD (?) I didn't ever adopt it because of the philosophical differences (me from CUE, stefan from k8s). I have seen others speak highly of it, definitely worth checking out to see if it is something you'd like. I have plans for something similar once an internal Go package in CUE is made publicly available (https://github.com/cue-lang/cue/commits/master/internal/core...). The plan is to combine the CUE dep package with OpenTofu's graph solver to power a config system that can span across the spaces.
In Show HN: Glasskube – Open Source Kubernetes Package Manager, alternative to Helm
CUE's module system is finally rolling out, MVS likes Go's, but built on OCI infra. If you are interested in dependency management systems, here are some links - proposal: https://github.com/cue-lang/proposal/tree/main/designs/modul... - custom registry: https://cuelang.org/docs/tutorial/working-with-a-custom-modu... - road map: https://github.com/orgs/cue-lang/projects/10/views/8 - in 0.9.0-alpha-5, modules become enabled by default: https://github.com/cue-lang/cue/releases/tag/v0.9.0-alpha.5 For Go Sum, the Trillian project backs the transparency log: https://github.com/google/trillian CUE plans to piggyback on the OCI options with attestations and such
In Abusing Go's Infrastructure
This will be very interesting. LLM/ChatGPT is based on stochastic approach to NLP while the alternative e.g. Typed Feature Grammar (TFG) is based on deterministic approach [1]. Apparently Cuelang is based on the latter and since it's a constraint based language you can use it against the prompt (input) and also for checking the output as well [2],[3]. What it means is that LLM/ChatGPT and TFG/Cuelang can be used in concert to produce or generate codes by well crafted prompt based on the language spec and similarly also to debug based on the spec. This will probably change and enhance the discipline of software engineering as we know it for the better. [1]Feature (linguistics): https://en.wikipedia.org/wiki/Feature_(linguistics) [2]The CUE Data Constraint Language: https://cuelang.org/ https://github.com/cue-lang/cue [3]Show HN: GPT-JSON –
Read the rest
Structured and typehinted GPT responses in Python: https://news.ycombinator.com/item?id=35821748
In Show HN: Verify LLM Generated Code with a Spreadsheet
I actually compared Dhall and CUE when I first decided to pick a language for config. CUE's theory spoke to me more, this page in particular https://cuelang.org/docs/concepts/logic/ Dhall is written in Haskell, CUE in Go. I write Go extensively and can make use of CUE's Go API, something I couldn't do with Dhall. Since then, it seems like Dhall's development has fallen off a cliff. The CUE creator has built a team and they have raised funds. There is a sizable team behind CUE now. Lot's of exciting things to come. There's a CUE community call next Tuesday, if you want to watch live: https://github.com/cue-lang/cue/discussions/2219 and the old ones are here: https://www.youtube.com/@cuelang CUE can detect backwards compatibility of config, I use this for your exact use case. https://docs.hofstadter.io/first-example/data-layer/checkpoi... (
Read the rest
sorry, I need to work on the docs more) The goal is to be able to generate SQL to create and migrate database tables automatically.
In What Technologies Are You Future Proofing With?
The CUE team was looking at a $8k monthly bill for keeping Slack. The money Slack wants can be pretty outrageous when most users don't even chat. Add on top that a single user is likely in several orgs, the money they make per user is approaching usury, if you'll pardon the pun CUE is keeping Slack for now and accepting limited history https://github.com/cue-lang/cue/discussions/1839 has an overview of the situation and a discussion of alternatives being considered
In Slack’s free plan change is causing an exodus

Showing the 15 most recent of 24 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.