Skip to content

The config object

Use this reference to look up exact keys and allowed values. To build a project, start with the step-by-step tutorial, visual field guide, or illustrated cookbook.

These tables are generated from the published JSON Schema. They describe the configuration structure; MLabel also checks relationships such as copied field types and shortcut conflicts when loading a 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. Set updateChecks to false to forbid network requests.
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. Set updateChecks to false to forbid network requests.

Key Type Required Notes
updateChecks boolean no Whether to check GitHub Releases for updates. Absent or true means checks run; false forbids that traffic entirely.

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.