Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including multigrain with all npm packages installed. Try it out:

var multigrain = require("multigrain")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

multigrain v2.0.3

Single-step conversion between JSON, YAML, CSON, PLIST, and TOML.

Multigrain logo


Single-step conversion between JSON, YAML, CSON, PLIST, & TOML.

Build Status Dependencies Version License

npm install multigrain

Multigrain provides simple conversion between common serial formats, avoiding the need to manually chain processors with differing syntaxes when a variety of formats and conversions are necessary. This can be particularly useful when multiple consumers require the same information in different serialized formats, such as language grammars.


The most basic use is to call the desired output format function and pass an input string or JavaScript object. Multigrain will return a string in the requested format. If a string is passed as input, Multigrain will use some simple heuristics to infer the input format.


Alternatively, parse will return a native JavaScript object.


You can pass the input format explicitly (json, yaml, cson, plist, or toml) as the second argument. Unless your input format can vary unpredictably, this is recommended.

multigrain.json(input, "toml");

Options supported by the underlying parser can be passed as an optional argument.

multigrain.yaml(input, "plist", parseOpts);

Supported build options can optionally be passed similarly.

multigrain.cson(input, "json", parseOpts, buildOpts);


Default parse and build options can be specified, which will be used for all following parse and build calls that don't specify explicit options.

multigrain.options.yaml.parse({ merge: false });{ indent: "  " });

Options can also be reset to Multigrain defaults.



Multigrain uses the following processors for parsing and building:

See their respective documentation for parse and build options.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free