Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
haydenbleasel avatar

Ultracite

  • 6.2k installs
  • 3.1k repo stars
  • Updated August 2, 2026
  • haydenbleasel/ultracite

ultracite is an agent skill for Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects. Use when: (1) Setting up or initializing Ultracite in a project (ultracite init), (2) R

About

Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects. Use when: (1) Setting up or initializing Ultracite in a project (ultracite init), (2) Running linting or formatting commands (check, fix, doctor), (3) Writing or reviewing JS/TS code in a project that uses Ultracite - to follow its code standards, (4) Troubleshooting linting/formatting issues, (5) User men --- name: ultracite description: "Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects. Use when: (1) Setting up or initializing Ultracite in a project (ultracite init), (2) Running linting or formatting commands (check, fix, doctor), (3) Writing or reviewing JS/TS code in a project that uses Ultracite - to follow its code standards, (4) Troubleshooting linting/formatting issues, (5) User mentions 'ultracite', 'lint', 'format', 'code quality', or 'biome/eslint/oxlint' in a project with Ultracite installed." --- # Ultracite Zero-config linting and formatting for JS/TS projects.

  • `biome.jsonc` → Biome
  • `eslint.config.mjs` → ESLint
  • `oxlint.config.ts` → Oxlint
  • Check for issues (read-only)
  • Diagnose setup problems

Ultracite by the numbers

  • 6,176 all-time installs (skills.sh)
  • +214 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #252 of 2,153 Testing & QA skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

ultracite capabilities & compatibility

Capabilities
`biome.jsonc` → biome · `eslint.config.mjs` → eslint · `oxlint.config.ts` → oxlint · check for issues (read only) · diagnose setup problems
Use cases
documentation
From the docs

What ultracite says it does

--- name: ultracite description: "Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects.
SKILL.md
Supports three linter backends: **Biome** (recommended), **ESLint** + Prettier, and **Oxlint** + Oxfmt.
SKILL.md
## Detecting Ultracite Check if `ultracite` is in `package.json` devDependencies.
SKILL.md
npx skills add https://github.com/haydenbleasel/ultracite --skill ultracite

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs6.2k
repo stars3.1k
Security audit3 / 3 scanners passed
Last updatedAugust 2, 2026
Repositoryhaydenbleasel/ultracite

When should developers use ultracite and what problem does it solve?

Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects. Use when: (1) Setting up or initializing Ultracite in a project (ultracite init), (2) Running linting or fo

Who is it for?

Developers working with ultracite patterns described in the skill documentation.

Skip if: Skip when cached docs are empty or the task is outside the skill's documented scope.

When should I use this skill?

Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects. Use when: (1) Setting up or initializing Ultracite in a project (ultracite init), (2) Running linting or fo

What you get

Grounded guidance and workflows from SKILL.md for ultracite.

  • ultracite config
  • linted source files
  • formatting rules

By the numbers

  • Supports 3 linter backends: Biome, ESLint, and Prettier

Files

SKILL.mdMarkdownGitHub ↗

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 → Biome
  • eslint.config.mjs → ESLint
  • oxlint.config.ts → 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 universal \
  --agents claude copilot \
  --frameworks react next \
  --integrations husky lint-staged \
  --quiet

Flags:

  • --pmnpm | yarn | pnpm | bun
  • --linterbiome (recommended) | eslint | oxlint
  • --editorsuniversal (writes .vscode/settings.json for every VS Code-based editor) | vscode | zed | cursor | windsurf | antigravity | kiro | trae | void | bob | codebuddy
  • --agentsclaude | codex | copilot | cline | amp | gemini | cursor-cli + 19 more
  • --frameworksreact | next | solid | vue | svelte | qwik | remix | angular | astro | nestjs
  • --integrationshusky | 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 when CI=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 is handled by the project's configured linter/formatter. Respect the repository's existing formatter settings instead of forcing one fixed line width, quote style, or trailing comma policy.

Type safety: Use explicit types when they improve clarity. Prefer unknown over any. Use as const for immutable values and rely on type narrowing over blunt assertions.

Modern JavaScript/TypeScript: Prefer const, destructuring, optional chaining, nullish coalescing, template literals, for...of, and concise arrow functions.

Async and correctness: Always await promises in async functions. Prefer async/await over promise chains. Remove console.log, debugger, and alert from production code.

React and accessibility: Use function components, keep hooks top-level with correct deps, avoid nested component definitions, and use semantic HTML with the right labels, headings, alt text, and keyboard affordances.

Organization, security, performance, and testing: Keep functions focused, prefer early returns, avoid dangerouslySetInnerHTML and eval(), prefer specific imports and top-level regex, and keep tests free of .only and .skip.

Troubleshooting

Run bunx ultracite doctor to diagnose. It checks:

1. Linter installation (biome/eslint/oxlint binary available) 2. Config validity (extends ultracite presets correctly) 3. Ultracite in package.json dependencies 4. 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 init again or manually add ultracite to devDependencies
  • Rules not applying: Ensure config file extends the correct presets for your framework

Related skills

How it compares

Choose Ultracite when you want an opinionated, zero-config JS/TS preset; pick manual ESLint/Prettier setup when you need plugin-specific or framework-tailored rule overrides.

FAQ

What does ultracite do?

Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects. Use when: (1) Setting up or initializing Ultracite in a project (ultracite init), (2) Running linting or formatting commands (c

When should I invoke ultracite?

Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects. Use when: (1) Setting up or initializing Ultracite in a project (ultracite init), (2) Running linting or formatting commands (c

Where is the source documentation?

Ground claims in SKILL.md excerpts and linked reference files from the cached docs.

Is Ultracite safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.