Guides · Processes & System
Parse command-line arguments
Read command-line arguments from Bun.argv and parse them into flags and positionals with util.parseArgs.
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:
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.
bun run cli.ts --flag1 --flag2 value
[Object: null prototype] {
flag1: true,
flag2: "value",
}
[ "/path/to/bun", "/path/to/cli.ts" ]