Package Control

The official Sublime Text package manager.

python-black

Black formatter for Sublime Text

By thep0y
Created June 2, 2021, last updated September 15, 2026.

AugJulJunMayAprMarFebJan Dec2025 NovOctSep 2026-W38 | installs: 23 | removals: 2 | upgrades: 916 2026-W38 | installs: 23 | removals: 2 | upgrades: 916 2026-W38 | installs: 23 | removals: 2 | upgrades: 916 2026-W37 | installs: 23 | removals: 4 | upgrades: 0 2026-W37 | installs: 23 | removals: 4 | upgrades: 0 2026-W37 | installs: 23 | removals: 4 | upgrades: 0 2026-W36 | installs: 28 | removals: 4 | upgrades: 0 2026-W36 | installs: 28 | removals: 4 | upgrades: 0 2026-W36 | installs: 28 | removals: 4 | upgrades: 0 2026-W35 | installs: 24 | removals: 10 | upgrades: 0 2026-W35 | installs: 24 | removals: 10 | upgrades: 0 2026-W35 | installs: 24 | removals: 10 | upgrades: 0 2026-W34 | installs: 21 | removals: 5 | upgrades: 0 2026-W34 | installs: 21 | removals: 5 | upgrades: 0 2026-W34 | installs: 21 | removals: 5 | upgrades: 0 2026-W33 | installs: 32 | removals: 7 | upgrades: 0 2026-W33 | installs: 32 | removals: 7 | upgrades: 0 2026-W33 | installs: 32 | removals: 7 | upgrades: 0 2026-W32 | installs: 29 | removals: 8 | upgrades: 1 2026-W32 | installs: 29 | removals: 8 | upgrades: 1 2026-W32 | installs: 29 | removals: 8 | upgrades: 1 2026-W31 | installs: 37 | removals: 8 | upgrades: 0 2026-W31 | installs: 37 | removals: 8 | upgrades: 0 2026-W31 | installs: 37 | removals: 8 | upgrades: 0 2026-W30 | installs: 27 | removals: 8 | upgrades: 0 2026-W30 | installs: 27 | removals: 8 | upgrades: 0 2026-W30 | installs: 27 | removals: 8 | upgrades: 0 2026-W29 | installs: 24 | removals: 5 | upgrades: 1 2026-W29 | installs: 24 | removals: 5 | upgrades: 1 2026-W29 | installs: 24 | removals: 5 | upgrades: 1 2026-W28 | installs: 32 | removals: 8 | upgrades: 0 2026-W28 | installs: 32 | removals: 8 | upgrades: 0 2026-W28 | installs: 32 | removals: 8 | upgrades: 0 2026-W27 | installs: 28 | removals: 12 | upgrades: 0 2026-W27 | installs: 28 | removals: 12 | upgrades: 0 2026-W27 | installs: 28 | removals: 12 | upgrades: 0 2026-W26 | installs: 18 | removals: 7 | upgrades: 0 2026-W26 | installs: 18 | removals: 7 | upgrades: 0 2026-W26 | installs: 18 | removals: 7 | upgrades: 0 2026-W25 | installs: 23 | removals: 5 | upgrades: 0 2026-W25 | installs: 23 | removals: 5 | upgrades: 0 2026-W25 | installs: 23 | removals: 5 | upgrades: 0 2026-W24 | installs: 32 | removals: 9 | upgrades: 0 2026-W24 | installs: 32 | removals: 9 | upgrades: 0 2026-W24 | installs: 32 | removals: 9 | upgrades: 0 2026-W23 | installs: 23 | removals: 4 | upgrades: 0 2026-W23 | installs: 23 | removals: 4 | upgrades: 0 2026-W23 | installs: 23 | removals: 4 | upgrades: 0 2026-W22 | installs: 0 | removals: 0 | upgrades: 0 2026-W22 | installs: 0 | removals: 0 | upgrades: 0 2026-W22 | installs: 0 | removals: 0 | upgrades: 0 2026-W21 | installs: 37 | removals: 4 | upgrades: 0 2026-W21 | installs: 37 | removals: 4 | upgrades: 0 2026-W21 | installs: 37 | removals: 4 | upgrades: 0 2026-W20 | installs: 29 | removals: 7 | upgrades: 0 2026-W20 | installs: 29 | removals: 7 | upgrades: 0 2026-W20 | installs: 29 | removals: 7 | upgrades: 0 2026-W19 | installs: 25 | removals: 5 | upgrades: 0 2026-W19 | installs: 25 | removals: 5 | upgrades: 0 2026-W19 | installs: 25 | removals: 5 | upgrades: 0 2026-W18 | installs: 25 | removals: 7 | upgrades: 0 2026-W18 | installs: 25 | removals: 7 | upgrades: 0 2026-W18 | installs: 25 | removals: 7 | upgrades: 0 2026-W17 | installs: 31 | removals: 10 | upgrades: 1 2026-W17 | installs: 31 | removals: 10 | upgrades: 1 2026-W17 | installs: 31 | removals: 10 | upgrades: 1 2026-W16 | installs: 32 | removals: 8 | upgrades: 1 2026-W16 | installs: 32 | removals: 8 | upgrades: 1 2026-W16 | installs: 32 | removals: 8 | upgrades: 1 2026-W15 | installs: 38 | removals: 10 | upgrades: 0 2026-W15 | installs: 38 | removals: 10 | upgrades: 0 2026-W15 | installs: 38 | removals: 10 | upgrades: 0 2026-W14 | installs: 23 | removals: 7 | upgrades: 0 2026-W14 | installs: 23 | removals: 7 | upgrades: 0 2026-W14 | installs: 23 | removals: 7 | upgrades: 0 2026-W13 | installs: 31 | removals: 9 | upgrades: 2 2026-W13 | installs: 31 | removals: 9 | upgrades: 2 2026-W13 | installs: 31 | removals: 9 | upgrades: 2 2026-W12 | installs: 29 | removals: 11 | upgrades: 0 2026-W12 | installs: 29 | removals: 11 | upgrades: 0 2026-W12 | installs: 29 | removals: 11 | upgrades: 0 2026-W11 | installs: 37 | removals: 14 | upgrades: 0 2026-W11 | installs: 37 | removals: 14 | upgrades: 0 2026-W11 | installs: 37 | removals: 14 | upgrades: 0 2026-W10 | installs: 37 | removals: 9 | upgrades: 0 2026-W10 | installs: 37 | removals: 9 | upgrades: 0 2026-W10 | installs: 37 | removals: 9 | upgrades: 0 2026-W09 | installs: 27 | removals: 11 | upgrades: 0 2026-W09 | installs: 27 | removals: 11 | upgrades: 0 2026-W09 | installs: 27 | removals: 11 | upgrades: 0 2026-W08 | installs: 39 | removals: 9 | upgrades: 0 2026-W08 | installs: 39 | removals: 9 | upgrades: 0 2026-W08 | installs: 39 | removals: 9 | upgrades: 0 2026-W07 | installs: 33 | removals: 10 | upgrades: 1 2026-W07 | installs: 33 | removals: 10 | upgrades: 1 2026-W07 | installs: 33 | removals: 10 | upgrades: 1 2026-W06 | installs: 34 | removals: 7 | upgrades: 1 2026-W06 | installs: 34 | removals: 7 | upgrades: 1 2026-W06 | installs: 34 | removals: 7 | upgrades: 1 2026-W05 | installs: 36 | removals: 7 | upgrades: 0 2026-W05 | installs: 36 | removals: 7 | upgrades: 0 2026-W05 | installs: 36 | removals: 7 | upgrades: 0 2026-W04 | installs: 46 | removals: 11 | upgrades: 0 2026-W04 | installs: 46 | removals: 11 | upgrades: 0 2026-W04 | installs: 46 | removals: 11 | upgrades: 0 2026-W03 | installs: 43 | removals: 8 | upgrades: 1 2026-W03 | installs: 43 | removals: 8 | upgrades: 1 2026-W03 | installs: 43 | removals: 8 | upgrades: 1 2026-W02 | installs: 41 | removals: 12 | upgrades: 1 2026-W02 | installs: 41 | removals: 12 | upgrades: 1 2026-W02 | installs: 41 | removals: 12 | upgrades: 1 2026-W01 | installs: 40 | removals: 14 | upgrades: 0 2026-W01 | installs: 40 | removals: 14 | upgrades: 0 2026-W01 | installs: 40 | removals: 14 | upgrades: 0 2025-W52 | installs: 33 | removals: 8 | upgrades: 1 2025-W52 | installs: 33 | removals: 8 | upgrades: 1 2025-W52 | installs: 33 | removals: 8 | upgrades: 1 2025-W51 | installs: 47 | removals: 15 | upgrades: 1 2025-W51 | installs: 47 | removals: 15 | upgrades: 1 2025-W51 | installs: 47 | removals: 15 | upgrades: 1 2025-W50 | installs: 49 | removals: 17 | upgrades: 0 2025-W50 | installs: 49 | removals: 17 | upgrades: 0 2025-W50 | installs: 49 | removals: 17 | upgrades: 0 2025-W49 | installs: 48 | removals: 13 | upgrades: 1 2025-W49 | installs: 48 | removals: 13 | upgrades: 1 2025-W49 | installs: 48 | removals: 13 | upgrades: 1 2025-W48 | installs: 42 | removals: 8 | upgrades: 0 2025-W48 | installs: 42 | removals: 8 | upgrades: 0 2025-W48 | installs: 42 | removals: 8 | upgrades: 0 2025-W47 | installs: 51 | removals: 8 | upgrades: 1 2025-W47 | installs: 51 | removals: 8 | upgrades: 1 2025-W47 | installs: 51 | removals: 8 | upgrades: 1 2025-W46 | installs: 33 | removals: 10 | upgrades: 1 2025-W46 | installs: 33 | removals: 10 | upgrades: 1 2025-W46 | installs: 33 | removals: 10 | upgrades: 1 2025-W45 | installs: 34 | removals: 17 | upgrades: 5 2025-W45 | installs: 34 | removals: 17 | upgrades: 5 2025-W45 | installs: 34 | removals: 17 | upgrades: 5 2025-W44 | installs: 46 | removals: 18 | upgrades: 0 2025-W44 | installs: 46 | removals: 18 | upgrades: 0 2025-W44 | installs: 46 | removals: 18 | upgrades: 0 2025-W43 | installs: 47 | removals: 12 | upgrades: 2 2025-W43 | installs: 47 | removals: 12 | upgrades: 2 2025-W43 | installs: 47 | removals: 12 | upgrades: 2 2025-W42 | installs: 48 | removals: 16 | upgrades: 1 2025-W42 | installs: 48 | removals: 16 | upgrades: 1 2025-W42 | installs: 48 | removals: 16 | upgrades: 1 2025-W41 | installs: 39 | removals: 9 | upgrades: 1 2025-W41 | installs: 39 | removals: 9 | upgrades: 1 2025-W41 | installs: 39 | removals: 9 | upgrades: 1 2025-W40 | installs: 42 | removals: 12 | upgrades: 1 2025-W40 | installs: 42 | removals: 12 | upgrades: 1 2025-W40 | installs: 42 | removals: 12 | upgrades: 1 2025-W39 | installs: 38 | removals: 12 | upgrades: 1 2025-W39 | installs: 38 | removals: 12 | upgrades: 1 2025-W39 | installs: 38 | removals: 12 | upgrades: 1 2025-W38 | installs: 41 | removals: 5 | upgrades: 2 2025-W38 | installs: 41 | removals: 5 | upgrades: 2 2025-W38 | installs: 41 | removals: 5 | upgrades: 2 04080 WeeklyInstalls 0400800 WeeklyUpgrades 2026-W38 | upgrades: 916 1.2.11
Installations: recent average 34 per week, 19,232 in total
Installations minus removals
Upgrades

