Welcome to lychee!
lychee is a fast, async, stream-based link checker written in Rust. 🦀✨ It finds broken URLs and mail addresses inside Markdown, HTML, reStructuredText, websites, and more!
Let’s take a look at some usage examples.
Check All Links In Current Directory
The following command recursively checks all links in all supported files inside the current directory.
This traverses all subdirectories and checks the links in all files which lychee
supports, such as .md
, .html
, and more.
Check All Links On A Website
This command checks all links on the website https://example.com
.
It is not recursive and only checks the links on the given page.
Recursion is currently not supported. You can however download the
sitemap of a website and use that as input.
Check Only Specific Files
This command checks only the links in the given files. It also demonstrates how to check multiple inputs, such as files and URLs in a single command.
Check Links In Directories, But Block All Network Requests
This will only check the links in the files in the given directory and not make any network requests. It is helpful for a quick local “linting” of files.
Check Links In A Remote File
If a URL is given as input and it ends with a file extension other than .html
,
lychee respects the file extension and interprets the file accordingly.
Here, we interpret the file as Markdown.
Check links from stdin
You don’t need to put links into a file first. You can also pipe them into lychee directly.
Check Links In Local Files Via Shell Glob
Have many files in the same directory structure you want to check? You don’t need to list them all. Just use a shell glob!
The above command checks all .html
files in the public
directory and its
subdirectories.
Advanced Globbing And ~
Expansion
This command checks all README
files inside the big_project
directory with
files ending in any file extension.
The ~
gets expanded to your home directory.
Ignore Case When Globbing And Check Result For Each Link
In this command, we ignore the case when globbing, so it matches
~/projects/my_project_/readme.md
~/projects/cool_app_/README.txt
~/projects/website_/readme.rst
~/projects/rust_game_/README
~/projects/python_script_/Readme.markdown
Check Links From Epub File
If you have atool installed, you can check links inside .epub
files as well!