Sign inDemoInstall


Package Overview
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies



parse argument options

Version published
Install size
53.2 kB

Package description

What is minimist?

The minimist package is a command-line argument parser that helps to convert argument strings into a structured format. It is designed to be minimalist and simple to use, focusing on parsing the options passed to a Node.js script.

What are minimist's main functionalities?

Parse command-line arguments

This feature allows you to parse command-line arguments. The process.argv array is sliced to remove the first two elements (node and script path), and the remaining elements are parsed by minimist to create an object with the arguments.

const minimist = require('minimist');
const args = minimist(process.argv.slice(2));

Custom argument parsing

This feature allows for custom parsing options such as specifying which arguments should be treated as strings or booleans, and setting aliases for argument names.

const minimist = require('minimist');
const args = minimist(process.argv.slice(2), {
  string: ['lang'],
  boolean: ['version'],
  alias: { v: 'version' }

Default argument values

This feature allows you to provide default values for arguments that are not supplied on the command line.

const minimist = require('minimist');
const args = minimist(process.argv.slice(2), {
  default: { lang: 'en', debug: false }

Other packages similar to minimist



v1.2.8 - 2023-02-09


  • [Fix] Fix long option followed by single dash #17
  • [Tests] Remove duplicate test #12
  • [Fix] opt.string works with multiple aliases #10


  • [Fix] Fix long option followed by single dash (#17) #15
  • [Tests] Remove duplicate test (#12) #8
  • [Fix] Fix long option followed by single dash #15
  • [Fix] opt.string works with multiple aliases (#10) #9
  • [Fix] Fix handling of short option with non-trivial equals #5
  • [Tests] Remove duplicate test #8
  • [Fix] opt.string works with multiple aliases #9


  • Merge tag 'v0.2.3' a026794
  • [eslint] fix indentation and whitespace 5368ca4
  • [eslint] fix indentation and whitespace e5f5067
  • [eslint] more cleanup 62fde7d
  • [eslint] more cleanup 36ac5d0
  • [meta] add auto-changelog 73923d2
  • [actions] add reusable workflows d80727d
  • [eslint] add eslint; rules to enable later are warnings 48bc06a
  • [eslint] fix indentation 34b0f1c
  • [readme] rename and add badges 5df0fe4
  • [Dev Deps] switch from covert to nyc a48b128
  • [Dev Deps] update covert, tape; remove unnecessary tap f0fb958
  • [meta] create FUNDING.yml; add funding in package.json 3639e0c
  • [meta] use npmignore to autogenerate an npmignore file be2e038
  • Only apps should have lockfiles 282b570
  • isConstructorOrProto adapted from PR ef9153f
  • [Dev Deps] update @ljharb/eslint-config, aud 098873c
  • [Dev Deps] update @ljharb/eslint-config, aud 3124ed3
  • [meta] add safe-publish-latest 4b927de
  • [Tests] add aud in posttest b32d9bd
  • [meta] update repo URLs f9fdfc0
  • [actions] Avoid 0.6 tests due to build failures ba92fe6
  • [Dev Deps] update tape 950eaa7
  • [Dev Deps] add missing npmignore dev dep 3226afa
  • Merge tag 'v0.2.2' 980d7ac



minimist Version Badge

github actions coverage License Downloads

npm badge

parse argument options

This module is the guts of optimist's argument parser without all the fanciful decoration.


var argv = require('minimist')(process.argv.slice(2));
$ node example/parse.js -a beep -b boop
{ _: [], a: 'beep', b: 'boop' }
$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
	_: ['foo', 'bar', 'baz'],
	x: 3,
	y: 4,
	n: 5,
	a: true,
	b: true,
	c: true,
	beep: 'boop'


Previous versions had a prototype pollution bug that could cause privilege escalation in some circumstances when handling untrusted user input.

Please use version 1.2.6 or later:


var parseArgs = require('minimist')

var argv = parseArgs(args, opts={})

Return an argument object argv populated with the array arguments from args.

argv._ contains all the arguments that didn't have an option associated with them.

Numeric-looking arguments will be returned as numbers unless opts.string or opts.boolean is set for that argument name.

Any arguments after '--' will not be parsed and will end up in argv._.

options can be:

  • opts.string - a string or array of strings argument names to always treat as strings

  • opts.boolean - a boolean, string or array of strings to always treat as booleans. if true will treat all double hyphenated arguments without equal signs as boolean (e.g. affects --foo, not -f or --foo=bar)

  • opts.alias - an object mapping string names to strings or arrays of string argument names to use as aliases

  • opts.default - an object mapping string argument names to default values

  • opts.stopEarly - when true, populate argv._ with everything after the first non-option

  • opts['--'] - when true, populate argv._ with everything before the -- and argv['--'] with everything after the --. Here's an example:

    > require('./')('one two three -- four five --six'.split(' '), { '--': true })
      _: ['one', 'two', 'three'],
      '--': ['four', 'five', '--six']

    Note that with opts['--'] set, parsing for arguments still stops after the --.

  • opts.unknown - a function which is invoked with a command line parameter not defined in the opts configuration object. If the function returns false, the unknown option is not added to argv.


With npm do:

npm install minimist





Last updated on 09 Feb 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.


Related posts

SocketSocket SOC 2 Logo


  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc