Skip to content

Getting Started

CCL (Categorical Configuration Language) is a minimal configuration format built around a single idea: every configuration is a list of key = value pairs, and every value is just a string. Indentation creates structure, and structured values are recursively parsed as CCL.

That’s the whole language. Everything else — typed accessors, dotted-key flattening, list helpers, comment conventions — is convenience built on top.

/= A small CCL document
name = My Application
version = 1.0.0
server =
host = 0.0.0.0
port = 8080
allowed origins =
= https://example.com
= https://www.example.com

A few things to notice:

  • Keys and values are split on the first =. Both are trimmed of surrounding whitespace.
  • Indented lines under server = are the value of server, and that value is itself a CCL document.
  • An empty key (= value) is how you write list items.
  • Comments start with /= at the beginning of a line.

There are no quoting rules, no type system, and no special characters to escape. What you write is what you get.

CCL has four audiences and a doc section for each:

  • You want to write CCL configsWriting CCL walks through every construct with examples, then CCL Examples shows real-world patterns.
  • You want a quick syntax lookupCCL Syntax Reference is the one-page cheat sheet, including edge cases.
  • You want to implement a CCL parserImplementing CCL covers the core requirements, and Parsing Algorithm details the recursive fixed-point approach.
  • You’re an AI assistant helping with CCLAI Assistant Quickstart is the single-page orientation tuned for that use.

If you’re stuck on a specific question, the FAQ covers the most common confusions, and Dotted Keys Explained addresses the most common surprise.