Agent skill

Ultracite

by secondsky in secondsky/claude-skills

Ultracite multi-provider linting/formatting (Biome, ESLint, Oxlint).

MITAuto-check passedDevelopment

Install Ultracite

skills CLI
$ npx skills add secondsky/claude-skills --skill ultracite -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install secondsky/claude-skills ultracite --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/secondsky/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ultracite/skills/ultracite .claude/skills/ultracite && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ultracite
GitHub stars
227
Token cost
~6.5k tokens
SKILL.md length
2,028 words
Files
29 (incl. scripts, references)
Skills in repo
169
Repo updated
First seen
Licence
MIT

At a glance

Ultracite multi-provider linting/formatting (Biome, ESLint, Oxlint).

  • Works in 5 steps: Lightning-Fast Performance: Leverages… → Zero-Config Design: Ships with 200+… → Simplicity & Invisibility: Operates with… → …
  • Provider selection
  • SKILL.md covers Overview, When to Use This Skill, Interactive Components and Choosing a Provider, plus 4 more sections
  • Calls bunx, bun and npx; reaches biomejs.dev

What it does

Ultracite is an agent skill from secondsky/claude-skills. Ultracite multi-provider linting/formatting (Biome, ESLint, Oxlint). Use for v6/v7 setup, provider selection, Git hooks, MCP integration, AI hooks, migrations, or encountering configuration, type-aware linting, monorepo errors.

Its SKILL.md is about 6.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 31 other files, including scripts and reference files (for example `agents/config-validator.md`, `agents/migration-assistant.md` and `commands/doctor.md`).

It sits in Development, covering Linting and formatting. It works with ESLint, Git, Prettier and TypeScript. The repository describes itself as: Production-ready skills for Claude Code CLI - Cloudflare, React, Tailwind v4, and AI integrations. The licence is MIT.

When your agent uses it

  • Provider selection
  • MCP integration
  • Encountering configuration
  • Type-aware linting

Example prompts

  • “/ultracite”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Lightning-Fast Performance: Leverages Biome's Rust implementation for instant linting/formatting
  2. Zero-Config Design: Ships with 200+ sensible defaults optimized for modern TypeScript development
  3. Simplicity & Invisibility: Operates with minimal user interaction
  4. Type Safety: Enforces TypeScript strict mode and comprehensive null/undefined handling
  5. Tool Compatibility: Works alongside other development tools without conflicts

What it can do on your machine

Read from SKILL.md and the folder at commit 8837836. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    Shell commands in SKILL.md call:

    • bunx
    • bun
    • npx
    • npm
    • pnpm
    • yarn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • biomejs.dev

    Also links to:

    • ultracite.ai
    • github.com
    • discord.gg

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ultracite loads about 6.5k tokens when it runs, and up to ~42k if it reads all its reference files. Until then it costs about 59 tokens; SKILL.md has 2,028 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~59
When it runs · the whole SKILL.md, loaded when a task matches
~6.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~42k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from secondsky/claude-skills at commit 8837836, republished under its MIT licence (© secondsky). 2,028 words, ~6,466 tokens.

