## What is this?

This is a companion repo to the main Flutter repo. It contains the source code
for a suite of performance tools for Dart and Flutter. All of the core logic for
the devtools app is in package:devtools_app.

## Getting started

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

## Feedback

Feedback and issues are best reported at
https://github.com/flutter/devtools/issues. Thanks for trying out DevTools!

## Terms and Privacy

By using Dart DevTools, you agree to the
[Google Terms of Service](https://policies.google.com/terms).
