From the comments here I can infer that it has a schema and in turn I can extrapolate that this is as much "for humans" as many other config formats that are deterministically parseable.
A GUI is a config format for humans as it can you show what all of the configuration options are along with text that tells you what they do.
lightandlight 1 hours ago [-]
Ironically the project seems LLM-generated.
I don't want to read Claude's interpretation of why your project matters. I want you to tell me directly.
functionmouse 10 minutes ago [-]
> your project
there's a very good chance there's no human involvement at all in this
james_marks 58 minutes ago [-]
From the title, I thought this was a specification for configuring humans. I don't quite know what that means, and I'm disappointed still not to know.
VTimofeenko 8 minutes ago [-]
Could probably compile it into CRISPR editing spec
catlifeonmars 12 minutes ago [-]
There are numerous inaccuracies in the “Why not TOML” section of the README. Here are a few:
> CVE-2026-44244 injected a [core] section into .git/config for code execution.
Git config is not TOML. It’s an ini-based bespoke syntax
> SOML needs quotes for a literal dot.
So does TOML, the dot notation is for nested keys. You use quotes for a literal dot.
——
FWIW I like the decision to have a first class duration type.
CodesInChaos 1 hours ago [-]
What I'm missing:
1. The readme doesn't make it clear what its "float" type is. A double, a decimal, implementation defined. I'm generally not a fan of restricting numbers to what a double can represent, like toml does.
2. It doesn't have a good way to model key-value pair like types such as tagged unions, polymorphic types, or function invocations. Simply allowing a key-value pair as a value (right associative) where the key is a string matching the keys of an object would fix this. Alternatively a function call syntax would fix this, which would also enable tuples as a concept distinct from arrays.
bjacobso 46 minutes ago [-]
The tagged-union / function-call point is where I keep ending up too. Once a config needs “one of these shapes” or “this thing with these arguments”, data formats grow conventions on top (type: keys, YAML !tags, $ref), and every consumer reimplements them.
I’ve been building Forma (https://forma-lang.com), a small typed Lisp aimed at that zone. Everything is (head args...), so a tagged value and a call are the same syntax, and you declare the vocabulary yourself:
job and backoff are forms you define with typed holes. The checker reports errors at the line you wrote, even after macro expansion. The output is plain JSON (or generated Effect TypeScript, but could target any language), so the app reading it doesn’t embed the language.
priomsrb 38 minutes ago [-]
Looks nice!
It would be great if you had a simple website that allowed you to enter SOML and see the JSON side-by-side (similar to typescript playground https://www.typescriptlang.org/play/).
jll29 2 hours ago [-]
Looks like Windows *.ini format except ":" instead of "="...
CodesInChaos 1 hours ago [-]
Not really. INI has a fixed structure (section>key>value) and its values are untyped.
petre 41 minutes ago [-]
We already have TOML and it's great. I can seamlessly upgrade from ini to toml.
catlifeonmars 7 minutes ago [-]
[delayed]
microflash 25 minutes ago [-]
There's a comparison [0] where some differences are explained.
So a stripped down variant of cue? Why not use cue directly?
brianm 1 hours ago [-]
Cue only really exists in go, and has a dependency chain to make maven weep.
I think cue is better thought of as a language you use to generate JSON (or yaml, or, let's be honest, k8s flavored yaml) configs rather than a config language you use in your app.
mgantlett 1 hours ago [-]
[flagged]
esafak 2 hours ago [-]
Can you add README sections for the schema and supported types?
microflash 27 minutes ago [-]
Not my project but there's apparently plan for schema [0] (the link currently 404s).
A GUI is a config format for humans as it can you show what all of the configuration options are along with text that tells you what they do.
I don't want to read Claude's interpretation of why your project matters. I want you to tell me directly.
there's a very good chance there's no human involvement at all in this
> CVE-2026-44244 injected a [core] section into .git/config for code execution.
Git config is not TOML. It’s an ini-based bespoke syntax
> SOML needs quotes for a literal dot.
So does TOML, the dot notation is for nested keys. You use quotes for a literal dot.
——
FWIW I like the decision to have a first class duration type.
1. The readme doesn't make it clear what its "float" type is. A double, a decimal, implementation defined. I'm generally not a fan of restricting numbers to what a double can represent, like toml does.
2. It doesn't have a good way to model key-value pair like types such as tagged unions, polymorphic types, or function invocations. Simply allowing a key-value pair as a value (right associative) where the key is a string matching the keys of an object would fix this. Alternatively a function call syntax would fix this, which would also enable tuples as a concept distinct from arrays.
I’ve been building Forma (https://forma-lang.com), a small typed Lisp aimed at that zone. Everything is (head args...), so a tagged value and a call are the same syntax, and you declare the vocabulary yourself:
job and backoff are forms you define with typed holes. The checker reports errors at the line you wrote, even after macro expansion. The output is plain JSON (or generated Effect TypeScript, but could target any language), so the app reading it doesn’t embed the language.It would be great if you had a simple website that allowed you to enter SOML and see the JSON side-by-side (similar to typescript playground https://www.typescriptlang.org/play/).
[0]: https://github.com/soml-lang/soml/blob/main/comparison.md
I think cue is better thought of as a language you use to generate JSON (or yaml, or, let's be honest, k8s flavored yaml) configs rather than a config language you use in your app.
[0]: https://github.com/soml-lang/soml/blob/main/schema.md
I'm curious for example configs that are top-level lists?
1: https://huml.io/