NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4402 most downloaded on npm
Formatter for the JavaScript Oxidation Compiler
Last release 6 days ago
28 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Some releases are documented
notes for 11 of 43 stable releases
Nothing withdrawn
no release was ever pulled
8 months old
43 releases · first in 2026
One column per month.
e0b1f9f oxfmt: Bump bundled Prettier version to 3.9.9 ( #27002 ) (leaysgur)
= on their side and line (#27041) (leaysgur)/*** comments as JSDoc (#27035) (leaysgur)415b742 oxlint,oxfmt: Do not discover nested config in Vite+ mode ( #26763 ) (leaysgur)
809090c oxlint,oxfmt: Find all vite.config.* variants ( #26755 ) (leaysgur)
809090c oxlint,oxfmt: Find all vite.config.* variants ( #26755 ) (leaysgur)
4356dc2 formatter_markdown: Keep frontmatter verbatim ( #26779 ) (leaysgur)
7717813 formatter_markdown: Implement markdown formatter ( #26434 ) (leaysgur)
6c8a862 formatter: Glue fbt component and text ( #26616 ) (leaysgur)
68ed6a2 formatter_markdown: Fix real-world missmatches ( #26785 ) (leaysgur)
68ce610 formatter: Keep after-operator comments in place ( #26725 ) (leaysgur)
f91ad92 formatter: Let union place leading comments at as|satisfies ( #26674 ) (leaysgur)
ea164c0 formatter: Fix block comment with RHS assignment and typecast-ed arrow body ( #26672 ) (leaysgur)
406ff1f formatter: Preserve redundant parens for TSTypeAliasDeclaration with suppress comment ( #26671 ) (leaysgur)
e012542 formatter_core: Add note for blanked front matter ( #26786 ) (leaysgur)
11ff089 formatter_markdown: Follow updated DIVERGENCES policy ( #26776 ) (leaysgur)
8fa3617 oxfmt: Unify DIVERGENCES reference and drop notes ( #26750 ) (leaysgur)
d8a716c formatter_css: Unify DIVERGENCES reference ( #26749 ) (leaysgur)
095a97c formatter: Unify DIVERGENCES reference ( #26748 ) (leaysgur)
97dc427 formatter_graphql: Unify DIVERGENCES reference ( #26747 ) (leaysgur)
09ecfa7 formatter_yaml: Unify DIVERGENCES reference ( #26746 ) (leaysgur)
0c16983 formatter_core: Clean up FORMATTER_POLICY ( #26745 ) (leaysgur)
Assets 35 Loading
There was an error while loading. Please reload this page .
❤️ 5 maxdzin, HamoBoker, UweStolz, maciejcieslar, and quentinmcq reacted with heart emoji 🚀 3 ghiscoding, HamoBoker, and quentinmcq reacted with rocket emoji All reactions
❤️ 5 reactions
🚀 3 reactions
6 people reacted
586f27a formatter_core: Add prefix_align builder and Tag::(Start|End)Prefix ( #26520 ) (leaysgur)
586f27a formatter_core: Add prefix_align builder and Tag::(Start|End)Prefix ( #26520 ) (leaysgur)
dc45cc3 formatter_test: Test Prettier dynamic snippet tests ( #26469 ) (leaysgur)
d7e0c82 formatter: Keep an enum member's trailing suppress comment ( #26549 ) (leaysgur)
d2fe01e formatter: Unify suppress comment behavior ( #26547 ) (leaysgur)
d35d89f oxfmt: Skip shutdown delay on fixed Node 24 releases ( #26518 ) (Pablo García)
aef8b4a formatter_css: Handle less-test-suites failures ( #26513 ) (leaysgur)
9dbddca formatter: Keep group flat for own-line comment in JSX ( #26475 ) (leaysgur)
d226e6f formatter_yaml: Bump oxc-yaml-parser to 0.0.6 ( #26472 ) (leaysgur)
8b41fc0 formatter_yaml: Clamp tab_width: 0 to 1 to keep semantics ( #26471 ) (leaysgur)
dea2ba0 formatter_core: Do not panic with align(0) ( #26468 ) (leaysgur)
bf1d3f6 formatter: Check this_param for simple parameters test ( #26474 ) (leaysgur)
33cdc84 formatter: Keep cast-target assignment and commented parameter patterns ( #26429 ) (leaysgur)
876fbe3 oxfmt: Expand Fill parts in tsx-in-vue ( #26427 ) (leaysgur)
66fda4f formatter: Update AGENTS.md comment handling ( #26551 ) (leaysgur)
41abcba formatter: Note why jsx-test-suite snippets stay off ( #26515 ) (leaysgur)
Assets 35 Loading
There was an error while loading. Please reload this page .
🎉 7 EDM115, ghiscoding, Robot-Inventor, htnabe, syahrizaldev, Gruak, and hoanhophuoc reacted with hooray emoji ❤️ 4 maxdzin, HamoBoker, UweStolz, and connorshea reacted with heart emoji 🚀 2 jrc0de and rdnsan reacted with rocket emoji All reactions
🎉 7 reactions
❤️ 4 reactions
🚀 2 reactions
13 people reacted
66744f0 parser: [ BREAKING ] Rename panicked to fatal_error in ParserReturn ( #26382 ) (overlookmotel)
66744f0 parser: [ BREAKING ] Rename panicked to fatal_error in ParserReturn ( #26382 ) (overlookmotel)
2c9a947 parser: [ BREAKING ] Reduce MAX_LEN to 256 bytes below u32::MAX ( #26352 ) (overlookmotel)
f7acdc0 formatter: Treat a JSDoc cast target as opaque in chain layouts ( #26375 ) (leaysgur)
104061b formatter: Keep JSDoc cast parens with a comment inside them ( #26374 ) (leaysgur)
3d00a76 formatter_css: Keep comment inside important and simple-vars colon ( #26370 ) (leaysgur)
172ddb6 formatter_css: Keep a same-line line comment on its line ( #26321 ) (leaysgur)
cafaf32 formatter_css: Never drop comments inside an at-rule prelude ( #26320 ) (leaysgur)
534a0fe formatter_css: Keep a line comment on its comma's line ( #26319 ) (leaysgur)
99cfd75 formatter_css: Hide raw comment printing API, use strcut instead ( #26316 ) (leaysgur)
2028896 formatter_css: Preserve comments around SCSS/Less variable values ( #26276 ) (leaysgur)
6752abc formatter_css: Keep leading comments before ( #26272 ) (leaysgur)
3b054de formatter_graphql: Align comment printing after open { ( #26271 ) (leaysgur)
b3c287a formatter_css: Fix SCSS bracket list printing ( #26270 ) (leaysgur)
bac770a formatter_css: Preserve comment in SCSS paren comma list ( #26269 ) (leaysgur)
c7b57ef formatter_css: Print SCSS map consisntent with and without comment ( #26268 ) (leaysgur)
063e2b6 formatter_css: Preserve trailing comma in single-item scss lists ( #26245 ) (leaysgur)
5f9580d oxfmt: Bump prettier-plugin-tailwindcss ( #26273 ) (leaysgur)
1cad286 oxfmt: Match editorconfig once per file ( #26239 ) (Yuji Sugiura)
260c5eb oxfmt: Match overrides once per file ( #26238 ) (leaysgur)
61565bc oxfmt: Share resolved FormatConfig via Arc instead of cloning per file ( #26237 ) (leaysgur)
32084d4 formatter_core: Clarify printer hard_line compression ( #26312 ) (leaysgur)
4fabdcc formatter,formatter_css,formatter_graphql,formatter_yaml: Update DIVERGENCES.md ( #26267 ) (leaysgur)
26a1fa4 formatter_core: Refine FORMATTER_POLICY ( #26266 ) (leaysgur)
Assets 35 Loading
There was an error while loading. Please reload this page .
👍 3 uwu-420, rvitaliy, and MominRaza reacted with thumbs up emoji 🎉 4 uwu-420, piyushchauhan2011, syahrizaldev, and EDM115 reacted with hooray emoji ❤️ 8 felipeadeildo, maxdzin, kyu-rong, HamoBoker, uwu-420, UweStolz, Leni-Vienne, and rdnsan reacted with heart emoji 🚀 2 uwu-420 and jrc0de reacted with rocket emoji All reactions
👍 3 reactions
🎉 4 reactions
❤️ 8 reactions
🚀 2 reactions
14 people reacted
1fb37b6 formatter/css: Format declaration-shaped raw-prelude rules (postcss nested config blocks) ( #26194 ) (leaysgur)
9f81002 formatter: Re-add suppressed statement terminators per options.semi ( #26220 ) (leaysgur)
769ffd5 formatter: Print suppressed typecast parens ( #26218 ) (leaysgur)
5ff57f8 formatter/sort-imports: Handle custom side effect groups ( #26217 ) (leaysgur)
2f4d759 formatter: Do not skip cast comment lookup ( #26216 ) (leaysgur)
1213e12 formatter: Preserve comment for statement terminators and binary casts ( #26213 ) (leaysgur)
57e8e22 formatter_css: Space a folded sign after a call in Less operations ( #26134 ) (leaysgur)
e4298fb formatter/jsdoc: Follow CommonMark for interrupting lists and guard wrapping from creating them ( #26098 ) (leaysgur)
a1e21c2 formatter: Apply head body policy everywhere ( #26074 ) (leaysgur)
676b7e1 formatter: Keep comments in their for-head slot, before an empty-statement body and do-while ( #26073 ) (leaysgur)
3bbcea6 formatter: Keep comments between a head and its body out of the braces across all constructs ( #26071 ) (leaysgur)
57537a2 formatter: Place comments between a head and open paren ( #26058 ) (leaysgur)
e2d53e7 formatter: Place comments between a statement head and its body ( #26043 ) (leaysgur)
662556c formatter: Print the idempotent placement for comments in dropped parens ( #26041 ) (leaysgur)
faf11d9 formatter_yaml: Keep trailing whitespace in block scalars ( #26072 ) (leaysgur)
b879608 formatter,formatter_graphql,formatter_yaml: Annotate own-line comment inlining as known policy violation ( #26131 ) (leaysgur)
181953b oxfmt,formatter_core,formatter,formatter_yaml,formatter_css,formatter_graphql: Extract DIVERGENCES.md out from AGENTS.md ( #26121 ) (leaysgur)
a67cb9d formatter,formatter_core: Document comment moving policy ( #26075 ) (leaysgur)
fc175b0 formatter_core: Clarify idempotency test infra ( #26069 ) (leaysgur)
Assets 35 Loading
There was an error while loading. Please reload this page .
🎉 7 ghiscoding, christoph-freimuth, syahrizaldev, JCast867, maciejcieslar, rdnsan, and EDM115 reacted with hooray emoji ❤️ 5 Togetic, maxdzin, acoBOYZ, UweStolz, and jrc0de reacted with heart emoji All reactions
🎉 7 reactions
❤️ 5 reactions
12 people reacted
Previous 1 2 3 4 5 … 27 28 Next
Previous Next
You can’t perform that action at this time.
bf37dd5 formatter: Preserve class decorators before export when the statement is suppressed ( #26034 ) (leaysgur)
Assets 35 Loading
There was an error while loading. Please reload this page .
👍 5 uwu-420, jrc0de, andreylysenko, ghiscoding, and Psycarlo reacted with thumbs up emoji 🎉 5 uwu-420, andreylysenko, christoph-freimuth, syahrizaldev, and EDM115 reacted with hooray emoji ❤️ 4 maxdzin, uwu-420, UweStolz, and andreylysenko reacted with heart emoji 🚀 8 Arcadi4, uwu-420, jrc0de, andreylysenko, acoBOYZ, rdnsan, piyushchauhan2011, and JCast867 reacted with rocket emoji All reactions
👍 5 reactions
🎉 5 reactions
❤️ 4 reactions
🚀 8 reactions
15 people reacted
c07fe7c oxfmt: Support experimentalOperatorPosition ( #25643 ) (leaysgur)
c07fe7c oxfmt: Support experimentalOperatorPosition ( #25643 ) (leaysgur)
2adb8fb formatter: Implement operatorPosition option ( #25581 ) (leaysgur)
44231fb formatter: Fix comment and indent issues around unions ( #25665 ) (leaysgur)
2465e87 formatter: Keep comments in place when dropping EmptyStatement ( #25730 ) (leaysgur)
7e4f3b7 formatter: Print JSDocUnknownType ( #25729 ) (leaysgur)
5238d9e formatter: Keep nested awaited-paren member chain grouped in call arguments ( #25646 ) (leaysgur)
a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not explicitly named files ( #25531 ) (leaysgur)
5c0a5ff formatter_css: Fill own-line block comments inside space-separated values ( #25578 ) (leaysgur)
53debfa formatter_css: Keep trailing comma and indent after comment-preceded last map value ( #25577 ) (leaysgur)
1a83a8d oxfmt: Mirror printer line suppression and restore dedent-to-root ( #25573 ) (leaysgur)
7f350d1 formatter: Keep unary comment and print only needed parens ( #25526 ) (leaysgur)
f405789 formatter_yaml: Consistent chomped eos behavior ( #25523 ) (leaysgur)
a243311 formatter_yaml: Bump oxc-yaml-parser for contentless block scalar ( #25519 ) (leaysgur)
40d38a0 formatter_css: Keep multi value function args intact after leading comment ( #25518 ) (leaysgur)
223e785 oxfmt/conformance: Update notes on conformance ( #25757 ) (Yuji Sugiura)
673dc6d oxfmt: Move some docs from AGENTS.md to code comment ( #25649 ) (leaysgur)
fed6681 oxfmt: Skip expanding overrides options ( #25572 ) (leaysgur)
Assets 35 Loading
There was an error while loading. Please reload this page .
🎉 7 Jungzl, theoludwig, rdnsan, syahrizaldev, EDM115, maciejcieslar, and jiafuzhang reacted with hooray emoji ❤️ 4 connorshea, frshaad, taearls, and christoph-freimuth reacted with heart emoji All reactions
🎉 7 reactions
❤️ 4 reactions
11 people reacted
fd02a89 oxfmt: Dispatch yaml-in-css(frontmatter) to oxc_formatter_yaml ( #25336 ) (leaysgur)
fd02a89 oxfmt: Dispatch yaml-in-css(frontmatter) to oxc_formatter_yaml ( #25336 ) (leaysgur)
ab12665 formatter_core: Add hardlineWithoutBreakParent equivalent IR ( #25273 ) (leaysgur)
95dc917 oxfmt: Drop IR Space at line start for js-in-xxx ( #25460 ) (leaysgur)
b63eccc formatter: Keep comments after TS this_param ( #25459 ) (leaysgur)
ab52a59 formatter: Format xxx-in-js inside JSDoc js fence ( #25414 ) (leaysgur)
1a2c64a formatter,oxfmt: Apply effective print width for JSDoc fence ( #25413 ) (leaysgur)
2eaede9 formatter_core: Unify leading-BOM handlings ( #25340 ) (leaysgur)
ef1d04b formatter: Break mapped type brackets ( #25297 ) (leaysgur)
4e6f3f1 formatter: Break index signature brackets ( #25296 ) (leaysgur)
e23dccf formatter_css: Bump oxc-css-parser to accept unknown at-rule with interpolated ( #25277 ) (leaysgur)
c29b587 formatter_core: Measure decided-flat fill separator as flat during group re-measure ( #25276 ) (leaysgur)
f3c6953 formatter_yaml: Don't rewrite overflowing key to implicit ( #25274 ) (leaysgur)
6eae5c9 formatter,oxfmt: Record embed-layer decisions in place ( #25422 ) (leaysgur)
51224a7 formatter_yaml: Pin EOF blank lines divergence ( #25269 ) (leaysgur)
Assets 35 Loading
There was an error while loading. Please reload this page .
👍 6 uwu-420, fengmk2, mauroreisvieira, jrc0de, maciejcieslar, and christoph-freimuth reacted with thumbs up emoji 🎉 8 uwu-420, ciosciaa, jrc0de, quentinmcq, syahrizaldev, UweStolz, EDM115, and rdnsan reacted with hooray emoji ❤️ 3 uwu-420, jrc0de, and maxdzin reacted with heart emoji 🚀 3 uwu-420, theigl, and jrc0de reacted with rocket emoji All reactions
👍 6 reactions
🎉 8 reactions
❤️ 3 reactions
🚀 3 reactions
14 people reacted
067da8c ast: [ BREAKING ] Store single parameter in TSIndexSignature::parameter ( #25154 ) (camc314)
067da8c ast: [ BREAKING ] Store single parameter in TSIndexSignature::parameter ( #25154 ) (camc314)
a0c7788 ast: [ BREAKING ] Change TSIndexSignatureName::name to Ident ( #25150 ) (camc314)
1bdedd1 ast: [ BREAKING ] Introduce ExportDeclaration , ExportFromDeclaration ( #25095 ) (camc314)
c917f20 ast: [ BREAKING ] Introduce ArrowFunctionBody enum ( #24987 ) (camc314)
0c16cb5 oxfmt: [ BREAKING ] Format parser:yaml files by oxc_formatter_yaml ( #24890 ) (leaysgur)
1b57f78 oxfmt: Support tsx-in-vue ( #25063 ) (leaysgur)
be7f6da oxfmt: Colorize diff file list in check mode ( #25061 ) (leaysgur)
68146bd formatter_css: Preserve glued plugin words in grid values ( #25225 ) (leaysgur)
20f68e7 oxlint,oxfmt: Respect .gitignore for walk targets and explicit paths ( #25133 ) (leaysgur)
a9e76e9 oxfmt: Rework tsx-in-vue support ( #25106 ) (leaysgur)
dd28596 formatter_css: Bump oxc-css-parser for substituted at-rule preludes ( #25104 ) (leaysgur)
ca1ba71 formatter: Hug arrows with type-reference return annotations ( #25044 ) (Pitiș Radu)
f56009a oxfmt: Correct prose about comment width in fits measurement ( #25054 ) (leaysgur)
22fdda4 oxfmt/conformance: Fix typo ( #25053 ) (leaysgur)
ee344bd formatter_yaml: Break long keys off a block scalar header ( #25014 ) (leaysgur)
d5e3476 formatter_yaml: Let ancestor collection values claim end comments after block scalars ( #24897 ) (leaysgur)
ec05297 formatter_yaml: Align sequence container end comments to the dash width ( #24891 ) (leaysgur)
e6e584b oxfmt: Type jsdoc. enum options ( #25008 ) (leaysgur)
eaa7c69 formatter_core: Extract FORMATTER_POLICY ( #25233 ) (leaysgur)
a1842e2 formatter_json: Fix outdated separeted.rs comments ( #25144 ) (leaysgur)
193e16f formatter/jsdoc: Correct str_width attribution ( #25142 ) (leaysgur)
Assets 35 Loading
There was an error while loading. Please reload this page .
👍 4 uwu-420, christoph-freimuth, HamoBoker, and cos4ni2s reacted with thumbs up emoji 🎉 9 uwu-420, syahrizaldev, maciejcieslar, rdnsan, HamoBoker, UweStolz, Senal-D-A-Gunaratna, cos4ni2s, and EDM115 reacted with hooray emoji ❤️ 4 uwu-420, maxdzin, Rex-noir, and cos4ni2s reacted with heart emoji 🚀 4 uwu-420, RaimonxDev, HamoBoker, and cos4ni2s reacted with rocket emoji All reactions
👍 4 reactions
🎉 9 reactions
❤️ 4 reactions
🚀 4 reactions
13 people reacted
eabfe01 oxfmt/lsp: Support oxc.fmt.disableNestedConfig ( #24965 ) (leaysgur)
eabfe01 oxfmt/lsp: Support oxc.fmt.disableNestedConfig ( #24965 ) (leaysgur)
2357a10 formatter_yaml: Implement YAML formatter ( #24534 ) (leaysgur)
761a882 formatter_css: Keep leading + in An+B to enable idempotency check ( #24973 ) (leaysgur)
e037709 formatter: Stop preserving indent for embedded template exprs ( #24972 ) (leaysgur)
ae1a39b formatter_css: Align wrapped selector-arg indent ( #24971 ) (leaysgur)
143fd1f formatter: Align quoted new signature ( #24883 ) (leaysgur)
07ff12f formatter_yaml: Fix indent, blank, and spacing issues ( #24837 ) (leaysgur)
d076b40 formatter: Check calee chain is_simple ( #24871 ) (leaysgur)
fb34196 formatter_css: Keep non-ASCII strings with quotes ( #24870 ) (leaysgur)
9213560 config: Preserve defineConfig field JSDoc ( #24326 ) (周星星同学)
31783e9 formatter_css: Print nested SCSS map with consistent indent ( #24789 ) (leaysgur)
8eb9eca formatter/jsdoc: Respect singleQuote option in @import ( #24787 ) (leaysgur)
6f05ac4 formatter: Fix template literal formatting ( #24786 ) (leaysgur)
bb73b23 formatter_core: Bound the thread-local scratch cache ( #24793 ) (leaysgur)
a5f7b15 formatter: Stage assignment-like left hand side on the heap ( #24613 ) (leaysgur)
94de05f formatter: Accumulate JSX child-list builders on the heap ( #24585 ) (leaysgur)
7810e8a formatter_core: Share one thread-cached scratch vector across staging buffers ( #24583 ) (leaysgur)
c191f51 formatter_core: Stage IR buffers on the heap to reduce arena memory ( #24582 ) (leaysgur)
Assets 35 Loading
There was an error while loading. Please reload this page .
👍 1 uwu-420 reacted with thumbs up emoji 🎉 4 EDM115, uwu-420, ghiscoding, and syahrizaldev reacted with hooray emoji ❤️ 9 maxdzin, connorshea, maciejcieslar, jrc0de, SpasiboKojima, rdnsan, christoph-freimuth, uwu-420, and UweStolz reacted with heart emoji 🚀 3 connorshea, uwu-420, and thehouseisonfire reacted with rocket emoji All reactions
👍 1 reaction
🎉 4 reactions
❤️ 9 reactions
🚀 3 reactions
13 people reacted
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →