Nab is an experimental open-source tool that helps Python developers lock their project dependencies to specific, verified versions. It works by reading your project's dependency requirements, exploring the compatibility landscape across all packages and their sub-dependencies, and producing a lockfile with exact versions guaranteed to work together. Unlike installers that also place files on your system, nab stops after creating the lockfile — you then give that file to whatever installer you prefer. The project aims for fast resolution speed similar to uv while being written entirely in Python rather than Rust.
How It Works
You discover nab from a friend or online discussion — it's a Python tool that resolves your project dependencies much faster than older methods, written entirely in Python.
You install nab once using a simple command, similar to how you'd install any developer utility. It lives on your system and is ready whenever you need it.
You tell nab which Python project to work on — it reads your project's list of dependencies and understands what your code needs to run.
Nab explores all possible combinations of package versions across your direct dependencies and everything they depend on, searching for versions that work together.
Nab produces a detailed file listing exactly which version of every package was chosen. You can review it or commit it to your project.
You give the lockfile to your preferred installer (pip, uv, or others). Everything installs smoothly because the exact working versions are already known.
All packages are installed at their verified versions. Your project will behave exactly the same today, tomorrow, and on any other computer.
Star Growth
Repurpose is a Pro feature
Generate ready-to-use prompts for X threads, LinkedIn posts, blog posts, YouTube scripts, and more -- with full repo context baked in.
Unlock RepurposeSimilar repos coming soon.