xojs/xo

❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults

View on GitHub ↗Jump to charts ↓Open shareable report →

xojs/xo has 7.5k+ stars and 300+ forks on GitHub, is written in TypeScript, and was last pushed on Sep 18, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 17 minutes ago
Type:Library / SDKCategory(s):Code Quality & Static AnalysisDeveloper Tools
Added to GitGenius on September 8th, 2026
Created on August 1st, 2015
Open Issues & Pull Requests: 2 (+0)
GitHub issues: Enabled
Number of forks: 309
Total Stargazers: 7,992 (+0)
Total Subscribers: 54 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 20.4 hours
Mean response time: 134.7 days
90th percentile: 255.8 days
Tracked items: 144

Maintainer activity

2 people did triage or write work on this repository in the last 12 months.

Counts unlabeled, assigned, unassigned, milestoned, demilestoned, locked, unlocked over the last 12 months. These are issue and pull request events that require triage or write permission. Commits and code review are not counted. labeled and renamed are excluded because GitHub issue forms record the issue author as the actor. Figures from October 11, 2026. This count is not comparable across projects: each project's automation decides which of these events a person emits.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 571 days
Stale 30+ days: 2
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (45)
  • help wanted (43)
  • bug (26)
  • :gift: Rewarded on Issuehunt (6)
  • question (4)
  • documentation (3)
  • :dollar: Funded on Issuehunt (1)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

XO is a JavaScript and TypeScript linter that wraps ESLint with opinionated defaults.

The tool solves the problem of linting configuration overhead by providing a zero-config setup that enforces strict, readable code without requiring developers to manage ESLint configuration files. It bundles ESLint with a curated set of plugins including unicorn, import-x, ava, and n, applying sensible defaults for code style decisions like tab indentation, semicolons, single quotes, and trailing commas. The approach eliminates style discussions in pull requests by making these choices upfront while remaining configurable when needed.

XO suits teams and projects that want consistent code quality without configuration burden, particularly those already using or willing to adopt ES modules. It works well for JavaScript and TypeScript projects of any size. The tool includes built-in support for TypeScript, framework-specific configurations for React, Vue, Svelte, and Astro, and optional Prettier integration. It automatically discovers and lints all JavaScript and TypeScript files except commonly ignored paths, caches results between runs for performance, and can fix many issues automatically or open files with errors directly in an editor. The README does not compare XO to other linters.

The project maintains active development with regular updates to its ESLint configuration and plugin integrations. It provides a simple initialization command to add XO to existing projects and supports direct usage as an ESLint configuration for those preferring to run ESLint directly. The tool requires projects to use ES modules, which is a deliberate constraint rather than a limitation.