Links

Version

1.2.11 (>ST4000) ·
2026-09-15 02:50

python-black

black

Black formatter for Sublime Text.

It is recommended to use it with LSP-pyright.

Installation

There is no need to install black. However, if you choose to install it, it will not affect this package..

You can install python-black with Package Control:

  1. Open your command pallete and type Package Control: Install Package.
  2. Find this project python-black and press Enter.

Local installation

This package has been uploaded to packagecontrol.io, so you do not need to choose local installation:

git clone https://github.com/thep0y/python-black.git

Copy or move the python-black folder to the Packages directory of Sublime Text 4.

Usage

1 Key Binding

You can create custom key binding based on samplePreferences - Package Settings - Python Black - Key Bindings, such as:

{
  "keys": ["ctrl+super+l"],
  "command": "black",
  "args": {
    "use_selection": true
  }
}

The optional use_selection boolean (defaults to true) controls whether to format the selected region or the entire file.

:warning:Note: Do not duplicate the key binding of other packages.

2 Settings

There are some modifiable properties in settings:

{
   // Whether to automatically format the entire document when saving.
   // There are three modes:
   //    - "on"
   //    - "off"
   //    - "smart": Automatic formatting is only enabled if there is a `black` section in the project's `pyproject.toml`
   "format_on_save": "on",
   // Black [OPTIONS]
   // The priority of loading options for Black is:
   // Sublime project settings > Configuration file > Sublime package user settings > Sublime package default settings
   "options": {
      // Python versions that should be supported by Black's output.
      "target_version": [],
      // How many characters per line to allow.
      "line_length": 88,
      // Format all input files like typing stubs regardless of file extension (useful when piping source on standard input).
      "is_pyi": false,
      // Skip the first line of the source code.
      "skip_source_first_line": false,
      // Don't normalize string quotes or prefixes.
      "skip_string_normalization": false,
      // Don't use trailing commas as a reason to split lines.
      "skip_magic_trailing_comma": false
   }
}

The format_on_save can also be toggled via Preferences > Package Settings > Python Black > Format On Save.

The Black options can also be configured in sublime-project:

{
  "settings": {
    // ...
    "python-black": {
      "options": {
        "line_length": 127,
        "skip_string_normalization": true
      }
    }
  }
}

3 Create Black Configuration File

You can quickly generate a black configuration file for the current project.

Command Description
python-black: Create Black Configuration File Creates a pyproject.toml file in the root of the project with basic options. Opens the configuration file if it already exists.

:warning: If you don't want to generate a pyproject.toml for each project, you need to create a global configuration file for Black.

Refer to Black Documentation.

If you want to disable format_on_save in a project that does not use black code style #14, you need to add the configuration to *.sublime-project:

{
	...
	"settings": {
		...
		"python-black": {
			"format_on_save": "off"
		}
	}
}

Development

If you want to fix bugs or add features, you can read the logs:

You can also add logs where you think they should be logged as follows:

from .log import child_logger

logger = child_logger(__name__)


# ...
logger.debug("...")
logger.info("...")
logger.warning("...")
logger.error("...")
# ...

Discussion and creation of PRs are welcome.

TODO

Results

Packages