<!--
Copyright 2025 The Flutter Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.
-->
# Dart & Flutter DevTools

[![Build Status](https://github.com/flutter/devtools/workflows/devtools/badge.svg)](https://github.com/flutter/devtools/actions)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/flutter/devtools/badge)](https://deps.dev/project/github/flutter%2Fdevtools)

## What is this?

[Dart & Flutter DevTools](https://docs.flutter.dev/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://docs.flutter.dev/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).
