HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
kson-org
kson
Kotlin2025–2025
kson-org / kson

kson

A 💌 to the humans maintaining computer configurations

3Distinct people
7Mentions
0Explicit recommenders
175GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A 💌 to the humans maintaining computer configurations

GitHub

Where it is used

No documented product use has been verified yet.

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:03:16 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 3-hour interval7 dated mentions

Observed mentions: 2025-09-18 15:34:57 UTC to 2025-09-20 15:48:19 UTC.

0122025-09-18 15:00:00 UTC to 2025-09-18 18:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsSep 18, 15:002025-09-18 18:00:00 UTC to 2025-09-18 21:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-09-18 21:00:00 UTC to 2025-09-19 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-09-19 00:00:00 UTC to 2025-09-19 03:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-09-19 03:00:00 UTC to 2025-09-19 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-19 06:00:00 UTC to 2025-09-19 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-19 09:00:00 UTC to 2025-09-19 12:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-09-19 12:00:00 UTC to 2025-09-19 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-19 15:00:00 UTC to 2025-09-19 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsSep 19, 15:002025-09-19 18:00:00 UTC to 2025-09-19 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-19 21:00:00 UTC to 2025-09-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-20 00:00:00 UTC to 2025-09-20 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-20 03:00:00 UTC to 2025-09-20 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-20 06:00:00 UTC to 2025-09-20 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-20 09:00:00 UTC to 2025-09-20 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-20 12:00:00 UTC to 2025-09-20 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-20 15:00:00 UTC to 2025-09-20 18:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsSep 20, 15:00

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
Sep 18, 15:002025-09-18 15:00:00 UTC2025-09-18 18:00:00 UTC110
Sep 18, 18:002025-09-18 18:00:00 UTC2025-09-18 21:00:00 UTC202
Sep 18, 21:002025-09-18 21:00:00 UTC2025-09-19 00:00:00 UTC101
Sep 19, 00:002025-09-19 00:00:00 UTC2025-09-19 03:00:00 UTC101
Sep 19, 03:002025-09-19 03:00:00 UTC2025-09-19 06:00:00 UTC000
Sep 19, 06:002025-09-19 06:00:00 UTC2025-09-19 09:00:00 UTC000
Sep 19, 09:002025-09-19 09:00:00 UTC2025-09-19 12:00:00 UTC101
Sep 19, 12:002025-09-19 12:00:00 UTC2025-09-19 15:00:00 UTC000
Sep 19, 15:002025-09-19 15:00:00 UTC2025-09-19 18:00:00 UTC000
Sep 19, 18:002025-09-19 18:00:00 UTC2025-09-19 21:00:00 UTC000
Sep 19, 21:002025-09-19 21:00:00 UTC2025-09-20 00:00:00 UTC000
Sep 20, 00:002025-09-20 00:00:00 UTC2025-09-20 03:00:00 UTC000
Sep 20, 03:002025-09-20 03:00:00 UTC2025-09-20 06:00:00 UTC000
Sep 20, 06:002025-09-20 06:00:00 UTC2025-09-20 09:00:00 UTC000
Sep 20, 09:002025-09-20 09:00:00 UTC2025-09-20 12:00:00 UTC000
Sep 20, 12:002025-09-20 12:00:00 UTC2025-09-20 15:00:00 UTC000
Sep 20, 15:002025-09-20 15:00:00 UTC2025-09-20 18:00:00 UTC101

What Hacker News says

