When you’re ready to create an app, get the SDK and tools for your app type.

App type Get started instructions Tool information
Mobile Install Flutter Flutter tools
Web Install the Dart SDK Dart tools for the web
Script or server Install the Dart SDK Tools for server-side development

The rest of this page covers general-purpose tools that support the Dart language.


DartPad Hello World DartPad is a great, no-download-required way to learn Dart syntax and to experiment with Dart language features. It supports Dart’s core libraries, except for VM libraries such as dart:io.

IDEs and editors

Dart plugins exist for these commonly used IDEs.

The following Dart plugins are unsupported and available as open source.

Command-line tools

Some command-line tools are in Dart-related SDKs, and some are in packages.

Tools in SDKs

Most Dart-related SDKs include the following tools:

Pub package manager (pub)
Manages Dart packages, making it easy for you to install, use, and share Dart libraries, command-line tools, and other assets. Some Dart technologies, such as Flutter, may not support all of the pub commands. IDEs that support Dart generally have special support for pub, but you can also use it from the command line.
Static analyzer (dartanalyzer)
Evaluates and reports any errors or warnings in your code. The Dart plugin for your IDE should make use of Dart’s analysis engine, but you can also run the analyzer from the command line.
Code formatter (dartfmt)
Formats your code, following the recommendations of the Dart Style Guide. IDEs that support Dart generally allow you to format the code within the IDE. Or you can run the formatter from the command line.

Tools in packages

The following tools are distributed in packages on the Dart package site. To install them, use the pub command, as described in each tool’s installation instructions.

A code generator.
A tool for migrating Dart source code and fixing common issues.

Also see the dart_style package, which can be useful for getting a version of dartfmt that’s different from the one included in the SDK.