xo
JavaScript/TypeScript linter (ESLint wrapper) with great defaults
xo@5.0.1 was published on 2026-09-18. Its manifest declares 19 runtime dependencies and 0 peer requirements. Type declarations are bundled according to the package metadata. The declared Node.js requirement is >=22.
All xo versions · Permanent reference to 5.0.1
Package specifications
| Version | 5.0.1 |
|---|---|
| License declaration | MIT |
| Published | 2026-09-18T12:09:51.864Z |
| Node.js requirement | >=22 |
| Type declarations | Bundled declarations |
| Runtime dependency count | 19 |
| Peer requirement count | 0 |
| Optional dependency count | 0 |
| Minified size | Measurement not available yet |
| Minified + gzip | Measurement not available yet |
| Unpacked distribution size | 93.94 KiB |
| Published file count | 27 |
| Package type | module |
| ES module entry | Not declared |
| Default entry | Not declared |
| Side effects declaration | false |
| Direct advisories | 0 |
| Resolved graph dependencies | 396 |
| Repository stars | 7995 |
| Repository forks | 309 |
Install xo 5.0.1
npm install xo@5.0.1 pnpm add xo@5.0.1 yarn add xo@5.0.1
Runtime dependencies
- jiti ^2.7.0
- meow ^14.1.0
- arrify ^3.0.0
- eslint ^10.8.0
- globby ^16.2.2
- prettier ^3.9.6
- get-stdin ^10.0.0
- type-fest ^5.8.0
- micromatch ^4.0.8
- typescript ^6.0.3
- cosmiconfig ^10.0.0
- open-editor ^6.0.0
- path-exists ^5.0.0
- get-tsconfig ^4.14.1
- define-lazy-prop ^3.0.0
- eslint-config-xo ^3.0.2
- find-cache-directory ^6.0.0
- @sindresorhus/tsconfig ^8.1.0
- eslint-formatter-pretty ^7.1.0
Peer requirements
- None declared
Optional dependencies
- None declared
Resolved dependency graph
This deps.dev graph describes a generic 64-bit Linux environment, not your application lockfile.
- @sindresorhus/tsconfig@8.1.0 — direct
- arrify@3.0.0 — direct
- cosmiconfig@10.0.1 — direct
- define-lazy-prop@3.0.0 — direct
- eslint@10.13.0 — direct
- eslint-config-xo@3.0.2 — direct
- eslint-formatter-pretty@7.1.0 — direct
- find-cache-directory@6.0.0 — direct
- get-stdin@10.0.0 — direct
- get-tsconfig@4.14.3 — direct
- globby@16.2.4 — direct
- jiti@2.7.0 — direct
- meow@14.1.0 — direct
- micromatch@4.0.8 — direct
- open-editor@6.0.0 — direct
- path-exists@5.0.0 — direct
- prettier@3.9.10 — direct
- type-fest@5.10.0 — direct
- typescript@6.0.3 — direct
- env-paths@2.2.1 — indirect
- js-yaml@5.5.0 — indirect
- @eslint-community/eslint-utils@4.10.1 — indirect
- @eslint-community/regexpp@4.12.2 — indirect
- @eslint/config-array@0.23.5 — indirect
- @eslint/config-helpers@0.7.0 — indirect
- @eslint/core@1.2.1 — indirect
- @eslint/plugin-kit@0.7.3 — indirect
- @humanfs/node@0.16.8 — indirect
- @humanwhocodes/module-importer@1.0.1 — indirect
- @humanwhocodes/retry@0.4.3 — indirect
- @types/estree@1.0.9 — indirect
- ajv@6.15.0 — indirect
- cross-spawn@7.0.6 — indirect
- debug@4.4.3 — indirect
- escape-string-regexp@4.0.0 — indirect
- eslint-scope@9.1.2 — indirect
- eslint-visitor-keys@5.0.1 — indirect
- espree@11.2.0 — indirect
- esquery@1.7.0 — indirect
- esutils@2.0.3 — indirect
- fast-deep-equal@3.1.3 — indirect
- file-entry-cache@11.1.5 — indirect
- find-up@5.0.0 — indirect
- glob-parent@6.0.2 — indirect
- ignore@5.3.2 — indirect
- imurmurhash@0.1.4 — indirect
- is-glob@4.0.3 — indirect
- json-stable-stringify-without-jsonify@1.0.1 — indirect
- minimatch@10.2.6 — indirect
- natural-compare@1.4.0 — indirect
- optionator@0.9.4 — indirect
- @eslint-community/eslint-plugin-eslint-comments@4.8.1 — indirect
- @eslint/compat@2.1.1 — indirect
- @eslint/css@2.0.1 — indirect
- @eslint/json@2.1.1 — indirect
- @eslint/markdown@8.0.3 — indirect
- @html-eslint/eslint-plugin@0.66.1 — indirect
- @stylistic/eslint-plugin@5.10.0 — indirect
- confusing-browser-globals@1.0.11 — indirect
- eslint-config-prettier@10.1.8 — indirect
- eslint-import-resolver-typescript@4.4.5 — indirect
- eslint-node-test@0.4.0 — indirect
- eslint-package-json@0.3.0 — indirect
- eslint-plugin-ava@17.0.1 — indirect
- eslint-plugin-import-x@4.17.1 — indirect
- eslint-plugin-jsdoc@64.5.4 — indirect
- eslint-plugin-n@18.5.0 — indirect
- eslint-plugin-prettier@5.5.7 — indirect
- eslint-plugin-regexp@3.3.2 — indirect
- eslint-plugin-unicorn@75.0.0 — indirect
- globals@17.13.0 — indirect
- typescript-eslint@8.72.1 — indirect
- @types/eslint@9.6.1 — indirect
- ansi-escapes@7.3.0 — indirect
- chalk@5.6.2 — indirect
- eslint-rule-docs@1.1.235 — indirect
- log-symbols@7.0.1 — indirect
- plur@5.1.0 — indirect
- string-width@8.3.0 — indirect
- supports-hyperlinks@4.6.0 — indirect
- common-path-prefix@3.0.0 — indirect
- pkg-dir@8.0.0 — indirect
- resolve-pkg-maps@1.0.0 — indirect
- @sindresorhus/merge-streams@4.0.0 — indirect
- fast-glob@3.3.3 — indirect
- ignore@7.0.14 — indirect
- is-path-inside@4.0.0 — indirect
- slash@5.1.0 — indirect
- unicorn-magic@0.4.1 — indirect
- braces@3.0.3 — indirect
- picomatch@2.3.2 — indirect
- env-editor@1.3.0 — indirect
- execa@9.6.1 — indirect
- line-column-path@4.0.0 — indirect
- open@11.0.4 — indirect
- tagged-tag@1.0.0 — indirect
- argparse@3.0.4 — indirect
- eslint-visitor-keys@3.4.3 — indirect
- @eslint/object-schema@3.0.5 — indirect
- @types/json-schema@7.0.15 — indirect
- levn@0.4.1 — indirect
- @humanfs/core@0.19.2 — indirect
- @humanfs/types@0.15.0 — indirect
- fast-json-stable-stringify@2.1.0 — indirect
- json-schema-traverse@0.4.1 — indirect
- uri-js@4.4.1 — indirect
- path-key@3.1.1 — indirect
- shebang-command@2.0.0 — indirect
- which@2.0.2 — indirect
- ms@2.1.3 — indirect
- @types/esrecurse@4.3.1 — indirect
- esrecurse@4.3.0 — indirect
- estraverse@5.3.0 — indirect
- acorn@8.19.0 — indirect
- acorn-jsx@5.3.2 — indirect
- flat-cache@6.1.23 — indirect
- locate-path@6.0.0 — indirect
- path-exists@4.0.0 — indirect
- is-extglob@2.1.1 — indirect
- brace-expansion@5.0.12 — indirect
- deep-is@0.1.4 — indirect
- fast-levenshtein@2.0.6 — indirect
- prelude-ls@1.2.1 — indirect
- type-check@0.4.0 — indirect
- word-wrap@1.2.5 — indirect
- ignore@7.0.14 — indirect
- @eslint/css-tree@4.1.2 — indirect
- @humanwhocodes/momoa@3.3.13 — indirect
- github-slugger@2.0.0 — indirect
- mdast-util-from-markdown@2.1.0 — indirect
- mdast-util-frontmatter@2.0.1 — indirect
- mdast-util-gfm@3.1.0 — indirect
- mdast-util-math@3.0.0 — indirect
- micromark-extension-frontmatter@2.0.0 — indirect
- micromark-extension-gfm@3.0.0 — indirect
- micromark-extension-math@3.1.0 — indirect
- micromark-util-normalize-identifier@2.0.1 — indirect
- @eslint/plugin-kit@0.4.1 — indirect
- @html-eslint/core@0.66.1 — indirect
- @html-eslint/parser@0.66.1 — indirect
- @html-eslint/template-parser@0.66.1 — indirect
- @html-eslint/template-syntax-parser@0.66.1 — indirect
- @html-eslint/types@0.66.1 — indirect
- @rviscomi/capo.js@2.3.1 — indirect
- html-standard@0.0.13 — indirect
- @typescript-eslint/types@8.72.1 — indirect
- eslint-visitor-keys@4.2.1 — indirect
- espree@10.4.0 — indirect
- picomatch@4.0.7 — indirect
- eslint-import-context@0.1.9 — indirect
- is-bun-module@2.0.0 — indirect
- stable-hash-x@0.2.0 — indirect
- tinyglobby@0.2.17 — indirect
- unrs-resolver@1.12.2 — indirect
- quote-js-string@0.1.0 — indirect
- detect-indent@7.0.2 — indirect
- hosted-git-info@10.1.1 — indirect
- npm-package-arg@14.0.0 — indirect
- semver@7.8.5 — indirect
- spdx-expression-parse@4.0.0 — indirect
- validate-npm-package-name@7.0.2 — indirect
- espurify@3.2.0 — indirect
- micro-spelling-correcter@1.1.1 — indirect
- resolve-from@5.0.0 — indirect
- comment-parser@1.4.9 — indirect
- @es-joy/jsdoccomment@0.98.0 — indirect
- @es-joy/resolve.exports@1.2.0 — indirect
- @typescript-eslint/utils@8.72.1 — indirect
- are-docs-informative@0.1.1 — indirect
- escape-string-regexp@5.0.0 — indirect
- html-entities@2.6.0 — indirect
- object-deep-merge@2.0.1 — indirect
- parse-imports-exports@0.2.4 — indirect
- spdx-expression-parse@5.0.0 — indirect
- to-valid-identifier@1.0.0 — indirect
- enhanced-resolve@5.26.0 — indirect
- eslint-plugin-es-x@7.8.0 — indirect
- globals@15.15.0 — indirect
- globrex@0.1.2 — indirect
- prettier-linter-helpers@1.0.1 — indirect
- synckit@0.12.3 — indirect
- jsdoc-type-pratt-parser@9.2.3 — indirect
- refa@0.12.1 — indirect
- regexp-ast-analysis@0.7.1 — indirect
- scslre@0.3.0 — indirect
- browserslist@4.29.5 — indirect
- change-case@5.4.4 — indirect
- ci-info@4.4.0 — indirect
- core-js-compat@3.51.0 — indirect
- entities@8.1.0 — indirect
- find-up-simple@1.0.1 — indirect
- identifier-regex@1.1.0 — indirect
- indent-string@5.0.0 — indirect
- is-builtin-module@5.0.0 — indirect
- pluralize@8.0.0 — indirect
- regjsparser@0.13.4 — indirect
- reserved-identifiers@1.2.0 — indirect
- strip-indent@4.1.1 — indirect
- yaml@2.9.1 — indirect
- @typescript-eslint/eslint-plugin@8.72.1 — indirect
- @typescript-eslint/parser@8.72.1 — indirect
- @typescript-eslint/typescript-estree@8.72.1 — indirect
- environment@1.1.0 — indirect
- is-unicode-supported@2.1.0 — indirect
- yoctocolors@2.2.0 — indirect
- irregular-plurals@3.5.0 — indirect
- get-east-asian-width@1.7.0 — indirect
- strip-ansi@7.2.0 — indirect
- has-flag@5.0.1 — indirect
- supports-color@10.2.2 — indirect
- @nodelib/fs.stat@2.0.5 — indirect
- @nodelib/fs.walk@1.2.8 — indirect
- glob-parent@5.1.2 — indirect
- merge2@1.4.1 — indirect
- fill-range@7.1.1 — indirect
- figures@6.1.0 — indirect
- get-stream@9.0.1 — indirect
- human-signals@8.0.1 — indirect
- is-plain-obj@4.1.0 — indirect
- is-stream@4.0.1 — indirect
- npm-run-path@6.0.0 — indirect
- pretty-ms@9.3.1 — indirect
- signal-exit@4.1.0 — indirect
- strip-final-newline@4.0.0 — indirect
- default-browser@5.5.1 — indirect
- is-in-ssh@1.0.0 — indirect
- is-inside-container@1.0.0 — indirect
- powershell-utils@0.2.1 — indirect
- wsl-utils@1.0.1 — indirect
- punycode@2.3.1 — indirect
- shebang-regex@3.0.0 — indirect
- isexe@2.0.0 — indirect
- cacheable@2.5.0 — indirect
- flatted@3.4.4 — indirect
- hookified@1.15.1 — indirect
- p-locate@5.0.0 — indirect
- balanced-match@4.0.4 — indirect
- mdn-data@2.37.2 — indirect
- source-map-js@1.2.2 — indirect
- @types/mdast@4.0.4 — indirect
- @types/unist@3.0.3 — indirect
- decode-named-character-reference@1.3.0 — indirect
- devlop@1.1.0 — indirect
- mdast-util-to-string@4.0.0 — indirect
- micromark@4.0.3 — indirect
- micromark-util-decode-numeric-character-reference@2.0.2 — indirect
- micromark-util-decode-string@2.0.1 — indirect
- micromark-util-symbol@2.0.1 — indirect
- micromark-util-types@2.0.3 — indirect
- unist-util-stringify-position@4.0.0 — indirect
- escape-string-regexp@5.0.0 — indirect
- mdast-util-to-markdown@2.2.1 — indirect
- mdast-util-gfm-autolink-literal@2.0.1 — indirect
- mdast-util-gfm-footnote@2.1.0 — indirect
- mdast-util-gfm-strikethrough@2.0.1 — indirect
- mdast-util-gfm-table@2.0.0 — indirect
- mdast-util-gfm-task-list-item@2.0.0 — indirect
- @types/hast@3.0.5 — indirect
- longest-streak@3.1.0 — indirect
- unist-util-remove-position@5.0.0 — indirect
- fault@2.0.1 — indirect
- micromark-util-character@2.1.1 — indirect
- micromark-extension-gfm-autolink-literal@2.1.0 — indirect
- micromark-extension-gfm-footnote@2.1.0 — indirect
- micromark-extension-gfm-strikethrough@2.1.0 — indirect
- micromark-extension-gfm-table@2.1.2 — indirect
- micromark-extension-gfm-tagfilter@2.0.0 — indirect
- micromark-extension-gfm-task-list-item@2.1.0 — indirect
- micromark-util-combine-extensions@2.0.1 — indirect
- @types/katex@0.16.8 — indirect
- katex@0.16.47 — indirect
- micromark-factory-space@2.1.0 — indirect
- @eslint/core@0.17.0 — indirect
- css-tree@3.2.1 — indirect
- es-html-parser@0.3.2 — indirect
- @types/css-tree@2.3.11 — indirect
- vscode-css-languageservice@6.3.10 — indirect
- vscode-languageserver-textdocument@1.0.16 — indirect
- fdir@6.5.0 — indirect
- @unrs/resolver-binding-android-arm-eabi@1.12.2 — indirect
- @unrs/resolver-binding-android-arm64@1.12.2 — indirect
- @unrs/resolver-binding-darwin-arm64@1.12.2 — indirect
- @unrs/resolver-binding-darwin-x64@1.12.2 — indirect
- @unrs/resolver-binding-freebsd-x64@1.12.2 — indirect
- @unrs/resolver-binding-linux-arm-gnueabihf@1.12.2 — indirect
- @unrs/resolver-binding-linux-arm-musleabihf@1.12.2 — indirect
- @unrs/resolver-binding-linux-arm64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-arm64-musl@1.12.2 — indirect
- @unrs/resolver-binding-linux-loong64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-loong64-musl@1.12.2 — indirect
- @unrs/resolver-binding-linux-ppc64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-riscv64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-riscv64-musl@1.12.2 — indirect
- @unrs/resolver-binding-linux-s390x-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-x64-gnu@1.12.2 — indirect
- @unrs/resolver-binding-linux-x64-musl@1.12.2 — indirect
- @unrs/resolver-binding-openharmony-arm64@1.12.2 — indirect
- @unrs/resolver-binding-wasm32-wasi@1.12.2 — indirect
- @unrs/resolver-binding-win32-arm64-msvc@1.12.2 — indirect
- @unrs/resolver-binding-win32-ia32-msvc@1.12.2 — indirect
- @unrs/resolver-binding-win32-x64-msvc@1.12.2 — indirect
- napi-postinstall@0.3.7 — indirect
- lru-cache@11.5.3 — indirect
- proc-log@7.0.0 — indirect
- validate-npm-package-name@8.0.0 — indirect
- spdx-exceptions@2.5.0 — indirect
- spdx-license-ids@3.0.24 — indirect
- @typescript-eslint/scope-manager@8.72.1 — indirect
- parse-statements@1.0.11 — indirect
- @sindresorhus/base62@1.0.0 — indirect
- graceful-fs@4.2.11 — indirect
- tapable@2.3.3 — indirect
- eslint-compat-utils@0.5.1 — indirect
- fast-diff@1.3.0 — indirect
- @dual-bundle/import-meta-resolve@4.2.1 — indirect
- @pkgr/core@0.3.6 — indirect
- baseline-browser-mapping@2.11.34 — indirect
- caniuse-lite@1.0.30001819 — indirect
- electron-to-chromium@1.5.467 — indirect
- node-releases@2.0.60 — indirect
- update-browserslist-db@1.3.4 — indirect
- builtin-modules@5.4.0 — indirect
- jsesc@3.1.0 — indirect
- @typescript-eslint/type-utils@8.72.1 — indirect
- @typescript-eslint/visitor-keys@8.72.1 — indirect
- ignore@7.0.14 — indirect
- ts-api-utils@2.5.0 — indirect
- @typescript-eslint/project-service@8.72.1 — indirect
- @typescript-eslint/tsconfig-utils@8.72.1 — indirect
- ansi-regex@6.4.0 — indirect
- @nodelib/fs.scandir@2.1.5 — indirect
- fastq@1.20.3 — indirect
- to-regex-range@5.0.1 — indirect
- @sec-ant/readable-stream@0.4.1 — indirect
- path-key@4.0.0 — indirect
- unicorn-magic@0.3.0 — indirect
- parse-ms@4.0.0 — indirect
- bundle-name@4.1.1 — indirect
- default-browser-id@5.0.1 — indirect
- is-docker@3.0.0 — indirect
- is-wsl@3.1.1 — indirect
- @cacheable/memory@2.2.0 — indirect
- @cacheable/utils@2.5.0 — indirect
- keyv@5.6.0 — indirect
- qified@0.10.1 — indirect
- p-limit@3.1.0 — indirect
- character-entities@2.0.2 — indirect
- dequal@2.0.3 — indirect
- @types/debug@4.1.13 — indirect
- micromark-core-commonmark@2.0.4 — indirect
- micromark-util-chunked@2.0.1 — indirect
- micromark-util-edit-map@1.0.0 — indirect
- micromark-util-encode@2.0.1 — indirect
- micromark-util-resolve-all@2.0.1 — indirect
- micromark-util-sanitize-uri@2.0.1 — indirect
- micromark-util-subtokenize@2.1.0 — indirect
- mdast-util-phrasing@4.1.0 — indirect
- micromark-util-classify-character@2.0.1 — indirect
- micromark-util-html-tag-name@2.0.1 — indirect
- unist-util-visit@5.2.0 — indirect
- zwitch@2.0.4 — indirect
- ccount@2.0.1 — indirect
- mdast-util-find-and-replace@3.0.4 — indirect
- markdown-table@3.0.4 — indirect
- format@0.2.2 — indirect
- commander@8.3.0 — indirect
- mdn-data@2.27.1 — indirect
- @vscode/l10n@0.0.18 — indirect
- vscode-languageserver-types@3.17.5 — indirect
- vscode-uri@3.2.0 — indirect
- @emnapi/core@1.10.0 — indirect
- @emnapi/runtime@1.10.0 — indirect
- @napi-rs/wasm-runtime@1.2.6 — indirect
- escalade@3.2.0 — indirect
- picocolors@1.1.1 — indirect
- run-parallel@1.2.0 — indirect
- reusify@1.1.0 — indirect
- is-number@7.0.0 — indirect
- run-applescript@7.1.0 — indirect
- @keyv/bigmap@1.3.1 — indirect
- hashery@1.5.1 — indirect
- @keyv/serialize@1.1.1 — indirect
- hookified@2.2.0 — indirect
- yocto-queue@0.1.0 — indirect
- @types/ms@2.1.0 — indirect
- micromark-factory-destination@2.0.1 — indirect
- micromark-factory-label@2.0.1 — indirect
- micromark-factory-title@2.0.1 — indirect
- micromark-factory-whitespace@2.0.1 — indirect
- unist-util-is@6.0.1 — indirect
- unist-util-visit-parents@6.1.0 — indirect
- escape-string-regexp@5.0.0 — indirect
- @emnapi/wasi-threads@1.2.1 — indirect
- tslib@2.8.1 — indirect
- @tybys/wasm-util@0.10.4 — indirect
- queue-microtask@1.2.3 — indirect
How to interpret the specifications
Bundlephobia measurements use its standard package build and may exclude peer dependencies. Unpacked npm distribution size includes shipped files and is a different measurement. Module declarations do not prove tree-shaking or runtime compatibility.
Advisories apply to this package version directly; transitive dependencies need separate inspection. Repository signals describe the whole repository and are current observations, including on historical-version pages.
OpenSSF repository checks
Provider assessment: 2026-08-24T00:00:00Z. These are repository checks, not a jsL maintenance score.
| Code-Review | 0/10 — Found 1/30 approved changesets -- score normalized to 0 |
|---|---|
| Dangerous-Workflow | 10/10 — no dangerous workflow patterns detected |
| Binary-Artifacts | 10/10 — no binaries found in the repo |
| Maintained | 10/10 — 16 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10 |
| Pinned-Dependencies | 0/10 — dependency not pinned by hash detected -- score normalized to 0 |
| Token-Permissions | 0/10 — detected GitHub workflow tokens with excessive permissions |
| CII-Best-Practices | 0/10 — no effort to earn an OpenSSF best practices badge detected |
| Fuzzing | 0/10 — project is not fuzzed |
| License | 10/10 — license file detected |
| Branch-Protection | 3/10 — branch protection is not maximal on development and all release branches |
| Security-Policy | 0/10 — security policy file not detected |
| SAST | 0/10 — SAST tool is not run on all commits -- score normalized to 0 |
Evidence and freshness
- https://registry.npmjs.org/xo/5.0.1 — retrieved 2026-10-30T04:42:48.854Z
- https://api.deps.dev/v3/systems/npm/packages/xo/versions/5.0.1:dependencies — retrieved 2026-10-30T04:42:49.386Z
- https://api.deps.dev/v3/projects/github.com%2Fxojs%2Fxo — retrieved 2026-10-30T04:42:49.512Z
- https://api.deps.dev/v3/systems/npm/packages/xo/versions/5.0.1 — retrieved 2026-10-30T04:42:49.527Z