Reading command line arguments

Reading command line arguments

How to:

Dart provides a straightforward approach to access command line arguments via the List<String> args in the main method. Below is a simple example demonstrating how to read and utilize command line arguments.

// main.dart
void main(List<String> args) {
  print('Command Line Arguments:');
  for (var i = 0; i < args.length; i++) {
    print('${i + 1}: ${args[i]}');

To run this Dart program and pass command line arguments, use the Dart CLI like so:

dart run main.dart Hello World!

Expected output:

Command Line Arguments:
1: Hello
2: World!

Using a Popular Third-Party Library: args

While Dart’s built-in capabilities for handling command line arguments are robust for many applications, the args package provides a refined way to define and parse command line arguments for more complex needs.

First, add the args package to your pubspec.yaml:

  args: ^2.0.0

Then, use it in your program as follows:

// Using the 'args' package
import 'package:args/args.dart';

void main(List<String> arguments) {
  final parser = ArgParser()..addOption('name', abbr: 'n');
  final argResults = parser.parse(arguments);

  if (argResults.wasParsed('name')) {
    print('Hello, ${argResults['name']}!');
  } else {
    print('No name provided.');

Run the program with a named argument:

dart run main.dart --name=John

Expected output:

Hello, John!

This simple introduction to parsing command line arguments, both natively and with the args library, showcases how Dart can handle user inputs right from the console, opening a pathway to creating more interactive and dynamic CLI applications.