7 sources
That's right, KSON the language is any string that parses successfully as KSON. We have a formal grammar for the language [1], and once we validate/harden the design through our beta, we plan to express that in a spec, and we plan to provide a test suite for external implementations to validate themselves against (likely something similar to https://github.com/nst/JSONTestSuite). I don't think warnings will be part of the spec, though classes of errors may be specified (TBD). This will allow, for instance, implementations that prioritize pure speed by leaving all the guardrails off and simply replying "NO." when they are unable to parse some KSON (and then possibly falling back to a parse with richer validations?). But languages are more than syntax, they are also the ecosystem of tools around the language. And for a language to be useful
Read the rest
and reliable, that ecosystem of tools needs to be excellent, and it needs to be available on any platform you want to use that language. That's a really important motivator for KSON's multiplatform architecture, which allows us to reach all these platforms[2] and editors[3] (with even more to come!) [1] https://github.com/kson-org/kson/blob/857d585ef26d9f73e080b5... [2] https://kson.org/docs/install/#languages [3] https://kson.org/docs/install/#editor-support
In Configuration files are user interfaces
Hey zahiman, thanks for all the Qs. Trying to address them: KSON (stands for: KSON Structured Object Notation) is designed not as an nth standard, but rather as an idea of how to play nice with all n-1 existing standards. Since our comments (we do support comments!) are preserved in formatting and transpilation (provided the underlying language supports comments), you may use KSON as how you edit whatever underlying config file your system wants (currently YAML and JSON are supported, with a clear path to adding other targets like TOML <https://github.com/kson-org/kson/issues/202>) Why is it better than TOML? We don't insist that everyone agree it is! But here's two ways to contrast them: - We prefer that KSON's recursive structure makes nesting consistent. You can see for instance in the grammar that a Kson list value is a list of Ks
Read the rest
on values: https://github.com/kson-org/kson/blob/857d585ef26d9f73e080b5... - For use cases where folks are hand-editing non-trivial config, especially if they are using embedded code blocks of any kind: if they long for more help from their tooling, KSON makes that tooling possible.
In Show HN: KSON, a love-letter to the humans maintaining computer configuration
I think the current grammar should be precise enough for that, though it's embedded in the source code as a comment and not in its own file (see https://github.com/kson-org/kson/blob/857d585ef26d9f73e080b5...). It probably can't be fed verbatim into a parser generator, but anyone who reads the parser's source code should have an easy time writing a parser by hand for their programming language of choice (heck, they might even have an LLM translate the original parser into whatever language they want, once there is a comprehensive conformance test suite to validate the resulting code). All in all, I'm confident that KSON can become ubiquitous despite the limitations of the current implementation (provided it catches on, of course).
In Configuration files are user interfaces
Sounds interesting as a format, but the implementation is a big supply-chain attack risk if you're not already in the JVM ecosystem. This is because the only implementation is written in Kotlin. There are Python and Rust packages, but they both just link against the Kotlin version. How do you build the Kotlin version? Well, let's look at the Rust package's build.rs: https://github.com/kson-org/kson/blob/main/lib-rust/kson-sys... It defaults to simply downloading a precompiled library from GitHub, without any hash verification. You can instead pass an environment variable to build libkson from source. However, this will run the ./gradlew script in the repo root, which… downloads an giant OpenJDK binary from GitHub and executes it. Later in the build process it does the same for pixi and GraalVM. The build scripts also only support a sm
Read the rest
all list of platforms (Windows/Linux/macOS on x86_64/arm64), and don't seem to handle cross-compilation. The compiled library is 2MB for me, which is actually a lot less than I was expecting, so props for that. But that's fairly heavy by Rust standards.
In Configuration files are user interfaces
Hmmm that's interesting. KSON actually shows a warning when there's misleading indentation, exactly to prevent this sort of thing! It seems like the detection logic only considers indents after a new line, so it doesn't complain in this case. I just opened an issue to see if things can be tightened up a bit (https://github.com/kson-org/kson/issues/221). To see misleading indentation warnings in action, you can try the following snippet in the playground (https://kson.org/playground/) and will properly get a warning: ports: - 80 - 8000 - 10000 - 12000 - 14000 Next to that, note that KSON already has an autoformatter, which also helps prevent misleading indentation in files.
In Configuration files are user interfaces
dmarcotte·Sep 18, 2025Submission

Show HN: KSON, a love-letter to the humans maintaining computer configuration

Hi friends, I'm really excited to introduce KSON, which just entered public beta! Anywhere a human is reading or editing YAML/JSON/TOML, KSON may be used as a more effective interface on that data. If you are such a human, we invite you to participate in this beta. tl;dr Check out the website [1], play with the online playground [2], install the library for your programming language [3], edit in your favorite editor [4], discuss and give feedback [5], contribute to the project [6]. (A personal note about this project: I love software. Machines made of words! Such a wonder. KSON itself, as a collection of words that both make a machine and explain that machine, is an expression of a lot ideas I feel really passionately about around software and our relationship to it. I've put a lot of love into trying to make that expression eloquent and
Read the rest
reliable. I hope some of that comes through clearly, and I look forward to discussing this more over time with anyone who's interested) One of the key things KSON wants to say is: let's keep everything that's great about YAML and JSON as "Configuration User Interfaces", and let's make those interfaces more toolable, robust, and fun. Here's some of the ways we do that: - KSON is a verified superset of JSON, has native JSON Schema support, transpiles cleanly to YAML (with comments preserved!), and is likely available wherever you want it—current supported platforms: JS/TS, Python, Rust, JVM, and Kotlin Multiplatform. - KSON is also widely available in developer tools, with support for VS Code, Jetbrains IDEs, and anywhere you can plug in an LSP. - KSON is fully open source, licensed under Apache-2.0, and you are invited to meet its words and tinker with how they make its machine. A lot of care, craft, attention and joy went into making the KSON project understandable and approachable for developers. We hope to see you around. PS. This is an HN-friendly version of the official announcement at <https://kson.org/docs/blog/2025/09/17/introducing-kson/>. [1]: https://kson.org/ [2]: https://kson.org/playground/ [3]: https://kson.org/docs/install/#languages [4]: https://kson.org/docs/install/#editor-support [5]: https://kson-org.zulipchat.com/ [6]: https://github.com/kson-org/kson
34 points · Open discussion

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.