poetry-multiproject-plugin
A Poetry plugin that makes it possible to use relative package includes.
What it is and what it does
Poetry Multiproject Plugin extends Poetry with two new commands: `build-project` and `check-project`. The `build-project` command solves a core limitation of Poetry—it normally forbids package includes from outside the project root. This plugin copies the project and its relative includes into a temporary folder, rewrites the pyproject.toml, runs `poetry build`, and returns the built wheel and sdist. This enables monorepos to share code across multiple services or apps without duplicating it. The `check-project` command performs a similar workflow but runs `poetry install` and then `mypy` to validate that all dependencies are properly declared and the code type-checks correctly.
The plugin uses AST parsing to rewrite imports when building with a custom namespace (via `--with-top-namespace`), which is useful for libraries that need to avoid namespace collisions when multiple libraries from the same monorepo are installed together. It supports Python 3.8 through 3.13 and integrates directly into Poetry's command interface.
Use it for:
- Build microservices in a monorepo that share utility packages without duplicating code across project folders.
- Validate that a project's dependencies are correctly declared by running mypy on the combined project and its relative includes.
- Organize Python projects according to the Polylith Architecture, where shared components live in a separate folder structure.
- Build multiple libraries from the same monorepo with different top namespaces to avoid import collisions when installed together.
- Set up a monorepo with a shared folder of namespaced packages that multiple apps can selectively include and build.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Poetry plugin that enables building and type-checking projects with relative package includes, useful for monorepos where code is shared across multiple projects.
Yes, if you maintain a monorepo and need to share code across projects without duplicating it. The plugin fills a genuine gap in Poetry's design. However, the aging maintenance status (last release 377 days ago) means you should verify compatibility with your current Poetry version before relying on it for production builds. No known security vulnerabilities.
Install
poetry-multiproject-plugin on PyPI
pip
pip install poetry-multiproject-pluginuv
uv add poetry-multiproject-pluginpoetry
poetry add poetry-multiproject-pluginInstalling poetry-multiproject-plugin
Before you install
Low friction to install via `poetry self add`. The package is aging (last release 377 days ago) but the repository is active and not archived, with 189 stars. Depends on mypy, poetry, and tomlkit—all stable, widely-used libraries.
License in practice
MIT license is permissive; you can use this plugin freely in commercial and open-source projects with minimal restrictions.
Quickstart
poetry self add poetry-multiproject-plugin
# Then in a project with relative includes in pyproject.toml:
poetry build-project
# Or check dependencies with mypy:
poetry check-project
Requires Poetry to be installed and a pyproject.toml file in the project root. The `--with-top-namespace` flag for library builds requires Python 3.9 or later.
Verify before relying
- Whether the plugin works reliably with Poetry versions released after the last plugin update (377 days ago).
- Performance impact when building large monorepos with many relative includes.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4.0,>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — mypy, poetry, tomlkit |
| Maintenance | aging — 377 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 84,520/month — #13,991 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: poetry_multiproject_plugin-1.8.4-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
poetry-corepoetry-core is a PEP 517 build backend that…
permissive · top 1,000 on PyPI
charmcraftlocalPacks Juju charms with local Python package…
unclear · top 15,000 on PyPI
poetry-dynamic-versioningA Poetry plugin that automatically derives and…
permissive · top 5,000 on PyPI
mkdocs-multirepo-pluginMerges documentation from multiple Git…
permissive · top 15,000 on PyPI
poethepoetA task runner that reads task definitions from…
permissive · top 5,000 on PyPI
poetryPoetry is a dependency management and packaging…
permissive · top 1,000 on PyPI
single-sourceExtracts your package version from…
permissive · top 15,000 on PyPI
flake8-fixmeA flake8 plugin that detects and flags…
permissive · top 15,000 on PyPI
mkdocs-monorepo-pluginEnables building multiple sets of documentation…
permissive · top 5,000 on PyPI
poetry-dotenv-pluginA Poetry plugin that automatically loads…
permissive · top 15,000 on PyPI