Runtime
Bundler
Package Manager
Test Runner
Guides
Reference
Blog
Install Bun
Guides Process & System

Parse command-line arguments

The argument vector is the list of arguments passed to the program when it is run. It is available as Bun.argv.

cli.ts
console.log(Bun.argv);

Running this file with arguments results in the following:

terminal
$ bun run cli.ts --flag1 --flag2 value

[ "/path/to/bun", "/path/to/cli.ts", "--flag1", "--flag2", "value" ]

To parse argv into a more useful format, use util.parseArgs.

cli.ts
import { parseArgs } from "util";

const { values, positionals } = parseArgs({
  args: Bun.argv,
  options: {
    flag1: {
      type: "boolean",
    },
    flag2: {
      type: "string",
    },
  },
  strict: true,
  allowPositionals: true,
});

console.log(values);
console.log(positionals);

Running cli.ts with the same arguments prints the parsed values.

terminal
$ bun run cli.ts --flag1 --flag2 value

[Object: null prototype] {
  flag1: true,
  flag2: "value",
}
[ "/path/to/bun", "/path/to/cli.ts" ]

On this page

No Headings