Melos
What it is
Melos is a command-line tool for managing Dart and Flutter projects, including workspaces with multiple packages in a monorepo. It links and installs local packages, synchronizes shared dependencies during bootstrap, and can run commands across packages at the same time. Filters let users target packages by scope, category, changes, or dependencies. Melos can list local packages and their dependencies, automate package versioning and changelog generation, and publish packages to pub.dev. It also supports single-package projects for versioning, publishing, and changelog generation. For CI/CD automation, it provides a GitHub Action. IntelliJ integration can generate project modules and run configurations, while the VS Code extension offers configuration validation, autocompletion, tasks, and package graphs. The tool is free and installed globally with `dart pub global activate melos`. Version 8.x.x requires Dart SDK 3.9.0 or newer. Publishing requires permission for all packages and a machine authenticated with Pub; dry-run is enabled by default. The documented IntelliJ integration supports only Melos v6 and earlier.
For and against
For
- Links and installs local workspace packages.
- Runs commands across packages simultaneously.
- Automates versioning and changelog generation.
- Includes a GitHub Action for CI/CD.
- Free to use.
Against
- Version 8.x.x requires Dart SDK 3.9.0 or newer.
- Publishing requires Pub authentication and package permissions.
- IntelliJ integration is documented only through v6.
The verdict
Melos provides workspace commands, package linking, versioning, and publishing support for Dart and Flutter projects. Check the Dart SDK requirement and publishing prerequisites, and note the version limit for IntelliJ integration.
Who it suits
Melos suits Dart and Flutter developers managing multi-package workspaces or automating package tasks. It can also serve single-package projects that need versioning, publishing, or changelog generation.
On the record
- Bootstrap
- The bootstrap command installs package dependencies, synchronizes shared dependencies and runs bootstrap lifecycle scripts.melos.invertase.dev · read 1 Oct 2026
- CI/CD
- Melos is designed for CI/CD automation and provides a GitHub Action.melos.invertase.dev · read 1 Oct 2026
- Command execution
- Melos can execute simultaneous commands across packages.melos.invertase.dev · read 1 Oct 2026
- Community support
- The official documentation links to a Melos Discord community.melos.invertase.dev · read 1 Oct 2026
- Dart requirement
- Melos 8.x.x requires Dart SDK 3.9.0 or newer.pub.dev · read 1 Oct 2026
- Dependency listing
- Melos lists local packages and their dependencies.melos.invertase.dev · read 1 Oct 2026
- Filtering
- Commands support filters including scope, ignore, category, changed packages, Flutter dependencies and package dependencies.melos.invertase.dev · read 1 Oct 2026
- IDE integrations
- Melos integrates with IntelliJ by generating project modules and run configurations, and its VS Code extension provides validation, autocompletion, tasks and package graphs.melos.invertase.dev · read 1 Oct 2026
- IDE limit
- The documented IntelliJ integration is supported only for Melos v6 and lower.melos.invertase.dev · read 1 Oct 2026
- Installation
- Melos is installed globally with the command `dart pub global activate melos`.melos.invertase.dev · read 1 Oct 2026
- IntelliJ integration
- Melos generates IntelliJ project modules and run configurations during bootstrap.melos.invertase.dev · read 1 Oct 2026
- License
- The Melos repository is licensed under the Apache License, Version 2.0.github.com · read 1 Oct 2026
- Local linking
- Melos links and installs local packages within a workspace.melos.invertase.dev · read 1 Oct 2026
- Maker history
- Invertase was founded in 2016 as a GitHub organisation developing open-source software for React Native.invertase.io · read 1 Oct 2026
- Package linking
- Melos provides local package linking and installation.melos.invertase.dev · read 1 Oct 2026
- Product type
- Melos is a CLI tool for managing Dart and Flutter projects with multiple packages in a monorepo.melos.invertase.dev · read 1 Oct 2026
- Publishing
- Melos automates publishing packages to pub.dev.melos.invertase.dev · read 1 Oct 2026
- Publishing requirement
- Publishing requires permission for all packages and a machine authenticated with Pub; dry-run is enabled by default.melos.invertase.dev · read 1 Oct 2026
The review
Overview
Melos is a command-line workspace manager for Dart and Flutter projects, particularly those that keep several packages in one repository. It suits developers who want to coordinate package tasks and releases through Pub; its appeal is strongest when a project’s packages need to work as a shared unit.
It also supports versioning, publishing, and changelog generation for a single package, though that use case leaves much of its workspace coordination behind. For Melos 8.x.x, Dart SDK 3.9.0 or newer is required, so older toolchains may rule it out.
Key features
Melos links and installs local packages, while its bootstrap command installs dependencies, synchronizes shared dependencies, and runs bootstrap lifecycle scripts. Teams can run commands across packages simultaneously and inspect local packages and their dependencies. Filters for scope, ignored packages, category, changed packages, Flutter dependencies, and package dependencies help target commands more precisely—useful in a large workspace, but less consequential in a single-package project.
For releases, automatic versioning and changelog generation provide a coordinated alternative to handling those steps package by package. Melos can publish to pub.dev, but publishing requires Pub authentication on the machine and permission for every package. Dry-run is enabled by default, a practical safeguard before a release.
Melos is designed for CI/CD automation and provides a GitHub Action. Its VS Code extension adds melos.yaml validation and autocompletion, script CodeLenses, tasks, and package-graph viewing. Bootstrap can generate IntelliJ project modules and run configurations, but that integration is supported only through Melos v6; teams on newer versions should not rely on it.
Install Melos globally with dart pub global activate melos. Workspace configuration supports GitHub, GitLab, Bitbucket, and Azure DevOps repository hosts.
Pricing
Melos is free, with a free plan. That makes it a straightforward fit for Dart and Flutter teams seeking workspace and release tooling without a software charge. There are no paid tiers to weigh against the free plan; the practical trade-offs are its Dart and Pub focus, the Dart SDK requirement for 8.x.x, and the version limit on IntelliJ integration.
Platforms
Melos is listed for Android, iOS, Linux, macOS, and Windows. It is a CLI tool for Dart and Flutter projects, so the platform range matters most to developers choosing where to manage their workspace, not as a claim that Melos is a mobile app.
Who it's for
Melos is best suited to teams maintaining multiple Dart or Flutter packages in a monorepo, especially when they need shared dependency setup, filtered commands, release versioning, changelogs, or pub.dev publishing. Single-package developers may still value its release functions, but those who do not need package coordination have less reason to adopt a workspace manager.
Pros and cons
- Pros: Simultaneous commands, package filters, local linking, and dependency inspection bring useful coordination to multi-package Pub workspaces.
- Pros: Automatic versioning, changelog generation, pub.dev publishing, and a GitHub Action cover release and automation tasks in one tool.
- Cons: Melos 8.x.x requires Dart SDK 3.9.0 or newer, excluding projects that cannot meet that baseline.
- Cons: IntelliJ module and run-configuration integration is limited to v6 and lower, making it a poor fit for teams depending on that integration with newer versions.
- Cons: Publishing still depends on Pub authentication and permission across all packages, so it does not eliminate release access setup.
Alternatives
For another free monorepo option, compare Bit, whose listed platforms include web, API, and self-hosted use as well as Android and iOS. pnpm is another free option for teams considering a different package-management tool. Choose Bazel when an open-source build and test tool is the better match. Beachball is another free alternative. manypkg is a free CLI package alternative. npm may fit public package authors who want unlimited public packages and public registry access on its free plan. bento is a storage-oriented alternative with a free plan offering 10 GB stored and 14-day retention. Blaze is another free option.
Browse more options in Monorepo Management Tools.
Verdict
Choose Melos for a Dart or Flutter monorepo when coordinated package commands, local linking, and release automation are more valuable than a broad, language-neutral workflow. Its free plan and integrated Pub release support make a focused case, but SDK compatibility and the older IntelliJ integration limit deserve a check before committing.