Which file formats and link types can lychee check?
Updated
lychee natively supports Markdown and HTML files, and it checks two kinds of targets: hyperlinks and email addresses. That combination makes it a fit for documentation sites, static sites, and codebases where links live inside .md or .html content. If your links are stored in some other format, or if you need to validate something beyond links and mail addresses, lychee's native coverage may not match your project without extra handling.
What lychee checks
The two target types are the core of its scope:
- Hyperlinks — URLs embedded in your content, which is the primary use case ("finds broken hyperlinks").
- Mail addresses — email addresses are checked as well, so
mailto:links and plain addresses in your files are in scope.
The purpose is broken-link detection: you point lychee at your files, and it reports what no longer resolves.
Which file formats are covered
| Format | Support |
|---|---|
| Markdown | Native |
| HTML | Native |
"Native" matters here: lychee is described as supporting Markdown and HTML files directly, which is why the docs position it as "ideal for documentation and websites." You don't need a conversion step for those two formats.
Where this fits — and where it doesn't
The stated sweet spots are docs, sites, and codebases. Concretely, that means:
- A Markdown-based documentation repo where internal and external links drift over time.
- An HTML site where pages link to each other and to outside resources.
- A codebase whose docs or generated HTML contain links worth validating.
The scope is defined by file format plus target type. So before adopting lychee, check two things against your own project:
- Are your links in Markdown or HTML? If yes, you're in the native path.
- Are you checking links and email addresses? If you need validation of other content types, that's outside what's described here.
Practical notes for judging fit
- Large projects: lychee is built with Rust and designed for speed, so scale isn't the limiting factor — format coverage is.
- CI/CD: structured JSON output is available, which is the intended way to wire results into a pipeline. If you plan to gate merges on link failures, this is the relevant capability.
- Installation: it ships as a single static binary, so getting it running in a build environment is straightforward.
If your content is Markdown or HTML and your concern is broken hyperlinks and mail addresses, lychee's coverage matches the task. If your links live in a format outside those two, verify support before committing to it.