Download SKILL.mdSave it as .claude/skills/ultracite/SKILL.md (or your agent's skills folder). This skill also uses 28 other files; get the full folder from GitHub.
name
ultracite
description
Ultracite multi-provider linting/formatting (Biome, ESLint, Oxlint). Use for v6/v7 setup, provider selection, Git hooks, MCP integration, AI hooks, migrations, or encountering configuration, type-aware linting, monorepo errors.
license
MIT
metadata.version
2.0.0
metadata.runtime
Node.js v20+
metadata.package_managers
bun (preferred), npm, pnpm, yarn
metadata.frameworks_supported
React, Next.js, Vue, Svelte, Solid, Angular, Remix, Qwik, Astro
metadata.git_hook_managers
husky, lefthook, lint-staged
metadata.editors_supported
VS Code (Biome extension), Cursor, Claude Code, Zed, Cline, Windsurf
metadata.keywords
ultracite, biome, linting, formatting, code quality, eslint replacement, prettier replacement, typescript strict mode, rust linter, fast formatter, auto-fix…

Ultracite Skill

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
  1. Lightning-Fast Performance: Leverages Biome's Rust implementation for instant linting/formatting
  2. Zero-Config Design: Ships with 200+ sensible defaults optimized for modern TypeScript development
  3. Simplicity & Invisibility: Operates with minimal user interaction
  4. Type Safety: Enforces TypeScript strict mode and comprehensive null/undefined handling
  5. Tool Compatibility: Works alongside other development tools without conflicts
Key Benefits vs Alternatives

vs ESLint + Prettier:

  • 10-100x faster performance (Rust vs JavaScript)
  • Single tool instead of two
  • Zero configuration needed
  • Auto-fixes on save by default
  • Built-in TypeScript strict mode

vs Biome alone:

  • 200+ preconfigured rules
  • Framework-specific presets (React, Next.js, Vue, Svelte)
  • AI editor integration (Cursor, Claude Code, Copilot)
  • Git hook integrations
  • Migration tooling

When to Use This Skill

✅ Ideal Projects

Use Ultracite when:

  • Starting a new JavaScript/TypeScript project
  • Building with React, Next.js, Vue, Svelte, or other modern frameworks
  • Working in monorepos (Turborepo, Nx, Lerna)
  • Teams want consistent formatting without bikeshedding
  • Performance is critical (large codebases, CI/CD optimization)
  • Migrating from ESLint + Prettier to a faster solution
  • Using AI coding assistants (Cursor, Claude Code, Windsurf)
  • TypeScript projects requiring strict type safety
  • Projects with accessibility requirements (ARIA, semantic HTML)
⚠️ Consider Alternatives When

Limited framework support:

  • Need Angular/Ember-specific rules (Biome support is basic)
  • Require advanced CSS linting (Stylelint still recommended)

Specialized requirements:

  • Need specific ESLint plugins not replicated in Biome
  • Require property ordering in CSS (Stylelint feature)
  • Team has extensive custom ESLint configurations

Legacy projects:

  • Large codebases with custom ESLint rules (migration effort required)
  • Projects with extensive Prettier customization

For detailed limitations and workarounds, see: references/limitations-and-workarounds.md

Interactive Components

This skill provides interactive commands and autonomous agents for streamlined workflows:

Commands
  • /ultracite:doctor - Validate project setup, check for v6→v7 preset paths, detect conflicts
  • /ultracite:migrate - Interactive migration wizard (ESLint/Prettier → Ultracite, v6→v7 upgrade)
Agents
  • config-validator - Analyze biome.jsonc for syntax, preset paths, rule conflicts, performance
  • migration-assistant - Guide ESLint/Prettier migrations with rule mapping and gap analysis

See README.md for complete interactive features documentation.

Choosing a Provider

Ultracite v7 supports three linting providers. Choose based on your needs:

  • Speed: Fastest (10-100x faster than ESLint)
  • Setup: Zero-config with 200+ preset rules
  • Best for: New projects, TypeScript-first development, performance-critical builds
  • Limitations: Fewer rules than ESLint, basic CSS/SCSS support
  • Speed: Slower but mature ecosystem
  • Setup: Requires more configuration
  • Best for: Projects with existing ESLint plugins, advanced CSS/SCSS linting needs
  • Limitations: JavaScript-based (slower), requires multiple tools
  • 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:

bash
bun x ultracite init --linter biome   # Default
bun x ultracite init --linter eslint  # ESLint + Prettier + Stylelint
bun x ultracite init --linter oxlint  # Oxlint + Oxfmt

Load provider-specific documentation:

  • Biome: references/provider-biome.md
  • ESLint: references/provider-eslint.md
  • Oxlint: references/provider-oxlint.md

Version Migration Guide

Upgrading from v6 to v7

Breaking Change: Preset paths have changed in v7.

v6 paths (old):

jsonc
{
  "extends": ["ultracite/core", "ultracite/react"]
}

v7 paths (new):

jsonc
{
  "extends": ["ultracite/biome/core", "ultracite/biome/react"]
}

Migration steps:

  1. Update ultracite package: bun update ultracite
  2. Update preset paths in biome.jsonc (add /biome/ segment)
  3. Run npx ultracite doctor to validate configuration
  4. Test linting: npx ultracite check .

New v7 features:

  • Multi-provider support (Biome, ESLint, Oxlint)
  • MCP server integration for AI assistants
  • AI hooks (auto-format after AI edits)
  • Type-aware linting (Oxlint)
  • ultracite doctor diagnostics command

Load full v7 migration guide: references/v7-migration.md

Upgrading from v5 to v6

Key Change: Framework-specific presets introduced.

v5 approach (old):

jsonc
{
  "extends": ["ultracite/core"]
}

v6 approach (new):

jsonc
{
  "extends": ["ultracite/core", "ultracite/react"]  // Framework preset
}

Load full v6 migration guide: references/v6-migration.md

Project Suitability Assessment

When this skill is invoked, scan the project and assess:

  1. Check existing tooling:

    bash
    # Check for ESLint
    ls -la .eslintrc* eslint.config.* package.json | grep eslint
    
    # Check for Prettier
    ls -la .prettierrc* prettier.config.* package.json | grep prettier
    
    # Check for Biome
    ls -la biome.json* package.json | grep biome
  2. Identify framework:

    • Check package.json for react, next, vue, svelte, etc.
    • Recommend appropriate preset
  3. Assess project size:

    • Large projects (1000+ files) benefit most from Rust performance
    • Small projects may not notice speed difference
  4. Check TypeScript config:

    • If tsconfig.json exists, note that Ultracite requires strictNullChecks: true
    • Warn if disabled (will generate many warnings)
  5. 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)
