axle · Slack integration

axle for Slack

Drop /axle scan https://example.com into any channel and axle posts the WCAG 2.1 / 2.2 AA report inline. Severity-grouped violations, the top three rules, and a one-click button to the public certificate page at /r/<id>.

Install

The hosted Slack listing is in the pipeline. While it's under review, you can self-host:

  1. Open api.slack.com/apps Create New AppFrom manifest
  2. Paste in the manifest from packages/axle-slack/manifest.yaml
  3. Set SLACK_SIGNING_SECRET, SLACK_CLIENT_ID, SLACK_CLIENT_SECRET in your axle deployment
  4. Install to workspace from the Slack App admin

What it looks like

Slash command response is posted in the channel where you ran it. Severity grid + top-three violations + a one-click button to the full certificate page:

@you  /axle scan https://example.com
@axle :mag: Scanning https://example.com for WCAG 2.2 AA violations...
@axle :warning: https://example.com
       4 violations · :red_circle: 1 critical · :large_orange_circle: 2 serious
                    · :large_yellow_circle: 1 moderate

       CRITICAL — color-contrast · Insufficient color contrast (3 elements)
       SERIOUS  — image-alt · Images must have alternate text (8 elements)
       SERIOUS  — label · Form elements must have labels (2 elements)

       [ Full report ]  [ How to fix ]

Privacy

axle requests only the scopes needed to receive a slash command and post a reply. It does not have access to channel history, DMs, files, or member info. The only data leaving Slack is the URL you explicitly type after /axle scan.

Full privacy policy: /privacy · Terms: /terms

Pricing

5 scans per day per workspace on the free tier — same as the rest of axle. Team ($49/mo) and Business ($299/mo) plans remove the limit and unlock multi-repo features. See /pricing.


Source / configs: packages/axle-slack. Want axle in Linear / Jira / Discord too? /integrations.