软件介绍
Lychee 是一个用 Rust 语言开发的链接检查工具。它可以帮助你找出网站、文档和代码中所有失效的链接,包括网址和邮箱地址。无论你是在维护一个网站、编写 Markdown 文档,还是管理一个大型项目,Lychee 都能快速扫描并告诉你哪些链接已经失效。
这个项目在 Github 上获得了 3.4k 个星标,有 194 个分支版本,超过 105 位开发者为其贡献代码。最新版本是 v0.23.0,发布于 2026 年 2 月。Lychee 提供了多种使用方式:你可以在命令行直接使用它,也可以把它集成到自己的程序里,或者在 GitHub 的自动化流程中使用。这个项目采用 Apache 2.0 和 MIT 两种开源许可证,你可以根据需要选择。
功能介绍
基础功能
Lychee 的核心功能是检查链接是否有效。它能够检测网站和文件中的所有超链接,验证这些链接是否还能正常访问。除了网址,Lychee 还能检查文本中的邮箱地址是否有效。
这个工具支持多种文件格式,包括 Markdown 文件、HTML 网页、纯文本文件,甚至整个网站。它使用异步处理技术,这意味着它能同时检查很多链接,速度非常快。如果你要反复检查相同的内容,Lychee 还能把检查结果缓存起来,下次检查时就能更快完成。
高级功能
Lychee 提供了很多高级功能来满足复杂的需求。你可以用正则表达式来排除某些链接,不检查它们。如果你有一个 .lycheeignore 文件,可以在里面列出所有不想检查的链接规则。同样地,你也可以排除某些文件夹或文件,让 Lychee 跳过它们。
如果你经常检查 GitHub 上的链接,可以设置一个 GitHub Token,这样就不会因为请求太频繁而被限制。Lychee 还支持自定义 HTTP 请求头,比如修改用户代理,这对某些网站很有用。它能处理网页的重定向,支持基本认证,还能设置请求的超时时间。
对于相对路径和锚点链接,Lychee 也能正确处理。它可以输出 JSON 格式的结果,方便你用其他工具进行进一步处理。Lychee 还能对特定的服务器进行限流,避免对目标网站造成压力,同时自动尊重服务器返回的速率限制。最后,它还能输出 JUnit 格式的测试报告,并在结果中显示链接所在的行号和列号。
使用方法/界面展示
安装方式
最简单的安装方式是使用 Cargo,这是 Rust 的包管理工具。如果你已经安装了 Rust,只需要运行一条命令就能安装 Lychee:
cargo install lychee
如果你不想安装 Rust,也可以从 GitHub 的发布页面下载已经编译好的二进制文件,支持 Linux、macOS 和 Windows。另外,你还可以使用 Docker 来运行 Lychee,这样就不需要在本地安装任何东西。如果你使用 Nix 包管理器,项目也提供了相应的支持。
基本使用
安装完成后,最简单的用法就是检查当前目录下的所有链接:
lychee .
如果你只想检查某个特定的文件,可以这样做:
lychee README.md test.html info.txt
如果你想检查一个网站上的所有链接,直接输入网址就行:
lychee https://example.com
有时候你不想检查某些链接。比如说,你的文档中有一些示例链接,不是真实的网址。这时候你可以用正则表达式来排除它们:
lychee . --exclude "example\.(com|org)"
如果有整个文件夹你想跳过,比如 node_modules 或 target 文件夹,可以这样:
lychee . --exclude-path ./node_modules --exclude-path ./target
第一次检查可能会比较慢,但如果你启用缓存,下次检查相同的内容就会快得多:
lychee . --cache
有些网站响应比较慢,默认的超时时间可能不够。你可以自己设置超时时间,单位是秒:
lychee . --timeout 30
如果你经常检查 GitHub 上的链接,可以设置你的 GitHub Token 来避免被限制:
lychee . --github-token your_token_here
如果你想要 JSON 格式的输出结果,方便用程序处理:
lychee . --output json
如果你不想看到进度条的输出:
lychee . --no-progress
配置文件
对于复杂的配置,你可以创建一个 lychee.toml 文件,把所有设置都写在里面。这样就不用每次都在命令行输入很多参数了:
[cache] cache_file = ".lycheecache" [timeout] timeout = 30 [github] github_token = "your_token_here" [exclude] exclude = ["example\\.com", "test\\.org"]
常用命令参数
除了上面提到的参数,Lychee 还有很多其他选项。输入 lychee --help 可以看到所有可用的参数。这里列出一些常用的:--version 显示版本号,--exclude 用正则表达式排除链接,--exclude-path 排除文件或文件夹,--cache 启用缓存,--timeout 设置超时时间,--github-token 设置 GitHub Token,--user-agent 自定义用户代理,--no-progress 隐藏进度条,--output 指定输出格式,--header 添加自定义 HTTP 请求头,--basic-auth 设置基本认证。
理解返回码
Lychee 运行完成后会返回一个数字,告诉你检查的结果。返回 0 表示成功,所有链接都检查完了。返回 1 表示出现了错误,比如输入有问题或配置文件有错误。返回 2 表示找到了失效的链接。返回 3 表示配置文件本身有问题。
额外补充
和其他工具的配合
如果你使用 GitHub,Lychee 提供了一个官方的 GitHub Action,可以在你的自动化流程中使用。每次你推送代码时,它都能自动检查链接。在你的工作流文件中加入这样的配置就行:
- name: Link Checker
uses: lycheeverse/lychee-action@v1
with:
args: --no-progress .
如果你使用 pre-commit 工具来在提交前检查代码,也可以把 Lychee 集成进去。在 .pre-commit-config.yaml 文件中添加:
repos:
- repo: https://github.com/lycheeverse/lychee.git
rev: v0.23.0
hooks:
- id: lychee
args: ["--no-progress", "--exclude", "file://"]
如果你是开发者,想在自己的 Rust 项目中使用 Lychee,可以把它作为一个库来使用。项目提供了详细的文档和示例代码,你可以在 examples 文件夹里找到很多实用的例子。