bash
# 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:

  1. Prompt for provider selection (Biome, ESLint, Oxlint) - v7+ only
  2. Install Ultracite and provider dependencies
  3. Prompt for framework selection (React, Next.js, Vue, etc.)
  4. Ask about editor setup (VS Code, Cursor, etc.)
  5. Offer AI agent rules installation (Cursor, Claude Code, Copilot)
  6. Prompt for Git hook integration (Husky, Lefthook, lint-staged)
  7. Offer to migrate from existing tools (ESLint, Prettier)
  8. Create/merge configuration file (biome.jsonc, .eslintrc.js, etc.)
  9. Update .vscode/settings.json for editor integration
  10. Enable strictNullChecks in tsconfig.json (if TypeScript)
Non-Interactive Setup (CI/Automation)
bash
# Auto-detect settings, skip prompts
bunx ultracite init --quiet

# Specify options explicitly (v7+)
bunx ultracite init \
  --linter biome \
  --pm bun \
  --frameworks react,next \
  --editors vscode \
  --agents cursor,claude \
  --integrations husky \
  --migrate eslint,prettier \
  --quiet

Available flags:

  • --linter: Provider selection (biome, eslint, oxlint) - v7+ only
  • --pm: Package manager (bun, npm, pnpm, yarn)
  • --frameworks: react, next, solid, vue, qwik, angular, remix, svelte
  • --editors: vscode, zed
  • --agents: cursor, claude, cline, copilot, windsurf, etc.
  • --integrations: husky, lefthook, lint-staged
  • --migrate: eslint, prettier, biome
  • --quiet: Skip all prompts (auto-enabled when CI=true)
Manual Setup (Advanced)
bash
# 1. Install dependencies
bun add -D ultracite@7 @biomejs/biome@^2.0.0

