Universal Dart/Flutter package manager. A companion to multipack - a monorepo management tool. uni uses dart, flutter, pub, dartfmt, dartanalyzer and dartdoc based on the project you are in.

MIT License PRs Welcome Watch on GitHub Star on GitHub Watch on GitHub Discord

To activate uni run one of the following commands:

pub global activate uni
# or
dart pub global activate uni
# or
flutter pub global activate uni
# or
uni pub global activate uni

Available commands

  • x uni doctor: Show information about the installed tooling.
  • x uni analyze: Analyze the project's Dart code.
  • uni compile: Compile Dart to various formats.
  • uni create: Create a new project.
  • x uni format: Idiomatically format Dart source code.
  • uni migrate: Perform a null safety migration on a project or package.
  • x uni pub: Work with packages.
  • uni run: Run the program.
  • uni test: Run tests in this package.


Based on context uni chooses the appropriate tooling. This behavior can be overriden, by setting --tooling flag. For example, uni --tooling <TOOLING> pub.

  • dart: uses commands from dart command. uni pub -> dart pub
  • flutter: uses commands from flutter command.uni pub -> flutter pub
  • legacy: uses legacy tooling bundled with dart. uni pub -> pub
  • adaptive(default): uses tooling based on context. uni pub -> flutter pub in flutter projects; dart pub in dart projects, pub and flutter pub as a fallback