# Dart & Flutter DevTools

[![Build Status](https://github.com/flutter/devtools/workflows/devtools/badge.svg)](https://github.com/flutter/devtools/actions)

## What is this?

[Dart & Flutter DevTools](https://flutter.dev/docs/development/tools/devtools/) is a suite of performance tools for Dart and Flutter.

## Getting started

For documentation on installing and trying out DevTools, please see our
[docs](https://flutter.dev/docs/development/tools/devtools/).

## Contributing and development

Contributions welcome! See our
[contributing page](https://github.com/flutter/devtools/blob/master/CONTRIBUTING.md)
for an overview of how to build and contribute to the project.

## Terms and Privacy

By using Dart DevTools, you agree to the [Google Terms of Service](https://policies.google.com/terms). To understand how we use data collected from this service, see the [Google Privacy Policy](https://policies.google.com/privacy?hl=en).
