Getting Started
Installation
Pre-built binaries
Install with a single command:
bash
curl -sL https://github.com/focusring/horn/releases/latest/download/horn-macos-aarch64 \
-o /usr/local/bin/horn && chmod +x /usr/local/bin/hornbash
curl -sL https://github.com/focusring/horn/releases/latest/download/horn-macos-x86_64 \
-o /usr/local/bin/horn && chmod +x /usr/local/bin/hornbash
curl -sL https://github.com/focusring/horn/releases/latest/download/horn-linux-x86_64 \
-o /usr/local/bin/horn && chmod +x /usr/local/bin/hornbash
curl -sL https://github.com/focusring/horn/releases/latest/download/horn-linux-aarch64 \
-o /usr/local/bin/horn && chmod +x /usr/local/bin/hornpowershell
Invoke-WebRequest -Uri https://github.com/focusring/horn/releases/latest/download/horn-windows-x86_64.exe -OutFile horn.exeOr download manually from GitHub Releases.
From source
Requires Rust 1.85+ (edition 2024):
bash
cargo install --git https://github.com/focusring/horn.gitDocker
bash
docker build -t horn .
docker run -v $(pwd):/data horn validate /data/document.pdfDesktop App
Download the native desktop app from GitHub Releases:
| Platform | Format |
|---|---|
| macOS | .dmg |
| Windows | .msi |
| Linux | .deb / .AppImage |
See the Desktop App guide for more details.
WebAssembly (npm)
Use Horn in the browser or Node.js via the WASM package:
bash
npm install @focusring/horn-wasmSee the WebAssembly guide for API details and usage examples.
GitHub Action
Add PDF accessibility checks to your CI pipeline:
yaml
- uses: focusring/horn@v1
with:
path: ./output/See CI/CD Integration and GitHub Action Reference for all options.
Quick start
Validate a single PDF:
bash
horn validate document.pdfValidate a directory of PDFs:
bash
horn validate ./pdfs/ --recurseGet JSON output:
bash
horn validate document.pdf --format jsonSee all available checks:
bash
horn list-checksShell completions
Generate completions for your shell:
bash
# Bash
horn completions bash > ~/.local/share/bash-completion/completions/horn
# Zsh
horn completions zsh > ~/.zfunc/_horn
# Fish
horn completions fish > ~/.config/fish/completions/horn.fishNext steps
- Validating PDFs — learn about all validation options
- Output Formats — choose the right format for your use case
- CI/CD Integration — automate accessibility checks in your pipeline