Repolode
lycheeverse

lycheeverse/lychee

A fast, async link checker written in Rust that finds broken URLs and mail addresses in Markdown, HTML, and websites.

Stars
4,103
Forks
245
Open issues
75
Last commit
5 days ago

What is it?

lychee is a command-line link checker that scans local files and websites for broken hyperlinks and, optionally, email addresses. It supports Markdown, HTML, CSS, XML and plain text, and it falls back to best-effort URL extraction for other formats. Pre-processing commands can convert formats such as PDF or DOCX before checking.

Checks run asynchronously and as a stream, with configurable concurrency, per-host throttling, retries with backoff, and request caching on disk. Users can exclude links by regex or a .lycheeignore file, filter status codes, pass custom headers or a GitHub token, and choose output formats including JSON, JUnit and Markdown.

Besides the CLI, lychee is available as a Rust library (lychee-lib) and as a GitHub Action, and it is packaged for many operating systems and distributed as a Docker image.

Key features

  • 01Checks links in Markdown, HTML, CSS, XML and plain text files, plus local files and websites.
  • 02Optionally checks email addresses and URL anchor or text fragments.
  • 03Runs asynchronously with configurable concurrency, per-host throttling and retries.
  • 04Caches results on disk to speed up repeated runs.
  • 05Excludes links with regex patterns or a .lycheeignore file.
  • 06Outputs reports as compact, detailed, JSON, JUnit or Markdown.

Use cases

  • Catching broken links in documentation repositories before merging changes.
  • Running link checks in CI pipelines using the GitHub Action or Docker image.
  • Auditing an existing website for dead external links.
  • Embedding link checking in a Rust application via the lychee-lib crate.

Quick start

  1. 1

    Install lychee with Homebrew (macOS)

    brew install lychee
  2. 2

    Install lychee with Cargo (any platform with Rust)

    cargo install lychee
  3. 3

    Pull the official Docker image

    docker pull lycheeverse/lychee

In collections

Topics

#link-checker#rust#broken-links#markdown#html#cli#ci#check#link#link-checkers

FAQ

What is lychee?
A fast, async link checker written in Rust that finds broken URLs and mail addresses in Markdown, HTML, and websites. lychee is a command-line link checker that scans local files and websites for broken hyperlinks and, optionally, email addresses. It supports Markdown, HTML, CSS, XML and plain text, and it falls back to best-effort URL extraction for other formats. Pre-processing commands can convert formats such as PDF or DOCX before checking.
Is lychee free to use? What license does it have?
lychee is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is lychee still maintained?
Actively maintained. The last commit to lychee was on Nov 2, 2026.
What can I use lychee for?
Catching broken links in documentation repositories before merging changes. Running link checks in CI pipelines using the GitHub Action or Docker image. Auditing an existing website for dead external links. Embedding link checking in a Rust application via the lychee-lib crate.
How do I install lychee?
Install lychee with Homebrew (macOS): brew install lychee Install lychee with Cargo (any platform with Rust): cargo install lychee Pull the official Docker image: docker pull lycheeverse/lychee
Where can I get lychee?
The source code and installation instructions are on GitHub: https://github.com/lycheeverse/lychee

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects