Skip to content
Back to skills

Link Checker

ASecurity

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

  • 12 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 7, 2026
toolsgobashgit

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 7, 2026

npx -y skills add bytesagain/ai-skills --skill link-checker --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Link Checker?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Link Checker
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bytesagain-link-checker/badge)](https://www.skillsdirectory.com/skills/bytesagain-link-checker)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
version: "2.1.0"
name: link-checker
description: "Crawl web pages and detect broken links, redirects, and HTTP errors. Use when auditing site links, finding 404 errors, validating URLs before launch."
author: BytesAgain
homepage: https://bytesagain.com
source: https://github.com/bytesagain/ai-skills
---

# 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 `[Technical Reference] or `[Technical Reference] 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

```bash
# Check if a URL is reachable
link-checker check [Technical Reference]

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

# Batch check several URLs
link-checker batch [Technical Reference] [Technical Reference] [Technical Reference]

# 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 | hello@bytesagain.com*

Files in this skill

  • SKILL.md4.5 KB
  • scripts/script.sh15.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…