# 2. Create biome.jsonc
cat > biome.jsonc << 'EOF'
{
  "$schema": "https://biomejs.dev/schemas/2.3.8/schema.json",
  "extends": ["ultracite/core"]
}
EOF

# 3. Create VS Code settings
mkdir -p .vscode
cat > .vscode/settings.json << 'EOF'
{
  "editor.defaultFormatter": "biomejs.biome",
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "quickfix.biome": "explicit",
    "source.organizeImports.biome": "explicit"
  }
}
EOF

# 4. Enable TypeScript strict mode
# Add to tsconfig.json:
{
  "compilerOptions": {
    "strictNullChecks": true
  }
}
Verify Installation
bash
# Check installation
bunx ultracite doctor

# Expected output:
# ✔ Biome is installed
# ✔ Configuration file found: biome.jsonc
# ✔ Editor integration configured
# ✔ TypeScript strict mode enabled

Configuration

Basic Configuration

File structure:

project-root/
├── biome.jsonc              # Main configuration
├── .vscode/settings.json    # VS Code integration
├── tsconfig.json            # TypeScript config (strictNullChecks required)
└── package.json

Minimal biome.jsonc:

jsonc
{
  "$schema": "https://biomejs.dev/schemas/2.3.8/schema.json",
  "extends": ["ultracite/core"],

  // Optional: Add framework preset
  // "extends": ["ultracite/core", "ultracite/react"],

  // Optional: Customize rules
  "linter": {
    "rules": {
      "suspicious": {
        "noConsoleLog": "off"  // Disable specific rule
      }
    }
  },

  // Optional: Exclude files (Biome 2.x: use `includes` with `!` negation)
  "files": {
    "includes": ["**", "!dist", "!build", "!coverage", "!**/*.generated.ts"]
  }
}
Framework Presets
  • ultracite/react: React Hooks, JSX a11y, component best practices
  • ultracite/nextjs: React + Next.js App Router, image optimization, document structure
  • ultracite/vue: Vue 3 Composition API, template syntax, reactivity
  • ultracite/svelte: Svelte 4/5 syntax, reactive declarations

Usage:

jsonc
{
  "extends": ["ultracite/core", "ultracite/react"]
}
Core Preset

The ultracite/core preset includes 200+ rules across 7 categories:

  • Accessibility: ARIA validation, semantic HTML, keyboard navigation
  • Correctness: Type safety, unused code removal, exhaustive dependencies
  • Performance: Code optimization, barrel file warnings
  • Security: Prevents eval(), XSS risks, unsafe patterns
  • Style: Consistent patterns, const preference, import organization
  • Suspicious: Catches loose equality, debugger statements, typos
  • Complexity: Cognitive complexity limits

Formatting defaults: 2 spaces, 80 chars/line, LF endings, single quotes

For detailed framework presets, rule descriptions, and advanced configuration, see: references/configuration-guide.md

Usage

VS Code Setup:

  1. Install Biome extension: biomejs.biome
  2. Verify .vscode/settings.json:
    json
    {
      "editor.defaultFormatter": "biomejs.biome",
      "editor.formatOnSave": true,
      "editor.codeActionsOnSave": {
        "quickfix.biome": "explicit",
        "source.organizeImports.biome": "explicit"
      }
    }
  3. Disable conflicting extensions (ESLint, Prettier)

Features:

  • Auto-format on save
  • Auto-fix on save (removes unused imports, fixes order, applies strict equality)
  • Format on paste
  • Problems panel for unfixable issues
  • Quick fixes via lightbulb indicators
CLI Usage

Check code (lint only):

bash
bunx ultracite check
bunx ultracite check src/
bunx ultracite check --diagnostic-level error  # Only errors

Fix code (auto-fix):

bash
bunx ultracite check --write
bunx ultracite check --write src/

Format code (format only):

bash
bunx ultracite format --write
bunx ultracite format --write src/

