Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Fast, zero-config linting and formatting for modern JavaScript/TypeScript projects
Overview
Ultracite is a unified linting and formatting solution that supports multiple providers: Biome (default, Rust-based), ESLint+Prettier+Stylelint, and Oxlint+Oxfmt. It provides framework-specific presets and zero-configuration defaults, replacing traditional ESLint+Prettier setups with a faster, simpler alternative. Ultracite operates invisibly in the background, automatically formatting code and applying fixes on every save.
Version 7 Changes: Multi-provider architecture, preset path migration, MCP server support, AI hooks
Version 6 Changes: Framework-specific presets introduced (React, Next.js, Vue, Svelte, etc.)
Core Goals
Lightning-Fast Performance: Leverages Biome's Rust implementation for instant linting/formatting
Zero-Config Design: Ships with 200+ sensible defaults optimized for modern TypeScript development
Simplicity & Invisibility: Operates with minimal user interaction
Type Safety: Enforces TypeScript strict mode and comprehensive null/undefined handling
Tool Compatibility: Works alongside other development tools without conflicts
Speed: Fastest linting (even faster than Biome for linting only)
Setup: Type-aware linting with TypeScript integration
Best for: Large TypeScript codebases, type-safety-critical projects
Limitations: Newer ecosystem, fewer rules than ESLint
Provider selection during init:
bun x ultracite init --linter biome # Default
bun x ultracite init --linter eslint # ESLint + Prettier + Stylelint
bun x ultracite init --linter oxlint # Oxlint + Oxfmt
Check package.json for react, next, vue, svelte, etc.
Recommend appropriate preset
Assess project size:
Large projects (1000+ files) benefit most from Rust performance
Small projects may not notice speed difference
Check TypeScript config:
If tsconfig.json exists, note that Ultracite requires strictNullChecks: true
Warn if disabled (will generate many warnings)
Recommend or warn:
✅ RECOMMENDED: This TypeScript + React project is ideal for Ultracite
- 500+ files will benefit from Rust performance
- React preset available
- Can replace existing ESLint + Prettier setup
⚠️ CONSIDER: This project uses advanced ESLint plugins
- Custom rule: eslint-plugin-custom-security
- May need to retain ESLint for these specific rules
- Could use Ultracite for formatting only
Installation & Setup
Prerequisites
Node.js v20+
Package manager: Bun (preferred), npm, pnpm, or yarn
package.json file in project root
Quick Start (Interactive)
# Using Bun (preferred for speed)
bun x ultracite init
# With provider selection (v7+)
bun x ultracite init --linter biome # Default, fastest
bun x ultracite init --linter eslint # ESLint + Prettier + Stylelint
bun x ultracite init --linter oxlint # Oxlint + Oxfmt (type-aware)# Using npm
npx ultracite init
# Using pnpm
pnpm dlx ultracite init
# Using yarn
yarn dlx ultracite init
The interactive setup will:
Prompt for provider selection (Biome, ESLint, Oxlint) - v7+ only
Install Ultracite and provider dependencies
Prompt for framework selection (React, Next.js, Vue, etc.)
Ask about editor setup (VS Code, Cursor, etc.)
Offer AI agent rules installation (Cursor, Claude Code, Copilot)
Prompt for Git hook integration (Husky, Lefthook, lint-staged)
Offer to migrate from existing tools (ESLint, Prettier)
For complete migration guides with detailed rule mappings, see: references/migration-guides.md
Known Limitations
CSS/SCSS: Biome does not lint CSS. Workaround: Use Stylelint
Framework gaps: Limited Angular/Astro support. Workaround: Use ultracite/core + manual rules
ESLint plugins: Many ESLint plugins have no Biome equivalent. Workaround: Run ESLint alongside Ultracite for specific plugins
File types: No Markdown, YAML, HTML linting. Workaround: Use dedicated tools (markdownlint, yamllint, htmlhint)
For complete list of limitations and detailed workarounds, see: references/limitations-and-workarounds.md
Troubleshooting
Common issues:
VS Code not formatting on save → Install Biome extension, configure settings
ESLint conflicts → Disable ESLint or run selectively
Parse errors → Configure JSX support in biome.json
Pre-commit hooks failing → Use bunx instead of global install
CI failures → Pin Bun/Node versions, increase memory limit
For complete troubleshooting guide, see: references/troubleshooting.md
Templates & Scripts
Initial Setup Script
See scripts/install-ultracite.sh for automated setup.
Migration Script
See scripts/migrate-to-ultracite.sh for ESLint/Prettier migration.
Example Configurations
See references/ directory for:
configuration-guide.md: Framework presets and rule details
references/mcp-integration.md: When user asks about:
MCP server setup
AI assistant integration via MCP
Model Context Protocol
MCP server configuration
references/ai-hooks.md: When user asks about:
AI hooks setup (distinct from AI rules)
Auto-format after AI edits
Editor hook configuration
Post-edit formatting automation
references/configuration-guide.md: When user asks about:
Framework presets (React, Next.js, Vue, Svelte)
Core preset rules (200+ rules breakdown)
Rule customization methods
File exclusion patterns
Advanced configuration
references/git-hooks-setup.md: When user asks about:
Pre-commit hooks
Husky integration
Lefthook integration
lint-staged setup
CI/CD integration
Hook troubleshooting
references/ai-editor-integration.md: When user asks about:
AI editor rules generation
Cursor integration
Claude Code integration
GitHub Copilot setup
Custom AI rules
Editor-specific setup
references/monorepo-configuration.md: When user asks about:
Monorepo setup
Turborepo integration
Nx integration
Package-specific overrides
Workspace configuration
Performance optimization
references/migration-guides.md: When user asks about:
ESLint migration
Prettier migration
Biome migration
Rule mapping
Migration checklist
Post-migration steps
references/troubleshooting.md: When user asks about:
VS Code issues
ESLint/Prettier conflicts
Parse errors
Pre-commit hook failures
CI failures
TypeScript strictness errors
Installation issues
Performance problems
references/limitations-and-workarounds.md: When user asks about:
CSS linting
Framework support gaps
ESLint plugin ecosystem
File type support
Editor integration
Migration limitations
Secure Installation
When installing linting/formatting packages, follow supply chain security best practices:
Block post-install scripts — npm config set ignore-scripts true (or Bun: disabled by default)
Cooldown period — Wait 7 days for new package versions to be vetted by the community
Audit before installing — Run socket package score npm <pkg> or use socket npm install <pkg> to check packages
Load the dependency-upgrade skill for full security configuration including Socket CLI integration, cooldown setup, lockfile validation, and CI enforcement.
Summary
Ultracite provides a unified linting and formatting solution with multi-provider support:
✅ Use when:
Starting new projects
Building with React/Next/Vue/Svelte
Working in monorepos
Want consistent formatting without configuration
Performance matters (Biome/Oxlint providers)
Need ESLint compatibility (ESLint provider)
Using AI coding assistants
Require type-aware linting (Oxlint)
⚠️ Consider alternatives when:
Need specific ESLint plugins not supported by any provider
Advanced CSS linting required (though ESLint provider includes Stylelint)
Legacy framework support needed
Key advantages:
Multi-provider: Choose Biome (fastest), ESLint (most compatible), or Oxlint (type-aware)
Version 7: Preset path migration, MCP server, AI hooks, multi-provider architecture
Version 6: Framework-specific presets (React, Next.js, Vue, Svelte, etc.)
10-100x faster than traditional ESLint + Prettier (Biome/Oxlint)
Zero configuration (200+ rules preconfigured for Biome)
Framework-specific presets
AI editor integration + AI hooks
Git hook support
TypeScript strict mode enforced
Installation:
bun x ultracite init --linter biome # Default (v7+)
bun x ultracite init --linter eslint # ESLint provider (v7+)
bun x ultracite init --linter oxlint # Oxlint provider (v7+)