{"_id":"@allyproof/cli","_rev":"9-1adfd888b11fa00b9b50e101f9dd29b4","name":"@allyproof/cli","dist-tags":{"latest":"0.2.7"},"versions":{"0.1.0":{"name":"@allyproof/cli","version":"0.1.0","license":"MIT","_id":"@allyproof/cli@0.1.0","maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"homepage":"https://allyproof.com/docs/cli","bugs":{"url":"https://github.com/alexus2mad/allyproof/issues"},"bin":{"allyproof":"dist/index.js"},"dist":{"shasum":"0c7c0ec0264df4dba809d359543c15a9a1fb7a78","tarball":"https://registry.npmjs.org/@allyproof/cli/-/cli-0.1.0.tgz","fileCount":23,"integrity":"sha512-XsF6dVgsxqWsl+UWwwpoUxjEJk/Yc2RlCpJ1JJcAfaUeW4RLXt70D0IUoNgdrfRvfLn+LjdczgCC5ykOdlsOrQ==","signatures":[{"sig":"MEQCIC9UQV0UfZOQlugCL+VjcyCoYKCuXxWLgCdE0vCYvbq3AiAv0GJQjPXbsAfnDQPYLnlWdlAzpOuUp/TspvQH4QwOFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101698},"type":"module","engines":{"node":">=20"},"gitHead":"8a841f1a9d665e31bd4b2d62aac558b126c56bc5","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexus2mad","email":"hello@allyproof.com"},"repository":{"url":"git+https://github.com/alexus2mad/allyproof.git","type":"git","directory":"services/cli"},"_npmVersion":"10.8.2","description":"AllyProof CLI — run WCAG accessibility scans, fetch history, gate CI/CD pipelines from your terminal.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"kleur":"^4.1.5","commander":"^12.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1777254102112_0.8735053825988648","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@allyproof/cli","version":"0.2.0","license":"MIT","_id":"@allyproof/cli@0.2.0","maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"homepage":"https://allyproof.com/docs/cli","bugs":{"url":"https://github.com/alexus2mad/allyproof/issues"},"bin":{"allyproof":"dist/index.js"},"dist":{"shasum":"99bc089d882e69fdd64b5bf8118b4687fc8e6f2d","tarball":"https://registry.npmjs.org/@allyproof/cli/-/cli-0.2.0.tgz","fileCount":23,"integrity":"sha512-DNwj2BfmEjz73Ilo8L4ncSnVQ+5OUH3j+h5cxiNav/RFDqNWQdYVUItixmlr1zIHPsIF64lOjYDdIOCQB+oE0w==","signatures":[{"sig":"MEUCIEXVFAleHfRiiFB3ZUc/XlZSLWdhKxQzfnNmK8NnEW7FAiEAlWwnCPnzT4MVLvpMF+2+avsWaQPuarhM3qYJTlvzLHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104819},"type":"module","engines":{"node":">=20"},"gitHead":"c8b8c5e2fe904538dd580ea4f315b2785c9a6ce2","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexus2mad","email":"hello@allyproof.com"},"repository":{"url":"git+https://github.com/alexus2mad/allyproof.git","type":"git","directory":"services/cli"},"_npmVersion":"10.8.2","description":"AllyProof CLI — run WCAG accessibility scans, fetch history, gate CI/CD pipelines from your terminal.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"kleur":"^4.1.5","commander":"^12.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.0_1777327171585_0.08209613219018408","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@allyproof/cli","version":"0.2.1","keywords":["accessibility","a11y","wcag","wcag-2.2","axe-core","ada","section-508","scanner","lighthouse-alternative","ci","ci-cd","github-actions","cli","command-line","allyproof"],"author":{"name":"Alex Maksiutenko","email":"alex.maksiutenko@gmail.com"},"license":"MIT","_id":"@allyproof/cli@0.2.1","maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"homepage":"https://allyproof.com/docs/cli","bugs":{"url":"https://github.com/alexus2mad/allyproof/issues"},"bin":{"allyproof":"dist/index.js"},"dist":{"shasum":"b3b7b2fcc5cebd7a48e57f9cb7b4c27f77cf0cc2","tarball":"https://registry.npmjs.org/@allyproof/cli/-/cli-0.2.1.tgz","fileCount":25,"integrity":"sha512-EXYn8ZTklcCjRH7NF6OYOq7AVL/vRcjrxxzOuZjUf9NNx74fMUWjfgePFChtXQvDYAP5T+FrW6kf4P/1fe1pQQ==","signatures":[{"sig":"MEUCIQCTM3sLPZGNRBGMmIzwvWi6G888QiEr5EstrsY9zkQioAIgJDk9p0DGlQsaYs7mjgtAStEeQH6PCJQbv9iU5Rtnr30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111099},"type":"module","engines":{"node":">=20"},"gitHead":"00a93cf50ab292a9d6c58fe6acc2ebda6b366a79","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexus2mad","email":"hello@allyproof.com"},"repository":{"url":"git+https://github.com/alexus2mad/allyproof.git","type":"git","directory":"services/cli"},"_npmVersion":"10.2.3","description":"AllyProof CLI — run WCAG 2.2 AA accessibility scans, fetch history, and gate CI/CD pipelines from your terminal.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"kleur":"^4.1.5","commander":"^12.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.1_1777493309243_0.9494673734260437","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@allyproof/cli","version":"0.2.2","keywords":["accessibility","a11y","wcag","wcag-2.2","axe-core","ada","section-508","scanner","lighthouse-alternative","ci","ci-cd","github-actions","cli","command-line","allyproof"],"author":{"url":"https://allyproof.com","name":"AllyProof","email":"support@allyproof.com"},"license":"MIT","_id":"@allyproof/cli@0.2.2","maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"homepage":"https://allyproof.com/docs/cli","bugs":{"url":"https://allyproof.com/docs/cli","email":"support@allyproof.com"},"bin":{"allyproof":"dist/index.js"},"dist":{"shasum":"8dea73f9cc79c209e56006bb4fd9a63ab30a893f","tarball":"https://registry.npmjs.org/@allyproof/cli/-/cli-0.2.2.tgz","fileCount":25,"integrity":"sha512-Mtw6YOtInDnIeb3iRdbptVAXycK2lLt/mcKIfiAN3/W+GxMWic4xvZa8FNsA+N5EkIt/C3fZe8Wmfyg5ZbQFGA==","signatures":[{"sig":"MEYCIQCEANvysWlXjXdnnodtNznOdbPQ1Cjim0YbTlLPh/gDGAIhAPCqsA/WU7cQz1fnvUNM+U/9psbivn05CHDaGmTYshKg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111080},"type":"module","engines":{"node":">=20"},"gitHead":"00a93cf50ab292a9d6c58fe6acc2ebda6b366a79","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexus2mad","email":"hello@allyproof.com"},"_npmVersion":"10.2.3","description":"AllyProof CLI — run WCAG 2.2 AA accessibility scans, fetch history, and gate CI/CD pipelines from your terminal.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"kleur":"^4.1.5","commander":"^12.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.2_1777493942888_0.44738925700746024","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@allyproof/cli","version":"0.2.3","keywords":["accessibility","a11y","wcag","wcag-2.2","axe-core","ada","section-508","scanner","lighthouse-alternative","ci","ci-cd","github-actions","cli","command-line","allyproof"],"author":{"url":"https://allyproof.com","name":"AllyProof","email":"support@allyproof.com"},"license":"MIT","_id":"@allyproof/cli@0.2.3","maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"homepage":"https://allyproof.com/docs/cli","bugs":{"url":"https://allyproof.com/docs/cli","email":"support@allyproof.com"},"bin":{"allyproof":"dist/index.js"},"dist":{"shasum":"132168a556d021272fc369a751fe6d85de5f0b9d","tarball":"https://registry.npmjs.org/@allyproof/cli/-/cli-0.2.3.tgz","fileCount":25,"integrity":"sha512-w6f/R31BIHb0N2Vtgkpj3RuE5IREDFoce61jbk5MvXjqq4qO5tQKkb+BBGQSsNO7zBXzioEQANEgAy6OCNb1Ug==","signatures":[{"sig":"MEUCIQCHoLTmwnFhVptNdNVKj/OqOmNubWfIXpQzGT8ng9HG7gIgY2ETvqMuQiaxdKSBw80iFJAxALw0S9Kk6qWC+xXwnwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111142},"type":"module","engines":{"node":">=20"},"gitHead":"d86c20fa3d77e55df5fbc5dd03848864aecc714f","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexus2mad","email":"hello@allyproof.com"},"_npmVersion":"10.2.3","description":"AllyProof CLI — run WCAG 2.2 AA accessibility scans, fetch history, and gate CI/CD pipelines from your terminal.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"kleur":"^4.1.5","commander":"^12.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.3_1777494048832_0.5391783970956769","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@allyproof/cli","version":"0.2.4","keywords":["accessibility","a11y","wcag","wcag-2.2","axe-core","ada","section-508","scanner","lighthouse-alternative","ci","ci-cd","github-actions","cli","command-line","allyproof"],"author":{"url":"https://allyproof.com","name":"AllyProof","email":"support@allyproof.com"},"license":"MIT","_id":"@allyproof/cli@0.2.4","maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"homepage":"https://allyproof.com/docs/cli","bugs":{"url":"https://allyproof.com/docs/cli","email":"support@allyproof.com"},"bin":{"allyproof":"dist/index.js"},"dist":{"shasum":"96b3a40e7fd9223d881ab327e41c5c8d9cb1054b","tarball":"https://registry.npmjs.org/@allyproof/cli/-/cli-0.2.4.tgz","fileCount":25,"integrity":"sha512-IuzHK5hZbzjgcrXdklozfAPmIsqBO3q/PLYBeTcSFY6153/2EdudnkjNc/T3YhLzhTCU7MJZIJa7VQox86npnQ==","signatures":[{"sig":"MEUCIQDzytNRMVacRcSmX+mfTUymLwWsn6ZTCX9ucYou09rSUAIgNmSt6p0xDHxdFPByHbJyoj0SSRyR3Xvf08JYZOtPjGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111951},"type":"module","engines":{"node":">=20"},"gitHead":"c6dbfd0bb2e8b5498da27b1f482103177e090b4a","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexus2mad","email":"hello@allyproof.com"},"_npmVersion":"10.2.3","description":"AllyProof CLI — run WCAG 2.2 AA accessibility scans, fetch history, and gate CI/CD pipelines from your terminal.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"kleur":"^4.1.5","commander":"^12.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.4_1777494265577_0.7483383259903371","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@allyproof/cli","version":"0.2.5","keywords":["accessibility","a11y","wcag","wcag-2.2","axe-core","ada","section-508","scanner","lighthouse-alternative","ci","ci-cd","github-actions","cli","command-line","allyproof"],"author":{"url":"https://allyproof.com","name":"AllyProof","email":"support@allyproof.com"},"license":"MIT","_id":"@allyproof/cli@0.2.5","maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"homepage":"https://allyproof.com/docs/cli","bugs":{"url":"https://allyproof.com/docs/cli","email":"support@allyproof.com"},"bin":{"allyproof":"dist/index.js"},"dist":{"shasum":"6991b6ed9da0e43b2a3511219afeae98f5a34df4","tarball":"https://registry.npmjs.org/@allyproof/cli/-/cli-0.2.5.tgz","fileCount":25,"integrity":"sha512-3k1QEwRP5PyeqzFsLSBoi8vlFffhUHkO2PuB4LJOOU2DGELo8/M/YcHJEmI/lsTxYGrnzWqtd+XMF/j5wftsug==","signatures":[{"sig":"MEUCIQDZkITm1ZN2tOGJTd+8kL3W1b5amt09Wgf+aMiSZHWKwgIgM9SQyrFFPWeWeJfN3wMFSJQfot/57FCb+ujCq5DwstU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113595},"type":"module","engines":{"node":">=20"},"gitHead":"ba47f3f82962aab1836c29449319cd907807e55d","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexus2mad","email":"hello@allyproof.com"},"_npmVersion":"10.2.3","description":"AllyProof CLI — run WCAG 2.2 AA accessibility scans, fetch history, and gate CI/CD pipelines from your terminal.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"kleur":"^4.1.5","commander":"^12.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.5_1777495304290_0.228919477341329","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@allyproof/cli","version":"0.2.6","keywords":["accessibility","a11y","wcag","wcag-2.2","axe-core","ada","section-508","scanner","lighthouse-alternative","ci","ci-cd","github-actions","cli","command-line","allyproof"],"author":{"url":"https://allyproof.com","name":"AllyProof","email":"support@allyproof.com"},"license":"MIT","_id":"@allyproof/cli@0.2.6","maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"homepage":"https://allyproof.com/docs/cli","bugs":{"url":"https://allyproof.com/docs/cli","email":"support@allyproof.com"},"bin":{"allyproof":"dist/index.js"},"dist":{"shasum":"5b7ac7150c2a15e31f94e856254f5820c6f11abb","tarball":"https://registry.npmjs.org/@allyproof/cli/-/cli-0.2.6.tgz","fileCount":25,"integrity":"sha512-5JX2/1leHWI0TmV4tjxZ4/d0P0KG4ilrYswLPWUBEFljAfpQOSA0MI4aVCJzJc9brT4cU29XMyQNFCfHTK2Wgw==","signatures":[{"sig":"MEUCIDOOgwwlWeJYudj/dbnWrZ5bYTVBVfuNnmoZ+GFf9+8yAiEAoyIMajigm+Q2wB/F8lT5JNr0IwxjIXhKqFnhXDBPyu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115744},"type":"module","engines":{"node":">=20"},"gitHead":"ffafec8e360f5ee87cf6996c339d902a54b45437","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexus2mad","email":"hello@allyproof.com"},"_npmVersion":"10.2.3","description":"AllyProof CLI — run WCAG 2.2 AA accessibility scans, fetch history, and gate CI/CD pipelines from your terminal.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"kleur":"^4.1.5","commander":"^12.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.6_1777495638071_0.012290414707756936","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@allyproof/cli","version":"0.2.7","description":"AllyProof CLI — run WCAG 2.2 AA accessibility scans, fetch history, and gate CI/CD pipelines from your terminal.","keywords":["accessibility","a11y","wcag","wcag-2.2","axe-core","ada","section-508","scanner","lighthouse-alternative","ci","ci-cd","github-actions","cli","command-line","allyproof"],"license":"MIT","author":{"name":"AllyProof","email":"support@allyproof.com","url":"https://allyproof.com"},"homepage":"https://allyproof.com/docs/cli","bugs":{"url":"https://allyproof.com/docs/cli","email":"support@allyproof.com"},"bin":{"allyproof":"dist/index.js"},"engines":{"node":">=20"},"type":"module","scripts":{"build":"tsc","dev":"tsc --watch","typecheck":"tsc --noEmit","start":"node dist/index.js","prepublishOnly":"npm run build"},"dependencies":{"commander":"^12.1.0","kleur":"^4.1.5"},"devDependencies":{"@types/node":"^20.14.0","typescript":"^5.5.0"},"_id":"@allyproof/cli@0.2.7","gitHead":"ffafec8e360f5ee87cf6996c339d902a54b45437","_nodeVersion":"22.20.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-2mQaI1+o4atSMl7byeWpDqdMG8Msk84qbDr1rYdLUX6+V8i7LJPLkPCoT3ZIDN7CVbrri7sWcqYhLL/WMaLjxA==","shasum":"ab18908531cc3dd70657aabee80c591b35db92ad","tarball":"https://registry.npmjs.org/@allyproof/cli/-/cli-0.2.7.tgz","fileCount":25,"unpackedSize":115754,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBirWqnDjXbtH/roSkW5iND7AG8AqRCgVxxDfSz9UMQjAiBgP0qG12hE7ysR1WRPqPl0WzgE7StUA3Tn2ck7KgGNsw=="}]},"_npmUser":{"name":"alexus2mad","email":"hello@allyproof.com"},"directories":{},"maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.2.7_1777495726579_0.12144790572746955"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-27T01:41:42.017Z","modified":"2026-04-29T20:48:46.846Z","0.1.0":"2026-04-27T01:41:42.271Z","0.2.0":"2026-04-27T21:59:31.731Z","0.2.1":"2026-04-29T20:08:29.369Z","0.2.2":"2026-04-29T20:19:03.026Z","0.2.3":"2026-04-29T20:20:48.968Z","0.2.4":"2026-04-29T20:24:25.776Z","0.2.5":"2026-04-29T20:41:44.492Z","0.2.6":"2026-04-29T20:47:18.236Z","0.2.7":"2026-04-29T20:48:46.721Z"},"bugs":{"url":"https://allyproof.com/docs/cli","email":"support@allyproof.com"},"author":{"name":"AllyProof","email":"support@allyproof.com","url":"https://allyproof.com"},"license":"MIT","homepage":"https://allyproof.com/docs/cli","keywords":["accessibility","a11y","wcag","wcag-2.2","axe-core","ada","section-508","scanner","lighthouse-alternative","ci","ci-cd","github-actions","cli","command-line","allyproof"],"description":"AllyProof CLI — run WCAG 2.2 AA accessibility scans, fetch history, and gate CI/CD pipelines from your terminal.","maintainers":[{"name":"alexus2mad","email":"hello@allyproof.com"}],"readme":"# @allyproof/cli\n\nRun WCAG 2.2 AA accessibility scans, fetch history, and gate CI/CD pipelines from your terminal.\n\n[![npm version](https://img.shields.io/npm/v/@allyproof/cli.svg)](https://www.npmjs.com/package/@allyproof/cli)\n[![docs](https://img.shields.io/badge/docs-allyproof.com-blue.svg)](https://allyproof.com/docs/cli)\n\n`@allyproof/cli` is the official command-line client for [AllyProof](https://allyproof.com) — a WCAG accessibility scanner that audits live sites with [axe-core](https://github.com/dequelabs/axe-core), [HTML_CodeSniffer](https://github.com/squizlabs/HTML_CodeSniffer), and APCA contrast checking. Use it to trigger scans on demand, embed accessibility gates in your CI/CD pipeline, or pull recent scan results from the terminal without leaving your editor.\n\n---\n\n## Install\n\n```bash\nnpm install -g @allyproof/cli\nallyproof --version\n```\n\nOr run via `npx` in CI to avoid a persistent install:\n\n```bash\nnpx @allyproof/cli scan https://example.com --threshold 80\n```\n\nRequires Node.js 20+.\n\n## Get an API key\n\nThe CLI talks to your AllyProof organization, so you need an account + an API key first. The whole thing takes about a minute:\n\n1. **Sign up** at [allyproof.com/signup](https://allyproof.com/signup) — email + password, or Google / GitHub OAuth. The free plan includes scans on the dashboard side and is enough to try the CLI.\n2. **Verify email** if prompted (one click from the inbox).\n3. **Generate a key**: open [allyproof.com/settings/api-keys](https://allyproof.com/settings/api-keys), click **Generate new key**, give it a name (e.g. `local-dev` or `github-actions`), and copy the value once — AllyProof only displays it on creation.\n\nKeys are scoped to the organization that created them and inherit that org's plan limits. They never expire automatically; revoke from the same page when a key leaks or you rotate.\n\n## Authenticate the CLI\n\nOnce you have a key:\n\n```bash\nallyproof login              # interactive — paste the key when prompted\nallyproof login --key ap_live_…   # non-interactive (good for CI bootstrap)\nallyproof whoami             # confirms which org the key belongs to\n```\n\nThe key is written to `~/.config/allyproof/config.json` on POSIX (mode `0600`) or `%APPDATA%\\allyproof\\config.json` on Windows. In CI, prefer the env var so the key never lands on disk:\n\n```bash\nexport ALLYPROOF_API_KEY=ap_live_…\n```\n\n## Commands\n\n### `allyproof scan [url]`\n\nRun a WCAG scan. Pass either a URL or `--site <id>` (a tracked site in your org).\n\n| Flag | Purpose |\n|---|---|\n| `--site <id>` | Scan a tracked site by id. Faster than URL form (skips resolution). Recommended for CI. |\n| `--threshold <n>` | Exit `1` if the score is below `n` (0–100). |\n| `--fail-on <list>` | Exit `1` if **any** violation of the listed severities is present. Comma-separated subset of `critical,serious,moderate,minor`. |\n| `--max-pages <n>` | Cap the page budget for this scan (overrides the site default). |\n| `--no-wait` | Enqueue and return immediately with the `scan_id` — pair with `allyproof show <scanId>` later. |\n| `--output <format>` | `pretty` (default), `json`, `sarif`, `junit`. SARIF feeds GitHub code-scanning; JUnit drops into Jenkins / GitLab test panels. |\n| `--json` | Shortcut for `--output json`. |\n\nExamples:\n\n```bash\nallyproof scan https://example.com\nallyproof scan --site 9b15692d-…              # site-id form (faster, CI-friendly)\nallyproof scan --site $SITE --threshold 80 --fail-on critical,serious\nallyproof scan --site $SITE --output sarif > a11y.sarif\n```\n\n`--no-wait` is incompatible with `--output sarif` and `--output junit` — those formats need the full violation list. Run without `--no-wait` (or follow up with `allyproof show <scanId> --output sarif`).\n\n### `allyproof history`\n\nList recent scans for the authenticated organization.\n\n| Flag | Purpose |\n|---|---|\n| `--site <id>` | Filter to a single site. |\n| `--status <status>` | One of `pending`, `running`, `completed`, `failed`, `cancelled`. |\n| `--limit <n>` | Max rows (1–100, default `20`). |\n| `--cursor <iso>` | Pagination cursor returned by a previous call. |\n| `--json` | Emit raw JSON. |\n\n```bash\nallyproof history --limit 10\nallyproof history --site 9b15692d-… --status completed\nallyproof history --cursor 2026-04-29T08:30:00Z   # next page from the previous response\n```\n\n### `allyproof show <scanId>`\n\nFull details for a single scan.\n\n| Flag | Purpose |\n|---|---|\n| `--include-advisory` | Include manual-review (advisory) items in the violations list. |\n| `--include-resolved` | Include violations resolved or dismissed in this scan (default shows only open). |\n| `--include-history` | Show all rolled-up site issues, not just what was detected in this scan. |\n| `--output <format>` | `pretty` (default), `json`, `sarif`, `junit`. |\n| `--json` | Shortcut for `--output json`. |\n\n```bash\nallyproof show abc123…\nallyproof show abc123… --include-advisory --output sarif > a11y.sarif\n```\n\n### `allyproof diff <scanA> <scanB>`\n\nCompare two scans. `scanA` is the baseline, `scanB` is the new state.\n\n| Flag | Purpose |\n|---|---|\n| `--json` | Emit raw JSON instead of pretty output. |\n\n```bash\nallyproof diff abc123… def456…\n```\n\n### `allyproof open <scanId>`\n\nOpen the scan in the AllyProof dashboard in your default browser.\n\n| Flag | Purpose |\n|---|---|\n| `--print` | Print the URL to stdout instead of launching the browser. |\n\n```bash\nallyproof open abc123…\nallyproof open abc123… --print          # in CI / headless: capture URL for a notification\n```\n\n### `allyproof sites list`\n\nList tracked sites in the organization.\n\n| Flag | Purpose |\n|---|---|\n| `--json` | Emit raw JSON. |\n\n### `allyproof sites add <url>`\n\nRegister a new site. Returns the site id and a verification token.\n\n| Flag | Purpose |\n|---|---|\n| `--name <name>` | **Required.** Display name. |\n| `--method <method>` | `meta_tag` (default) or `dns`. |\n| `--json` | Emit raw JSON. |\n\n```bash\nallyproof sites add https://example.com --name \"Marketing site\"\nallyproof sites add https://example.com --name \"Marketing site\" --method dns --json\n```\n\n### `allyproof config`\n\nInspect or modify the local CLI config.\n\n```bash\nallyproof config get                          # print everything\nallyproof config get api_key                  # print one field\nallyproof config set base_url https://allyproof.com\nallyproof config set default_site_id 9b15692d-…\nallyproof config path                         # show config file location\n```\n\n### `allyproof login` / `allyproof whoami`\n\nSee [Authenticate the CLI](#authenticate-the-cli) above.\n\n## CI gating\n\nTwo independent gates that can be combined — the build fails if **either** trips:\n\n```bash\n# Score gate — broad quality signal, tolerates a few small issues.\nallyproof scan --site $SITE --threshold 80\n\n# Severity gate — strict, fail if even one critical or serious finding lands.\nallyproof scan --site $SITE --fail-on critical,serious\n\n# Layered — score AND severity. Most teams end up here:\n#   \"score must be ≥ 80 AND no critical/serious findings.\"\nallyproof scan --site $SITE --threshold 80 --fail-on critical,serious\n```\n\n`--fail-on` reads the per-severity counts in the scan summary, so a single `critical` issue across hundreds of `minor` advisories will fail the build. `critical` and `serious` are the two severities tied to ADA-cited rules in our litigation-risk model — most teams keep those at zero.\n\n### GitHub Actions\n\nScore floor + zero-tolerance for critical/serious:\n\n```yaml\n- name: Accessibility gate\n  env:\n    ALLYPROOF_API_KEY: ${{ secrets.ALLYPROOF_API_KEY }}\n  run: |\n    npx @allyproof/cli scan \\\n      --site ${{ vars.ALLYPROOF_SITE_ID }} \\\n      --threshold 80 \\\n      --fail-on critical,serious\n```\n\nSARIF output → GitHub code-scanning UI:\n\n```yaml\n- name: Accessibility scan (SARIF)\n  env:\n    ALLYPROOF_API_KEY: ${{ secrets.ALLYPROOF_API_KEY }}\n  run: |\n    npx @allyproof/cli scan \\\n      --site ${{ vars.ALLYPROOF_SITE_ID }} \\\n      --output sarif > a11y.sarif\n\n- name: Upload SARIF\n  uses: github/codeql-action/upload-sarif@v3\n  with:\n    sarif_file: a11y.sarif\n    category: allyproof\n```\n\n### GitLab CI\n\n```yaml\na11y:\n  image: node:20\n  variables:\n    ALLYPROOF_API_KEY: $ALLYPROOF_API_KEY\n  script:\n    - npx @allyproof/cli scan\n      --site $ALLYPROOF_SITE_ID\n      --threshold 80\n      --fail-on critical,serious\n      --output junit > a11y.junit.xml\n  artifacts:\n    when: always\n    reports:\n      junit: a11y.junit.xml\n```\n\n## Environment variables\n\nRecognised env vars (override the local config file):\n\n| Variable | Purpose |\n|---|---|\n| `ALLYPROOF_API_KEY` | API key. Use this in CI so the key never lands on disk. |\n| `ALLYPROOF_BASE_URL` | Override the API base. Default: `https://allyproof.com`. |\n| `ALLYPROOF_SITE_ID` | Default site id for `scan` when no URL or `--site` is given. |\n\n## Exit codes\n\n| Code | Meaning |\n|---|---|\n| `0` | Success. Scan ran AND every CI gate passed. |\n| `1` | Scan ran but at least one CI gate failed (`--threshold` not met OR a `--fail-on` severity present), OR a runtime error reached the top level (network blip, missing scan, server error). |\n| `2` | Invalid arguments / missing API key. |\n| `130` | Interactive `login` interrupted with Ctrl-C. |\n\n## Support\n\n- **Docs**: [allyproof.com/docs/cli](https://allyproof.com/docs/cli)\n- **Issues / questions**: <support@allyproof.com>\n\n## License\n\n[MIT](https://opensource.org/license/mit). The full license text is bundled in the package tarball as `LICENSE`.\n","readmeFilename":"README.md"}