Package.json scripts:

json
{
  "scripts": {
    "lint": "ultracite check",
    "lint:fix": "ultracite check --write",
    "format": "ultracite format --write"
  }
}

Git Hook Integrations

Ultracite auto-detects and integrates with:

  • Husky: Node.js-based hook manager
  • Lefthook: Fast Go-based hook manager
  • lint-staged: Runs linters on staged files only

Quick setup:

bash
# Husky
bunx ultracite init --integrations husky

# Lefthook
bunx ultracite init --integrations lefthook

# lint-staged
bunx ultracite init --integrations lint-staged

Example .husky/pre-commit:

bash
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

ultracite check --staged --write

For complete Git hook setup guides (Husky, Lefthook, lint-staged), see: references/git-hooks-setup.md

AI Editor Rules

Ultracite generates AI editor rules that teach AI assistants about your linting/formatting standards.

Supported editors:

  • Cursor (.cursorrules)
  • Claude Code (.windsurfrules)
  • GitHub Copilot (.github/copilot-instructions.md)
  • Continue.dev (.continuerules)
  • Codeium (.codeiumrules)
  • Zed (.zedrules)

Generate rules:

bash
bunx ultracite generate-ai-rules
bunx ultracite generate-ai-rules --all  # All editors
bunx ultracite generate-ai-rules --editor=cursor  # Specific editor

For complete AI editor integration guide and customization, see: references/ai-editor-integration.md

Monorepo Support

Ultracite optimizes for monorepos with:

  • Shared base configurations
  • Package-specific overrides
  • Turborepo/Nx caching integration
  • Performance optimization for large workspaces

Example monorepo structure:

monorepo/
├── biome.json              # Shared base config
├── apps/
│   └── web/
│       └── biome.json      # Next.js-specific overrides
└── packages/
    └── ui/
        └── biome.json      # React-specific overrides

For complete monorepo setup, Turborepo/Nx integration, and performance tips, see: references/monorepo-configuration.md

Show full SKILL.md (855 more words)Show less

Migration from ESLint/Prettier/Biome

Automatic migration:

bash
bunx ultracite migrate eslint
bunx ultracite migrate prettier
bunx ultracite migrate biome

Manual migration:

  1. Analyze current configuration
  2. Map rules to Biome equivalents
  3. Create biome.json with equivalent rules
  4. Update package.json scripts
  5. Remove old dependencies
  6. Test thoroughly

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
  • git-hooks-setup.md: Husky, Lefthook, lint-staged setup
  • ai-editor-integration.md: Cursor, Claude Code, Copilot rules
  • monorepo-configuration.md: Turborepo, Nx, pnpm workspaces
  • migration-guides.md: ESLint, Prettier, Biome migration
  • troubleshooting.md: Common issues and solutions
  • limitations-and-workarounds.md: Known gaps and fixes

Package Versions

Current versions (verified 2026-08-03):

  • ultracite: latest
  • @biomejs/biome: >=2.0.0

Check for updates:

bash
npm view ultracite version
npm view @biomejs/biome version

Update:

bash
bun update ultracite @biomejs/biome

Resources

Official Documentation:

Examples:

Troubleshooting:

Community:

When to Load References

Load reference files on-demand based on user questions or task requirements:

