Repolode
wntrblm

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. 1

    Install Nox with pipx

    pipx install nox
  2. 2

    List all available sessions

    nox -l
  3. 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