DeadFinder

Find dead (broken) links in web pages, URL lists, and sitemaps. Fast native CLI written in Crystal with fiber-based concurrency.

Why DeadFinder

  • Fast: fiber-based concurrent workers scan hundreds of links in parallel.
  • Ergonomic: one binary, no runtime dependencies.
  • Structured output: JSON / YAML / TOML / CSV — or attach as a GitHub Action output.
  • Coverage report: track dead-link ratio per target with --coverage.

Install

# Homebrew
brew install deadfinder

# Docker
docker run ghcr.io/hahwul/deadfinder:latest deadfinder url https://example.com

# Prebuilt binary — pick your platform on the Releases page
# https://github.com/hahwul/deadfinder/releases/latest

See Installation for every channel (Nix, build from source, etc).

First scan

deadfinder url https://your-site.example
deadfinder sitemap https://your-site.example/sitemap.xml
cat urls.txt | deadfinder pipe

See Quick Start for more.

Continuous integration

Run DeadFinder on every push via the official GitHub Action:

- uses: hahwul/deadfinder@v2
  with:
    command: sitemap
    target: https://www.example.com/sitemap.xml

See GitHub Action for the full input reference.


DeadFinder 2.0+ is written in Crystal. v1.x (Ruby gem) lives on the legacy/v1 branch and receives bug-fix updates only.