SkillHub

link-checker

v2.1.0

Crawl web pages and detect broken links, redirects, and HTTP errors. Use when auditing site links, finding 404 errors, validating URLs before launch.

Sourced from ClawHub, Authored by bytesagain4

Installation

Please help me install the skill `link-checker` from SkillHub official store. npx skills add xueyetianya/link-checker

Link Checker

Check URLs for HTTP status codes, find broken links in documents, and track link health over time. Feed it a single URL, a file full of links, or a batch of addresses — it hits each one with curl, records the status code, and tells you what's alive and what's dead. Results are stored in ~/.link-checker/ so you can review history, pull stats, and export reports.

Commands

check

Check a single URL. Sends an HTTP HEAD request and returns the status code.

link-checker check <url>

Output includes status code, a human-readable label (OK, REDIRECT, CLIENT_ERROR, etc.), and an icon.

scan

Extract all URLs from a file (markdown, HTML, plain text — anything with http:// or https:// links) and check each one.

link-checker scan <file>

Uses grep to pull URLs, deduplicates them, then checks each. Prints a summary at the end with pass/fail counts.

batch

Check multiple URLs in one go. Pass them as arguments.

link-checker batch <url1> <url2> <url3> ...

report

Generate a report from the current session's results. Supports three formats.

link-checker report [txt|csv|json]

Default format is txt. Reports are saved to ~/.link-checker/report.<format>.

history

Display the last 50 check results from the history log.

link-checker history

Shows timestamp, status code, status label, and URL for each entry.

broken

Filter results to show only failed links — status codes 4xx, 5xx, timeouts, and connection errors.

link-checker broken

stats

Show statistics across all checks: total count, breakdown by status category (2xx, 3xx, 4xx, 5xx, timeout, error), success rate percentage, and the most common status codes.

link-checker stats

export

Export the full history log to a file. Supports csv, json, and txt.

link-checker export <format>

Exported files are timestamped and saved to ~/.link-checker/.

config

View current configuration or change settings.

link-checker config
link-checker config set <key> <value>

Available keys: timeout (seconds per request), retries (retry count on failure), user_agent.

help

Show usage information and available commands.

link-checker help

version

Print the current version.

link-checker version

Examples

# Check if a URL is reachable
link-checker check https://example.com

# Scan a markdown file for broken links
link-checker scan ./README.md

# Batch check several URLs
link-checker batch https://example.com https://httpstat.us/404 https://httpstat.us/500

# See only the broken ones
link-checker broken

# Get a stats overview
link-checker stats

# Generate a JSON report
link-checker report json

# Export full history as CSV
link-checker export csv

# Set request timeout to 15 seconds
link-checker config set timeout 15

# Set retry count to 3
link-checker config set retries 3

Configuration

Settings are stored in ~/.link-checker/config as key-value pairs.

Key Default Description
timeout 10 Connection timeout in seconds per request
retries 2 Number of retry attempts on timeout/error
user_agent LinkChecker/1.0.0 User-Agent header sent with requests

Change any setting with link-checker config set <key> <value>.

Data Storage

All data lives in ~/.link-checker/:

File Purpose
results.log Current session results (pipe-delimited)
history.log Cumulative log of all checks ever run
config Configuration key-value file
report.* Generated reports (txt/csv/json)
export_*.* Timestamped exports

Log format: timestamp|url|status_code|status_label

Status Categories

Icon Category Codes
OK 2xx
🔄 Redirect 3xx
Client Error 4xx
⚠️ Server Error 5xx
⏱️ Timeout Connection timed out
🚫 Error DNS failure, connection refused

Requirements

  • bash (4.0+)
  • curl
  • grep, sort, awk (standard Unix tools)

Powered by BytesAgain | bytesagain.com | [email protected]