Skip to content

Install

Surface is one static binary. Most repos never install it directly — they run the GitHub Action or the pre-commit hook, which fetch the binary for you.

.github/workflows/surface.yml:

name: Surface
on: pull_request
jobs:
surface:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4 # plain checkout — do NOT set fetch-depth: 0
- uses: Connorrmcd6/surface@v0.3.2

See CI integration for the checkout-depth rule and scoping flags.

.pre-commit-config.yaml:

- repo: https://github.com/Connorrmcd6/surface
rev: v0.3.0
hooks:
- id: surf-check
Terminal window
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/Connorrmcd6/surface/main/install.sh | sh

Prebuilt binaries are published for macOS (Apple Silicon) and Linux (x86_64). On Intel macOS, Windows, or other architectures, build from source.

Requires Rust:

Terminal window
git clone https://github.com/Connorrmcd6/surface
cd surface
cargo install --path surf-cli # puts `surf` on your PATH (~/.cargo/bin)
# or: cargo build --release # binary at target/release/surf