Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ultracite.ai/llms.txt

Use this file to discover all available pages before exploring further.

Ultracite v7 introduces support for multiple linting providers: Biome, ESLint + Prettier + Stylelint, and Oxlint + Oxfmt.

What Changed

Multi-Provider Support

Ultracite now supports three linting toolchains:

Updated Preset Paths

Preset paths now include the provider name to distinguish between linters:
v6 Pathv7 Path
ultracite/coreultracite/biome/core
ultracite/reactultracite/biome/react
ultracite/nextultracite/biome/next
ultracite/solidultracite/biome/solid
ultracite/vueultracite/biome/vue
ultracite/svelteultracite/biome/svelte
ultracite/qwikultracite/biome/qwik
ultracite/angularultracite/biome/angular
ultracite/remixultracite/biome/remix
ultracite/astroultracite/biome/astro

New CLI Flag

The --linter flag allows you to specify which provider to use:
npx ultracite init --linter biome
npx ultracite init --linter eslint
npx ultracite init --linter oxlint

Migration

For Biome Users (Default)

Update your biome.jsonc to use the new preset paths:
biome.jsonc
{
  // Before (v6)
  "extends": ["ultracite/core", "ultracite/react", "ultracite/next"]

  // After (v7)
  "extends": ["ultracite/biome/core", "ultracite/biome/react", "ultracite/biome/next"]
}

Switching to ESLint

If you’d like to switch to ESLint + Prettier + Stylelint:
npx ultracite init --linter eslint
This will create eslint.config.mjs, prettier.config.mjs, and stylelint.config.mjs files:
eslint.config.mjs
import { defineConfig } from "eslint/config";
import core from "ultracite/eslint/core";
import react from "ultracite/eslint/react";
import next from "ultracite/eslint/next";

export default defineConfig([
  {
    extends: [core, react, next],
  },
]);

Switching to Oxlint

If you’d like to switch to the fastest option:
npx ultracite init --linter oxlint
This will create oxlint.config.ts and oxfmt.config.ts files:
oxlint.config.ts
import { defineConfig } from "oxlint";

import core from "ultracite/oxlint/core";
import next from "ultracite/oxlint/next";
import react from "ultracite/oxlint/react";

export default defineConfig({
  extends: [core, react, next],
  ignorePatterns: core.ignorePatterns,
});
oxfmt.config.ts
import { defineConfig } from "oxfmt";
import ultracite from "ultracite/oxfmt";

export default defineConfig({
  ...ultracite,
});

Quick Upgrade

For the fastest upgrade path, run:
npx ultracite init
When prompted, select your preferred linting provider. Ultracite will update your configuration files automatically.