If your team builds with Python or .NET, your packages have likely lived separately from your code, stored in a registry with distinct login, permissions, and billing. Starting today, they don’t have to. Bitbucket Packages now supports the Python Package Index (PyPI) and NuGet, integrating Python and .NET package management into the platform where your team writes code, reviews pull requests, and runs pipelines.
It also marks a milestone for Bitbucket Packages itself. We began with a native container registry, added Maven and npm earlier this year, and with PyPI and NuGet the lineup now covers five registries: containers, Maven, npm, PyPI, and NuGet. What makes that more than a list is how the pieces fit together: one set of permissions, one usage allowance, one bill. Each language your team brings in slots into a setup you already run, rather than becoming another registry to secure, manage, and pay for on its own.
One registry, fewer moving parts
The idea is simple: the fewer tools your artifacts pass through, the fewer places things can break or leak. Because every package in Bitbucket is scoped to a repository, the access you’ve already set up just carries over.
- Permissions you don’t have to recreate. Admin, Write, and Read on the repository automatically apply to every package linked to it. There’s no second access model to maintain and no drift between tools.
- No context-switching tax. Publish and pull from the same place you commit and review, so developers stay in flow instead of bouncing between dashboards.
- Unified billing, lower cost. PyPI and NuGet draw from the same Packages storage and network allowance as your containers, Maven, and npm artifacts, so there’s no new line item to reconcile.
Working with Python and .NET packages
Set up and start publishing fast. Create a package in Bitbucket, configure authentication with an Atlassian API token, and start publishing and installing with the Python and .NET tools your team already uses. Publishing from Bitbucket Pipelines? The built-in BITBUCKET_PACKAGES_USERNAME and BITBUCKET_PACKAGES_TOKEN variables double as your authentication credentials, keeping your CI config clean.
Permissions are already in place. Every package is scoped to a Bitbucket repository, so the Admin, Write, and Read access you’ve set on that repo carries straight through to its packages. There’s no separate access system to configure or keep in sync.
Nothing gets lost. Browse, inspect, and manage your packages and their versions from the Packages page at the workspace, project, and repository level, and delete what you no longer need to keep your registry lean and storage costs predictable.
Pricing
PyPI and NuGet are part of the same Packages feature, sharing one set of meters and plan inclusions. They’re available on monthly Standard and Premium plans, with annual support on the roadmap.
| Standard | Premium | |
| Included Storage | 1 GB | 2 GB |
| Storage Overage | $0.35 per GB/mo | $0.35 per GB/mo |
| Included Network Traffic | 5 GB | 7 GB |
| Network Overage | $0.70 per GB/mo | $0.70 per GB/mo |
Getting started
Getting started takes only a few minutes. First, make sure your Bitbucket workspace is connected to an Atlassian organization; if it isn’t yet, these steps will sort it out. You’ll also need to be on a paid monthly plan (Standard or Premium), as free workspaces aren’t supported.
Once your workspace is connected, a Packages tab appears in the left navigation at the workspace, project, and repository level. If you’re already using Packages for any other registry, PyPI and NuGet are in that same tab, ready the moment you point your Python or .NET tooling at them.
For a guided walkthrough of either registry, our PyPI support documentation and NuGet support documentation cover everything step by step. And if Packages is new to your team, our original launch post lays out workspace setup, unified billing, and how usage is tracked.
We’re listening
Every step of this journey, from the first container registry to today’s PyPI and NuGet support, has been shaped by what teams tell us they need. Python and .NET made the list because you asked for them, so please keep asking.
We’d love to hear how the new registries fit into your day-to-day, where they could be smoother, and which ecosystem you want us to tackle next. That feedback genuinely shapes what we build and the order we build it in. Share your thoughts and requests in the Bitbucket community, and we’ll keep growing Packages around the way your team actually works.
