YINI — Simple, Structured Config

The YINI config format is a modern, structured, and human-friendly configuration language designed to bridge the gap between the simplicity of INI and the expressiveness of YAML, and even more.

💡 Why YINI?

INI is simple and familiar, but it lacks structure for complex data.
YAML offers rich features, though it can be harder to read and lint consistently.
JSON is precise and universal, but less concise for human editing.
YINI aims to balance these aspects — keeping readability while providing clear nesting and predictable behavior.
  • Familiar — learn it in minutes if you know INI
  • Structured — sections, arrays, objects, clear nesting
  • Predictable — fewer gotchas; strict/lenient modes available

⚡ TL;DR — Quick Start

Try YINI in three quick steps:

  • 1) Create a file

    Save the two lines below as config.yini:
    ^ App
    name = 'Hello'

    ⚠️ Make sure you save the file with the .yini extension (not .txt).

  • 2) Run this in your terminal

    From the same folder where you saved the file:

    npx yini-cli parse config.yini
  • 3) See the result

    This prints the following JavaScript object:

    { App: { name: 'Hello' } }
  • Bonus: Pretty-printed JSON output

    Use the --pretty flag, and run this line:

    npx yini-cli parse config.yini --pretty

    Which gives the following (JSON):

    {
        "App": {
            "name": "Hello"
        }
    }
    

📝 Example

YINI code:

^ App
  name = "My App"
  version = "1.2.3"
  pageSize = 25
  darkTheme = off

Parsed output (JS):

{
    "App": {
        "name": "My App",
        "version": "1.2.3",
        "pageSize": 25,
        "darkTheme": false
    }
}

🧩 Features

  1. Readable & Familiar

    Plain key/value with clear sections and optional strict mode.

  2. Structured

    Native lists, objects, and nesting — no guessing, no surprises.

  3. Specified

    A formal, versioned spec and ANTLR grammar keep implementations aligned.

  4. Tooling First

    Parsers, CLI, editors, and validation designed from day one.

  5. Open-source Software

    YINI is free, open-source software

ℹ️ About

YINI is a new configuration format, formalized in 2025. It's a structured configuration format designed for clarity, easy nesting, and strict validation.

The format's syntax and behavior are defined in the YINI Specification, currently at Version 1.0 — Candidate Release.

YINI was created and is maintained by Marko K. Seppänen as an open-source project under the YINI-lang organization.

The specification, tooling, and ecosystem are actively evolving toward the first stable release.

🛠️ Contribute & Get Involved

YINI is open-source and evolving. You can help by trying it, reporting issues, contributing code, or just ⭐ the project on GitHub.

🔭 Next steps

  • Get Started

    Learn how to install and use YINI from CLI.

  • Quick Tutorial

    5-minute guided walkthrough of YINI — the basics of the YINI format and how to validate it.

  • FAQ

    Common questions answered.

  • Specification

    Official YINI format rules — Full technical details of the YINI format.