ultracite
In AI engineering, Ultracite provides zero-configuration code linting and formatting presets, helping developers easily maintain code quality and consistency, improving development efficiency.
npx skills add haydenbleasel/ultracite --skill ultraciteBefore / After Comparison
1 组There was no unified code standard in the project, and team members submitted code with varying styles. There were numerous ESLint warnings and formatting issues, requiring significant time for formatting adjustments and manual fixes during each code review.
After introducing Ultracite, automated tools enforced code standards and formatting. Newly submitted code now has almost no formatting issues or ESLint warnings, significantly reducing code review time and improving development efficiency and codebase cleanliness.
Ultracite
Zero-config linting and formatting for JS/TS projects. Supports three linter backends: Biome (recommended), ESLint + Prettier, and Oxlint + Oxfmt.
Detecting Ultracite
Check if ultracite is in package.json devDependencies. Detect the active linter by looking for:
biome.jsonc→ Biomeeslint.config.mjs→ ESLint.oxlintrc.json→ Oxlint
CLI Commands
# Check for issues (read-only)
bunx ultracite check
# Auto-fix issues
bunx ultracite fix
# Diagnose setup problems
bunx ultracite doctor
# Initialize in a new project
bunx ultracite init
Replace bunx with npx, pnpx, or yarn dlx depending on the package manager.
check and fix accept optional file paths: bunx ultracite check src/index.ts.
Initialization
bunx ultracite init runs an interactive setup. For non-interactive (CI) use, pass flags:
bunx ultracite init \
--pm bun \
--linter biome \
--editors vscode cursor \
--agents claude copilot \
--frameworks react next \
--integrations husky lint-staged \
--quiet
Flags:
--pm—npm|yarn|pnpm|bun--linter—biome(recommended) |eslint|oxlint--editors—vscode|zed|cursor|windsurf|antigravity|kiro|trae|void--agents—claude|codex|copilot|cline|amp|gemini|cursor-cli+ 19 more--frameworks—react|next|solid|vue|svelte|qwik|remix|angular|astro|nestjs--integrations—husky|lefthook|lint-staged|pre-commit--hooks— Enable auto-fix hooks for supported agents/editors--type-aware— Enable type-aware linting (oxlint only)--skip-install— Skip dependency installation--quiet— Suppress prompts (auto-detected whenCI=true)
Init creates config that extends Ultracite presets:
// biome.jsonc
{ "extends": ["ultracite/biome/core", "ultracite/biome/react"] }
Framework presets available per linter: core, react, next, solid, vue, svelte, qwik, remix, angular, astro, nestjs.
Code Standards
When writing code in a project with Ultracite, follow these standards. For the full rules reference, see references/code-standards.md.
Key rules at a glance:
Formatting: 2-space indent, semicolons, double quotes, 80-char width, ES5 trailing commas, LF line endings.
Style: Arrow functions preferred. const by default, never var. for...of over .forEach(). Template literals over concatenation. No enums (use objects with as const). No nested ternaries. Kebab-case filenames.
Correctness: No unused imports/variables. No any (use unknown). Always await promises in async functions. No console.log/debugger/alert in production.
React: Function components only. Hooks at top level. Exhaustive deps. key on iterables (no array index). No nested component definitions. Semantic HTML + ARIA.
Performance: No accumulating spread in loops. No barrel files. No namespace imports. Top-level regex.
Security: rel="noopener" on target="_blank". No dangerouslySetInnerHTML. No eval().
Troubleshooting
Run bunx ultracite doctor to diagnose. It checks:
- Linter installation (biome/eslint/oxlint binary available)
- Config validity (extends ultracite presets correctly)
- Ultracite in package.json dependencies
- Conflicting tools (old
.eslintrc.*,.prettierrc.*files)
Common fixes:
- Conflicting configs: Delete legacy
.eslintrc.*and.prettierrc.*files after migrating to Ultracite - Missing dependency: Run
bunx ultracite initagain or manually addultraciteto devDependencies - Rules not applying: Ensure config file extends the correct presets for your framework
User Reviews (0)
Write a Review
No reviews yet
Statistics
User Rating
Rate this Skill