util.parseArgs()

Parses command-line arguments into structured values and positionals.

Since Node 18.3 Spec ↗

Syntax

util.parseArgs([config])

Parameters

NameTypeRequiredDescription
config object No `options` (map of flag definitions with `type`, `short`, `default`, `multiple`), `args`, `allowPositionals`, `strict`.

Returns

object — An object with `values` and `positionals`.

Examples

import { parseArgs } from 'node:util';

// node app.js --name Ada --verbose build
const { values, positionals } = parseArgs({
  options: {
    name: { type: 'string' },
    verbose: { type: 'boolean', short: 'v' },
  },
  allowPositionals: true,
});
console.log(values, positionals);
Output
{ name: 'Ada', verbose: true } [ 'build' ]
import { parseArgs } from 'node:util';

const { values } = parseArgs({
  options: { tag: { type: 'string', multiple: true } },
});
console.log(values.tag);
Output
[ 'a', 'b' ]

Notes

A zero-dependency replacement for small CLIs that would otherwise reach for `yargs`/`commander`. In strict mode (default) unknown options throw. Use `multiple: true` for repeatable flags.

See also