A command-line tool that automates Python testing and packaging checks across multiple virtual environments and Python versions.
wntrblm/nox
A command-line tool for automating tests across multiple Python environments, configured with a standard Python file instead of tox's ini format.
- Stars
- 1,562
- Forks
- 212
- Open issues
- 81
- Last commit
- 2 days ago
What is it?
Nox is a command-line tool that automates testing and other tasks across multiple Python environments, similar in purpose to tox. Sessions are defined as decorated Python functions, so a project's test and lint steps are written in ordinary Python rather than a separate configuration format.
Each session can install its own dependencies into an isolated virtual environment and run commands inside it. Users can list all sessions, run a single session by name, or run every session in one command, and sessions can carry docstrings that show up in help output.
Nox is meant to be installed globally, for example with pipx, rather than inside a project's virtual environment. It is published on PyPI and its documentation is hosted on Read the Docs.
Key features
- 01Defines test sessions as plain Python functions decorated with @nox.session.
- 02Runs each session in its own isolated virtual environment across Python versions.
- 03Lists sessions and runs a single session or all of them from the command line.
- 04Shows session docstrings as help text through the --usage option.
- 05Installs as a standalone CLI, often via pipx.
Use cases
- Running pytest and flake8 in separate isolated environments for a Python library.
- Replacing a tox.ini configuration with a Python file that is easier to customize.
- Testing one project against several Python interpreter versions in a single command.
Quick start
- 1
Install Nox with pipx
pipx install nox - 2
List all available sessions
nox -l - 3
Run all sessions
nox
In collections
Topics
FAQ
- What is nox?
- A command-line tool for automating tests across multiple Python environments, configured with a standard Python file instead of tox's ini format. Nox is a command-line tool that automates testing and other tasks across multiple Python environments, similar in purpose to tox. Sessions are defined as decorated Python functions, so a project's test and lint steps are written in ordinary Python rather than a separate configuration format.
- Is nox free to use? What license does it have?
- nox is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is nox still maintained?
- Actively maintained. The last commit to nox was on Nov 6, 2026.
- What can I use nox for?
- Running pytest and flake8 in separate isolated environments for a Python library. Replacing a tox.ini configuration with a Python file that is easier to customize. Testing one project against several Python interpreter versions in a single command.
- How do I install nox?
- Install Nox with pipx: pipx install nox List all available sessions: nox -l Run all sessions: nox
- Where can I get nox?
- The source code and installation instructions are on GitHub: https://github.com/wntrblm/nox
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open source, keyword-driven automation framework for acceptance testing, ATDD and robotic process automation, written in Python.
Modern, extensible Python project manager covering builds, environments, testing, linting, versioning and publishing.
Playwright is a framework for web testing and automation that drives Chromium, Firefox, and WebKit through one API.
A pytest plugin that re-runs only the tests affected by your recent code changes, with optional continuous watch mode.
Natural-language driven Android automation for AI coding assistants and test suites, running on real phones or emulators.