plain-code changelog
0.21.1 (2026-03-04)
What's changed
- Fixed
plain code update failing with a 404 error when downloading oxlint/oxfmt — GitHub's "latest" release now points to crates_v tags which don't contain the binaries. The update command now queries the GitHub API to find the correct apps_v release. (54298b724d3b)
Upgrade instructions
0.21.0 (2026-02-25)
What's changed
- Replaced Biome with oxc tools — JS/TS linting is now handled by oxlint and formatting by oxfmt (5eb7ba6f6f7f)
- The
--skip-biome CLI flag is now --skip-oxc (5eb7ba6f6f7f)
- Configuration key changed from
[tool.plain.code.biome] to [tool.plain.code.oxc] in pyproject.toml (5eb7ba6f6f7f)
Upgrade instructions
- If you have
[tool.plain.code.biome] in your pyproject.toml, rename it to [tool.plain.code.oxc].
- Replace
--skip-biome with --skip-oxc in any scripts or CI configuration.
- The oxlint and oxfmt binaries will be downloaded automatically on first run.
0.20.3 (2026-02-04)
What's changed
- Removed
@internalcode decorator from Biome class (e7164d3891b2)
Upgrade instructions
0.20.2 (2026-01-28)
What's changed
- Converted the
plain-fix skill to a passive .claude/rules/ file with path-based activation on **/*.py files (512040ac51)
Upgrade instructions
- Run
plain agent install to update your .claude/ directory.
0.20.1 (2026-01-28)
What's changed
Upgrade instructions
0.20.0 (2026-01-17)
What's changed
- Added docstring style guideline to the
plain-fix AI skill: don't include args/returns in docstrings if already type annotated (bbc8749)
Upgrade instructions
0.19.0 (2026-01-15)
What's changed
- Added code style guidelines to the
plain-fix AI skill for consistent formatting practices (fac8673)
Upgrade instructions
0.18.1 (2026-01-13)
What's changed
- The top-level
exclude config option now applies to ty type checking and annotation checks, in addition to tool-specific excludes (f3ead51)
- Added
node_modules to the default exclude patterns for both annotations and Biome (f3ead51)
Upgrade instructions
0.18.0 (2026-01-13)
What's changed
- Added
plain code annotations command for checking type annotation coverage in Python files (df353b8)
- Use
--details to list untyped functions
- Use
--json for machine-readable output
- Renamed the
plain-check skill to plain-lint, then to plain-fix to better match the primary command (d51294a, 519c5af)
Upgrade instructions
- If you were using the
plain-check or plain-lint AI skill, it has been renamed to plain-fix
0.17.0 (2026-01-13)
What's changed
- Updated the minimum ty type checker version to 0.0.11 for improved Self type inference and unused-ignore-comment detection (9d83576)
- Added a
plain-check skill for AI agents with instructions for running code quality checks (b592c32)
Upgrade instructions
0.16.0 (2025-12-26)
What's changed
- Updated the minimum ty type checker version to 0.0.7 (a5eef56)
Upgrade instructions
0.15.0 (2025-12-12)
What's changed
- Updated the minimum ty type checker version to 0.0.1a33 (54cadc9)
Upgrade instructions
0.14.0 (2025-12-05)
What's changed
- Updated the minimum ty type checker version to 0.0.1a31 for improved type checking capabilities (17a2e6d)
Upgrade instructions
0.13.0 (2025-12-01)
What's changed
- Simplified CLI output with cleaner single-line status messages for all check and fix operations (b09edfd)
- The ty type checker now runs with
--no-progress for cleaner output (5b70918)
- Biome now ignores
.pytest_cache directories by default (f9963d0)
Upgrade instructions
0.12.0 (2025-11-24)
What's changed
- Added ty type checker integration, running automatically as part of
plain code check (40db43a)
- Added
--skip-ruff, --skip-ty, and --skip-biome flags to plain code check for selectively skipping tools (40db43a)
- ty can be disabled in configuration via
[tool.plain.code.ty] with enabled = false (40db43a)
Upgrade instructions
0.11.4 (2025-11-17)
What's changed
- The
plain fix command now displays styled output that matches the format of plain code check, showing the tool name in bold and the command being run in dim text (cde9a8e)
Upgrade instructions
0.11.3 (2025-11-03)
What's changed
- Improved CLI command descriptions to be more concise and user-friendly (fdb9e80)
- The
plain fix command is now marked as a common command and registered as a shortcut for plain code fix (73d3a48, 7910a06)
Upgrade instructions
0.11.2 (2025-10-31)
What's changed
- Added BSD-3-Clause license identifier to package metadata (8477355)
Upgrade instructions
0.11.1 (2025-10-27)
What's changed
- Improved
plain code check output with styled command labels and a clearer error message when checks fail (5e75a0d)
Upgrade instructions
0.11.0 (2025-10-22)
What's changed
- All CLI commands now skip runtime setup for faster execution by using the
@without_runtime_setup decorator (b7358d7)
Upgrade instructions
0.10.2 (2025-10-06)
What's changed
- Added comprehensive type annotations throughout the codebase for improved IDE support and type checking (7455fa0)
Upgrade instructions
0.10.1 (2025-09-25)
What's changed
- Improved Biome download performance by using larger chunk sizes (1MB instead of 8KB) for faster binary downloads (9bf4eca)
Upgrade instructions
0.10.0 (2025-09-19)
What's changed
- Minimum Python version increased from 3.11 to 3.13 (d86e307)
Upgrade instructions
- Ensure your Python environment is running Python 3.13 or later before upgrading
0.9.2 (2025-07-30)
What's changed
- Skip Biome installation and updates when Biome is disabled in configuration (b8beb5c)
- Enhanced README with better structure, usage examples, and configuration documentation (4ebecd1)
Upgrade instructions
0.9.1 (2025-07-18)
What's changed
- Improved error handling by using
click.UsageError instead of print and sys.exit for better CLI error messages (88f06c5)
Upgrade instructions
0.9.0 (2025-07-03)
What's changed
- Updated Biome integration to support the new Biome 2 release. The download logic now uses the new
@biomejs/biome@<version> tag format and the built-in default configuration has been modernised (root: true, files.includes, etc.) (83fa906).
- A progress bar is now displayed while the Biome binary is being downloaded so you can see the download progress in real time (ec637aa).
Upgrade instructions
- If you have pinned a specific Biome version in your
pyproject.toml under [tool.plain.code.biome], make sure it is compatible with Biome 2 (for example, version = "2.0.0"). Otherwise, use plain code update to update to Biome 2.
0.8.3 (2025-06-26)
What's changed
- Added this
CHANGELOG.md file to start tracking changes for the plain.code package (82710c3).
- No functional changes were introduced in this release.
Upgrade instructions