references/provider-biome.md: When user asks about:

  • Biome provider specifics
  • Biome-only configuration
  • Biome performance optimization
  • Biome preset paths (v7: ultracite/biome/*)
  • Biome rule customization

references/provider-eslint.md: When user asks about:

  • ESLint provider setup
  • ESLint + Prettier + Stylelint integration
  • ESLint plugin configuration
  • ESLint migration to Ultracite
  • Advanced CSS/SCSS linting

references/provider-oxlint.md: When user asks about:

  • Oxlint provider setup
  • Type-aware linting features
  • Oxlint performance benefits
  • Oxlint vs Biome comparison
  • TypeScript integration

references/v6-migration.md: When user asks about:

  • Upgrading from v5 to v6
  • Framework preset introduction
  • v6 configuration changes
  • v6 breaking changes

references/v7-migration.md: When user asks about:

  • Upgrading from v6 to v7
  • Preset path migration (ultracite/core → ultracite/biome/core)
  • Multi-provider setup
  • v7 breaking changes
  • ultracite doctor command

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:

bash
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+)

Most common workflow:

  1. Install with bun x ultracite init
  2. Select framework preset (React, Next.js, etc.)
  3. Choose Git hook integration (Husky, Lefthook, lint-staged)
  4. Enable AI editor rules (Cursor, Claude Code, Copilot)
  5. Optionally migrate from ESLint/Prettier
  6. Code with auto-formatting on save
  7. Commit with pre-commit hooks ensuring quality

Remember:

  • Always check for existing Git hook managers before installing
  • Assess project suitability (scan for ESLint/Prettier/frameworks)
  • Recommend or warn based on project characteristics
  • Enable strictNullChecks in TypeScript projects
  • Use framework-specific presets for best results
  • Load reference files on-demand based on user questions

© secondsky, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 28 other files (scripts, references) in plugins/ultracite/skills/ultracite of secondsky/claude-skills.

  • SKILL.md
  • agents/config-validator.md
  • agents/migration-assistant.md
  • commands/doctor.md
  • commands/migrate.md
  • references/ai-editor-integration.md
  • references/ai-hooks.md
  • references/biome.jsonc.monorepo.example
  • references/biome.jsonc.nextjs.example
  • references/biome.jsonc.react.example
  • references/biome.jsonc.svelte.example
  • references/biome.jsonc.vue.example
  • references/configuration-guide.md
  • references/git-hooks-setup.md
  • references/lefthook.yml.example
  • references/limitations-and-workarounds.md
  • references/lint-staged.config.example
  • references/mcp-integration.md
  • … and 11 more

Open the folder on GitHubat commit 8837836

Compare with similar skills

Ultracite next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ultracite compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ultracite this skillsecondsky/claude-skills227—~6.5kAutomated safety check: PassMIT
Ultraciteagustinusnathaniel/nextarter-tailwind1252 repos~1.2kAutomated safety check: PassMIT
Typescript Tooling MigrationArize-ai/phoenix12k—~2.8kAutomated safety check: PassApache-2.0
Typescript Rulessoftspark/ai-toolkit179—~2.7kAutomated safety check: NotesApache-2.0
Code Qualityredis/RedisInsight8.9k—~1.2kAutomated safety check: PassCustom licence
Antfuoyjt/uniapp-vue3-template627—~1.3kAutomated safety check: PassMIT

Similar skills

  • Ultracite

    agustinusnathaniel/nextarter-tailwind

    Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects.

    125 GitHub starsUsed in 2 repos~1.2k tokens
    DevelopmentAuto-check passed
  • Migrate or upgrade TypeScript tooling in the Phoenix monorepo.

    12k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Typescript Rules

    softspark/ai-toolkit

    TypeScript/JavaScript coding rules: style, patterns, security, testing.

    179 GitHub stars~2.7k tokensUpdated yesterday
    Testing & QAAuto-check: notes
  • Code Quality

    redis/RedisInsight

    Official

    Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…

    8.9k GitHub stars~1.2k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Antfu

    oyjt/uniapp-vue3-template

    Anthony Fu's {Opinionated} preferences and best practices for web development

    627 GitHub stars~1.3k tokensUpdated 4 mo ago
    DevelopmentAuto-check passed
  • React Render Types Setup

    HorusGoul/eslint-plugin-react-render-types

    Install and configure eslint-plugin-react-render-types in a TypeScript React project.

    111 GitHub stars~1.8k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed

More from secondsky/claude-skills

All 169 skills in this repo
  • Tanstack AI

    secondsky/claude-skills

    TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama.

    227 GitHub starsUsed in 1 repo~3.6k tokens
    Auto-check: notes
  • Auto Animate

    secondsky/claude-skills

    AutoAnimate (@formkit/auto-animate) zero-config animations for React.

    227 GitHub stars~2.9k tokensUpdated 10 days ago
    Auto-check passed
  • Base UI React

    secondsky/claude-skills

    MUI Base UI unstyled React components with Floating UI. An agent skill from secondsky/claude-skills.

    227 GitHub stars~1.9k tokensUpdated 10 days ago
    Auto-check passed
  • Cloudflare Images

    secondsky/claude-skills

    This skill should be used when the user asks to "upload images to Cloudflare", "implement direct creator upload", "configure image transformations", "optimize WebP/AVIF", "create image variants"…

    227 GitHub stars~3.6k tokensUpdated 10 days ago
    Auto-check: notes
  • Cloudflare Nextjs

    secondsky/claude-skills

    Deploy Next.js to Cloudflare Workers via the OpenNext adapter (@opennextjs/cloudflare).

    227 GitHub stars~5.3k tokensUpdated 10 days ago
    Auto-check: notes
  • Cloudflare Sandbox

    secondsky/claude-skills

    Cloudflare Sandboxes SDK for secure code execution in Linux containers at edge.

    227 GitHub stars~4.5k tokensUpdated 10 days ago
    Auto-check passed

Categories

Questions about Ultracite

What does Ultracite do?

Ultracite multi-provider linting/formatting (Biome, ESLint, Oxlint). Ultracite is an agent skill from secondsky/claude-skills. Ultracite multi-provider linting/formatting (Biome, ESLint, Oxlint).

When should I use Ultracite?

Ultracite fits situations like: provider selection; MCP integration; encountering configuration; type-aware linting.

How do I install Ultracite in Claude Code?

Run `npx skills add secondsky/claude-skills --skill ultracite -a claude-code`. Or copy the skill folder (plugins/ultracite/skills/ultracite in secondsky/claude-skills) into .claude/skills/ultracite in your project. Claude Code loads it when a task matches its description.

How do I install Ultracite in Codex?

Run `npx skills add secondsky/claude-skills --skill ultracite -a codex`. Or copy the skill folder (plugins/ultracite/skills/ultracite in secondsky/claude-skills) into .agents/skills/ultracite in your project. Codex loads it when a task matches its description.

Can I use Ultracite in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add secondsky/claude-skills --skill ultracite -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ultracite, .gemini/skills/ultracite, .github/skills/ultracite and .opencode/skills/ultracite in your project.

What does Ultracite need to run?

Going by SKILL.md and its folder, Ultracite needs the command-line tools its instructions call (bunx, bun, npx, npm, pnpm and yarn). Our summary lists: Node.js.

Does Ultracite access the network?

SKILL.md names 4 domains. In commands or code: biomejs.dev; the agent is likely to contact it when it follows the instructions. As links in the text: ultracite.ai, github.com and discord.gg. This is read from the text; nothing was executed.

Is Ultracite safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Ultracite use?

Ultracite is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ultracite use?

About 6.5k tokens (SKILL.md is roughly 26k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 36k tokens, read only when the agent opens those files.

What are the alternatives to Ultracite?

Skills that share tags, products or a category with Ultracite: Ultracite (agustinusnathaniel/nextarter-tailwind, 125 stars), Typescript Tooling Migration (Arize-ai/phoenix, 12k stars), Typescript Rules (softspark/ai-toolkit, 179 stars) and Code Quality (redis/RedisInsight, 8.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ultracite?

secondsky (a GitHub user) maintains it in secondsky/claude-skills, which has 227 GitHub stars. The repository holds 169 skills in this directory. The repository was last updated on September 28, 2026.

Source: secondsky/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.