GET STARTED

Install. Audit.
Read the evidence.

Python 3.11 or newer. Your website’s built HTML. Nothing else to run.

1. Install from GitHub

Create and activate a virtual environment, then install the source archive. AnchorLint is not published on PyPI.

python -m venv .venv
# macOS / Linux
source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install "https://github.com/prantikmedhi/anchorlint/archive/refs/heads/main.zip"
anchorlint --help

For reproducibility, replace main with a reviewed full commit or tag. If you use uv:

uv tool install "https://github.com/prantikmedhi/anchorlint/archive/refs/heads/main.zip"

2. Audit your built output

Build your site first, then choose its actual output directory: dist, out, _site or equivalent. Supply its public base URL.

anchorlint audit ./dist   --base-url https://example.com   --format html --output audit.html

No pages are uploaded or modified in rules mode. An unresolved local destination is a finding, not proof of a production HTTP error.

3. Understand the exit code

CodeMeaning
0Checks complete; no new finding reaches the selected gate.
1New findings reach the selected warning/error gate.
2Input, provider or operational failure; or incomplete semantic coverage.

4. Optional: enable Jev

Set TYPESAFE_API_KEY securely through your environment. The tool does not load dotenv files. Review data-sharing permission and provider charges before opting in.

anchorlint audit ./dist   --base-url https://example.com   --provider jev --max-links 25   --format json --output audit.json

--max-links bounds distinct model calls. Unchecked coverage is never labeled clean. Read errors and review findings before acting.

Complete installation and troubleshooting guide ↗