Skip to content

The config object

The root of every config file.

Key Type Required Notes
$schema string no Path or URL to this JSON Schema, for editor autocomplete. Use https://mlabel.vlad.gg/mlabel.schema.json for a standalone config.
version 2 yes Config format version. This build reads version 2 only; a config with no version, or a different one, is rejected with a single clear message rather than a cascade of shape errors.
ui object no Chrome-level presentation.
network object no Network policy. The update check is the only remote request this app ever performs, and it is opt-out.
input object yes What is read from the source file and shown read-only.
output object yes What the labeler captures, or the app fills in.

Chrome-level presentation.

Key Type Required Notes
appTitle string | object no The window title: a literal string, or { "field": "…" } to use the value of an input field, which changes per record.

Network policy. The update check is the only remote request this app ever performs, and it is opt-out.

Key Type Required Notes
updateChecks boolean no Whether to check GitHub Releases for updates. false forbids every network call the app could make. Absent or true means checks run.

What is read from the source file and shown read-only.

Key Type Required Notes
adapterId string no Which format adapter handles this side. csv is the only one built in; it also reads .tsv. min length 1
adapterConfig object no Opaque, adapter-owned options — for CSV, delimiter and quoteChar on input, delimiter and newline on output. The core never reads this, so it is the one object in the config where unknown keys are allowed.
fields array of InputField yes The source columns to read and show read-only. at least 1 item
rules array of DisplayRule no Purely visual rules over displayed input values. A rule can never change what is exported.
cards array of Card no Layout. Omit for one implicit card holding every field, one per row.

What the labeler captures, or the app fills in.

Key Type Required Notes
adapterId string no Which format adapter handles this side. csv is the only one built in; it also reads .tsv. min length 1
adapterConfig object no Opaque, adapter-owned options — for CSV, delimiter and quoteChar on input, delimiter and newline on output. The core never reads this, so it is the one object in the config where unknown keys are allowed.
fields array of OutputField yes The columns written to the output file. at least 1 item
cards array of Card no Layout. Omit for one implicit card holding every field, one per row.