plxt (Formatter & Linter)
Overview
plxt is a fast formatting and linting tool for TOML, MTHDS, and PLX files in Pipelex projects. It ensures consistent style across all configuration and pipeline definition files, powered by the taplo engine.
Installation
plxt is included as a Pipelex development dependency. It is automatically installed into your virtual environment when you run:
make install
You can verify the installation with:
.venv/bin/plxt --help
Configuration
plxt reads its configuration from .pipelex/plxt.toml at the root of your project. This file controls file discovery, formatting rules, and per-file-type overrides.
File Discovery
The include and exclude top-level keys control which files plxt processes:
include = ["**/*.toml", "**/*.mthds", "**/*.plx"]
exclude = [
".venv/**",
".mypy_cache/**",
".ruff_cache/**",
".pytest_cache/**",
"__pycache__/**",
"target/**",
"node_modules/**",
".git/**",
"*.lock",
]
Supported File Types
| Extension | Description |
|---|---|
.mthds |
Method definitions |
.plx |
Method definitions (legacy extension) |
.toml |
Standard TOML configuration files |
Key Formatting Options
The [formatting] section in plxt.toml controls the global formatting behavior. Each option can be overridden per file type using [[rule]] sections.
| Option | Default | Description |
|---|---|---|
align_entries |
true |
Align consecutive key = value entries so = signs line up |
align_comments |
true |
Align end-of-line comments on consecutive lines |
array_trailing_comma |
true |
Add a trailing comma after the last element in multiline arrays |
array_auto_expand |
true |
Expand arrays to multiple lines when exceeding column_width |
column_width |
80 |
Target maximum line width used for auto-expand/collapse |
compact_arrays |
true |
Omit spaces inside single-line array brackets |
trailing_newline |
true |
Ensure files end with a newline character |
reorder_keys |
false |
Sort top-level keys alphabetically |
For the full list of options, see the comments in .pipelex/plxt.toml.
Per-File-Type Rules
You can define [[rule]] sections to apply different formatting settings to different file types. For example, the default configuration includes separate rules for .toml files and for .mthds/.plx files:
[[rule]]
include = ["**/*.toml"]
[rule.formatting]
# TOML-specific overrides here
[[rule]]
include = ["**/*.mthds", "**/*.plx"]
[rule.formatting]
align_entries = true
array_auto_collapse = true
# ... more MTHDS/PLX-specific overrides
Usage
Command Line
Format all discovered files in place:
.venv/bin/plxt fmt
Check formatting without modifying files (useful for CI):
.venv/bin/plxt fmt --check
Lint all discovered files:
.venv/bin/plxt lint
Make Targets
The following Make targets are available for convenience:
| Target | Description |
|---|---|
make plxt-format |
Format all MTHDS/TOML/PLX files |
make plxt-lint |
Lint all MTHDS/TOML/PLX files |
make merge-check-plxt-format |
Check formatting without modifying files |
make merge-check-plxt-lint |
Run lint check |
plxt is also included in the composite check targets:
make c(check) runsplxt-formatandplxt-lintalongside ruff, pyright, and mypymake agent-checkincludesplxt-formatandplxt-lintin the full quality pipeline