[Runtime
](../../../index.md)[Package Manager
](../../../pm/cli/install/index.md)[Bundler
](../../../bundler/index.md)[Test Runner
](../../../test/index.md)[Guides
](../../index.md)[Reference
](https://bun.com/reference)[Blog
](https://bun.com/blog)[Feedback
](../../../feedback/index.md)
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, util.parseArgs would be helpful. Example:
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);
then it outputs
terminal
bun run cli.ts --flag1 --flag2 value
{
flag1: true,
flag2: "value",
}
[ "/path/to/bun", "/path/to/cli.ts" ]
Was this page helpful?
[
Read stderr from a child process
Previous
](../spawn-stderr/index.md)[
Read from stdin
Next
](../stdin/index.md)