flutter/packages: The Official Repository for First-Party Flutter Packages
A collection of useful packages maintained by the Flutter team
At a glance
- What is it?
- flutter/packages is the source repository for packages developed and maintained by the core Flutter team. It contains packages available on pub.dev including go_router, camera, pigeon, animations, flutter_lints, and cupertino_icons, and it is the canonical source for Flutter's first-party package ecosystem.
- Who is it for?
- flutter/packages is the right repository to study when you need to understand a first-party Flutter package, file an issue against one, or contribute a fix to an existing package. It is not the place to publish your own packages (those go to pub.dev or your own repository).
- Can I use it commercially?
- Yes. BSD-3-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Dart, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What flutter/packages contains and its relationship to the Flutter SDK
Flutter ships a core SDK that handles rendering, layout, and platform integration, but it does not bundle every piece of functionality a production app needs: routing, camera access, file picking, code generation for platform channels, and lint rules are maintained separately to allow independent versioning. flutter/packages is the GitHub companion repository where all of those first-party packages live. It is described in the README as a companion repo to the main flutter repo.
The distinction between first-party and community packages matters in practice. A package in this repository is maintained by the same team that maintains the Flutter framework. It will be updated when Flutter adds or changes APIs, it will follow Flutter's contribution and review processes, and its issues are tracked in the main Flutter issue tracker. Community packages on pub.dev do not carry those guarantees. For platform-critical functionality like camera access or navigation, using a first-party package means one less external dependency to maintain.
The packages directory: what is in the collection
The packages/ directory at the repository root is where all first-party packages live. The README table lists packages including: animations (pre-built animation widgets), camera (cross-platform camera access), cross_file (cross-platform file handling abstraction), cupertino_icons (iOS-style icon assets), cupertino_ui (an iOS-style UI kit), espresso (Android Espresso testing support for Flutter), file_selector (cross-platform file selection dialogs), flutter_lints (the recommended Flutter lint rules), flutter_plugin_android_lifecycle (Android lifecycle callbacks for plugins), flutter_svg and flutter_svg_test (SVG rendering), go_router and go_router_builder (URL-based navigation), and google_adsense (AdSense integration for Flutter Web).
The third_party/ directory holds packages like flutter_svg that are maintained with Flutter team involvement but originated elsewhere. Each package entry in the README table links directly to its subdirectory in the repository, where its own README and changelog live.
How to install packages from this repository in a Flutter project
All packages in this repository are published to pub.dev and installed through the standard Flutter package mechanism. To add go_router to a project:
flutter pub add go_routerThis updates pubspec.yaml and fetches the package. Alternatively, add it manually to pubspec.yaml under dependencies and run flutter pub get. The README notes that all packages are available at pub.dev/flutter/packages. Source code and changelogs for each package are in their subdirectory under packages/; reading the changelog is the recommended way to understand what changed between versions before upgrading.
Issues against any package in this repository should not be filed here but in the main flutter/flutter repository. The README gives the direct URL for issues labelled 'package'. Contribution to existing packages follows the process in CONTRIBUTING.md; new external packages belong in separate repositories, not here.
pigeon: code generation for type-safe platform channel APIs
pigeon is the package in this repository with the most active recent release history. The most recent GitHub release in the repository is pigeon v29.0.4, published on 2026-09-25. pigeon is a code generation tool that takes a Dart interface definition and generates the type-safe message-passing code needed to communicate between Dart and native platform code (Kotlin/Java on Android, Swift/Objective-C on iOS, and C++ on desktop). It eliminates the error-prone manual coding of platform channel message codecs.
Without pigeon, calling a platform method requires encoding and decoding messages as Map or dynamic in both the Dart and native layers, with no compile-time type checking. pigeon generates typed host and flutter API classes from a single .dart definition file. The high version number (v29) relative to the overall repository reflects that pigeon follows its own release cadence and is updated more frequently than most other packages in the repository.
What this repository is not: community packages and the pub.dev ecosystem
The README is explicit that this repository is intended for packages developed by the core Flutter team, not for community contributions of new packages. If a developer wants to contribute a new package to the Flutter ecosystem, the README directs them to the documentation for developing packages at flutter.dev and to publish to pub.dev directly. The present repo is, as the README puts it, only intended for packages developed by the core Flutter team.
This is a meaningful limitation for developers who encounter this repository while searching for a specific functionality. A search for Flutter packages on GitHub will return this repository prominently, but many commonly used packages (such as state management libraries or specific platform integrations) are maintained in separate repositories by the community and are not listed here. The absence of a package from this repository does not mean it does not exist on pub.dev.
How flutter/packages compares to the community ecosystem on pub.dev
pub.dev hosts thousands of Flutter packages from the community. The distinction from flutter/packages is one of maintenance commitment and API stability guarantees. Community packages vary widely in quality, update frequency, and compatibility commitment. A package in flutter/packages is maintained by the team that owns the Flutter SDK, which means it is updated when Flutter changes its internal APIs, covered by the main Flutter CI infrastructure, and tracked in the same issue system as Flutter itself.
For functionality not covered by a first-party package (state management, advanced image loading, push notifications, deep linking beyond go_router), community packages on pub.dev are the appropriate choice, with the understanding that compatibility and maintenance depend on the individual maintainer. pub.dev's scoring system and publisher verification provide some signal about maintenance quality, but it is not the same as the commitment implied by inclusion in this repository. Teams who need stable long-term support for a specific capability should check whether a first-party alternative exists here before choosing a community dependency. When a first-party package like go_router covers the need, the long-term maintenance risk is lower.
Editorial conclusion
flutter/packages is the right repository to study when you need to understand a first-party Flutter package, file an issue against one, or contribute a fix to an existing package. It is not the place to publish your own packages (those go to pub.dev or your own repository). Issues against packages in this repository should be filed in the main flutter/flutter repository with the 'package' label. The last push was on 2026-09-26, with pigeon v29.0.4 released on 2026-09-25. The repository is under BSD-3-Clause.
Frequently asked questions
What packages are in the flutter/packages repository?
The repository contains first-party Flutter packages including go_router, camera, pigeon, animations, flutter_lints, cupertino_icons, file_selector, flutter_svg, and google_adsense, among others. All packages are published to pub.dev/flutter/packages.
How do I file an issue against a package in flutter/packages?
Issues should be filed in the main flutter/flutter repository, not in flutter/packages. The README provides a direct link to issues labelled 'package' in the flutter/flutter tracker.
Can I contribute my own package to flutter/packages?
No. This repository is only for packages maintained by the core Flutter team. External packages should be published to pub.dev from your own repository. The README links to the flutter.dev documentation on developing and publishing packages.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/flutter-packages)