huml

SKILL.md

HUML (Human-oriented Markup Language)

HUML is a strict, unambiguous serialization language similar to YAML but without YAML's quirks and gotchas. It's designed for configuration files and data serialization where human readability matters.

Core Syntax Rules

Indentation

  • Strictly 2 spaces per nesting level (tabs not allowed)
  • No trailing spaces (except in multiline strings)

Keys and Values

  • Single colon : for scalar values (strings, numbers, booleans, null)
  • Double colon :: for vectors (lists and dicts)
  • Single space required after : and ::
name: "MyApp"           # scalar - single colon
settings::              # vector - double colon
  debug: true

Strings

  • Must be double-quoted (no barewords like YAML)
  • Escape \ and " with backslash
  • Multi-line strings use triple quotes """
simple: "hello world"
escaped: "path\\to\\file"
multiline: """
  Line one
  Line two
"""

Numbers

integer: 42
float: 3.14
scientific: 1.5e-3
hex: 0x1A
binary: 0b1010
special: inf, -inf, nan

Booleans and Null

enabled: true
disabled: false
empty: null

Lists

# Inline
tags:: "web", "api", "v2"

# Multiline
items::
  - "first"
  - "second"

# Empty
empty:: []

Dicts

# Inline (scalars only)
point:: x: 1, y: 2

# Multiline (supports nesting)
database::
  host: "localhost"
  port: 5432

# Empty
empty:: {}

Comments

# Comment (space after # required)
key: "value"  # inline comment

Version Directive (Optional)

%HUML v0.2.0

Quick Reference

Feature HUML Syntax
String "quoted"
Number 42, 3.14, 0xFF
Boolean true, false
Null null
Scalar key key: value
Vector key key:: items
List item - item
Comment # text

Common Patterns

Configuration File

%HUML v0.2.0

app::
  name: "MyService"
  port: 8080
  debug: false

database::
  host: "localhost"
  credentials::
    user: "admin"
    pass: "secret"

List of Objects

servers::
  - name: "web1"
    host: "10.0.0.1"
    port: 80
  - name: "web2"
    host: "10.0.0.2"
    port: 80

Validation

Use the bundled validation script to check HUML syntax and convert to JSON:

node scripts/validate.mjs path/to/file.huml

On success, outputs the parsed JSON. On failure, shows detailed error message.

Requirements: Node.js with @huml-lang/huml package installed.

Full Specification

See references/spec.md for the complete v0.2.0 specification including:

  • All number formats and escape sequences
  • Multiline string indentation rules
  • Key naming rules
  • Edge cases and formatting details

Resources

Weekly Installs
4
First Seen
Jan 29, 2026
Installed on
opencode4
antigravity4
claude-code4
codex4
gemini-cli4
continue3