Skip to main content

Customizing the output

The web wizard asks for the details it can't work out from your data — authors, a dataset description, descriptions for unfamiliar columns — using on-screen forms. The CLI has no forms, so you write that same information into a JSON options file and hand it over.

Pass it with the --metadata-options flag, or choose Use a custom metadata file when the CLI prompts you.

File format

A plain JSON file — call it what you like and keep it wherever you like. Each key in it corresponds to a field in dataset_description.json. Two keys, author and variables, get special treatment (covered below); every other key is copied into the metadata as-is.

{
"name": "Flanker Study",
"description": "A jsPsych flanker task measuring response inhibition.",
"author": {
"Alex Johnson": {
"givenName": "Alex",
"familyName": "Johnson",
"identifier": "https://orcid.org/0000-0000-0000-0000"
}
},
"variables": {
"rt": {
"description": { "user": "Response time in ms from stimulus onset to key press." }
}
}
}

You only need to include what you want to add or override — everything else is generated automatically from your data.

Top-level fields

The ones people use most:

FieldTypeDescription
namestringThe name of the dataset.
descriptionstringA plain-language description of the dataset.
licensestringThe license the data is shared under (e.g. "CC-BY-4.0").
citationstringA citation for the dataset or associated publication.
urlstringWhere the dataset can be found (e.g. an OSF link).
funderstringName of the funding body.
keywordsarrayKeywords describing the study (e.g. ["attention", "inhibition"]).

These map to Schema.org Dataset properties; any valid Schema.org field can be included.

Author fields

Under author, each entry is one person. The label you give the entry ("Alex Johnson" in the example above) is their display name, and every field inside it is optional.

FieldDescription
nameFull name. If you leave it out, the entry's label is used.
givenNameFirst name.
familyNameLast name.
identifierA permanent link to the person, such as an ORCID.

Variable fields

Use variables to add to or correct what the tool worked out from your data. Label each entry with the column name exactly as it appears in your files.

note

This file updates entries the tool generated — it can't create variables that aren't in your data.

{
"variables": {
"rt": {
"description": { "user": "Response time in milliseconds." },
"minValue": 0,
"maxValue": 5000
},
"correct": {
"description": { "user": "Whether the response was correct." },
"levels": ["true", "false"],
"levelsOrdered": false
}
}
}

Notice that description isn't plain text — it's wrapped in { "user": … }. That label records where the description came from, so what you write sits next to the plugin's version rather than replacing it. Always use "user" for your own text. To keep only your version, edit dataset_description.json after generating it.

The fields you can set on a variable:

FieldTypeDescription
descriptionobjectWhat the column means, written as { "user": "…" } (see above).
minValue / maxValuenumberExpected range for numeric variables.
levelsarrayPossible values for categorical variables.
levelsOrderedbooleanWhether levels has a meaningful order (e.g. a Likert scale).
nabooleanWhether the column has missing values.
naValuestringWhat missing values look like in the data (e.g. "NA", "999").
alternateNamestringAnother name or abbreviation for the column.
identifierstringA link to a formal definition of the variable.
privacystringNotes on how sensitive the column is.
tip

Run the tool once without an options file, open dataset_description.json to see what was generated, then use the options file to fill the gaps and re-run. Custom descriptions persist across re-runs — updating a project reloads the existing file first.


Next: the CLI reference for every flag and rule, or Troubleshooting if something looks off.