{"id":20534628,"url":"https://github.com/nagilum/slap","last_synced_at":"2026-05-08T15:48:58.205Z","repository":{"id":200706951,"uuid":"701294952","full_name":"nagilum/slap","owner":"nagilum","description":"Slap a site and see what falls out. A simple command-line site check tool.","archived":false,"fork":false,"pushed_at":"2025-01-02T20:04:54.000Z","size":520,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-16T13:46:42.281Z","etag":null,"topics":["accessibility","axe-core","cli","csharp","dotnet","playwright","site-check","site-checker"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nagilum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-06T10:44:37.000Z","updated_at":"2023-11-18T09:24:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"b89ee091-e128-41c4-ae26-2494dc62a17a","html_url":"https://github.com/nagilum/slap","commit_stats":null,"previous_names":["nagilum/slap"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nagilum%2Fslap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nagilum%2Fslap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nagilum%2Fslap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nagilum%2Fslap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nagilum","download_url":"https://codeload.github.com/nagilum/slap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242138826,"owners_count":20078006,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","axe-core","cli","csharp","dotnet","playwright","site-check","site-checker"],"created_at":"2024-11-16T00:27:34.778Z","updated_at":"2026-05-08T15:48:58.135Z","avatar_url":"https://github.com/nagilum.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slap\n\n\u003e Slap a site and see what falls out.\n\nSlap is a simple CLI to assist with QA checking of a site. \n\nIf you slap https://example.com it will crawl all URLs found, both internal and external, but not move beyond the initial domain. After it is done, it will generate a report.\n\n![CLI Example](assets/cli-example.png?raw=true)\n\nWhen Slap is finished running it will create a JSON of the queue as well as a HTML report, which will be stored in the report path, which can be set as a parameter or it defaults to the current directory.\n\nScreenshots:\n\n* [The report overview shows general stats, a list of all status codes returned, and a list of all requests made](assets/report-overview.png)\n* [The details view for each request shows stats about the request, headers, meta tags, where it was linked from, and accessibility issues](assets/report-details.png)\n* [The accessibility issues are listed by topic with each violation listed below with DOM selector and HTML snippet](assets/report-details-accessibility-issues.png)\n\n## Download and Build\n\n```bash\ngit clone https://github.com/nagilum/slap\ncd slap/src\ndotnet build\n```\n\nSlap is written in C#, [.NET 7](https://dotnet.microsoft.com/en-us/download/dotnet/7.0#runtime-7.0.13), and uses [Microsoft Playwright](https://www.nuget.org/packages/Microsoft.Playwright) to perform the internal webpage requests. This allows us to take screenshots and run [Axe Core](https://www.nuget.org/packages/Deque.AxeCore.Playwright) accessibility scans. [Serilog](https://www.nuget.org/packages/Serilog) is used for logging during run.\n\n## How To Run\n\n```bash\nslap https://example.com --engine firefox\n```\n\n## Command Line Arguments\n\n* [Set Rendering Engine](#set-rendering-engine)\n* [Add Internal Domain](#add-internal-domain)\n* [Set Report Path](#set-report-path)\n* [Skip Scanning of Links](#skip-scanning-of-links)\n* [Skip Scanning of Domains](#skip-scanning-of-domains)\n* [Set Timeout](#set-timeout)\n* [Set Window Size](#set-window-size)\n* [Load Queue File](#load-queue-file)\n\n## Set Rendering Engine\n\nSet which rendering engine to use.\n\n```\n--engine \u003cname-of-engine\u003e\n```\n\nValid options are:\n\n* `chromium`\n* `firefox`\n* `webkit`\n\nThe default value is `chromium`.\n\n### Example\n\n```\nslap https://example.com --engine firefox\n```\n\nThis will set the rendering engine to `Firefox`.\n\n## Add Internal Domain\n\nAdd a domain to be treated as an internal domain.\n\n```\n--add \u003cdomain\u003e\n```\n\n### Example\n\n```\nslap https://example.com --add docs.example.com\n```\n\nThis will follow links on both `example.com` and `docs.example.com`.\n\n## Set Report Path\n\nSet the folder path to save the report after scanning. It defaults to the current directory.\n\n```\n--path \u003cpath\u003e\n```\n\nIf the path does not exist, it will be created.\n\n### Example\n\n```\nslap https://example.com --path ~/slap-reports/\n```\n\nThis will set the report path to `~/slap-reports/`.\n\n## Skip Scanning of Links\n\nSet whick link types to skip. This command can be repeated to set more skips.\n\nValid options are:\n\n* `assets` - Will skip both internal and external assets.\n* `external` - Will skip external assets and webpages.\n* `external-assets` - Will skip external assets.\n* `external-webpages` - Will skip external webpages.\n* `internal-assets` - Will skip internal assets.\n\n### Example\n\n```\nslap https://example.com --skip external --skip internal-assets\n```\n\nThis will skip internal assets, external assets, and external webpages.\n\n## Skip Scanning of Domains\n\nSet a domain to be skipped. This command can be repeated to set more domains.\n\n### Example\n\n```\nslap https://example.com --skip www.iana.org\n```\n\nThis will scan the example.com domain, but skip scanning all links and assets found on www.iana.org.\n\n## Set Timeout\n\nSet the request timeout, in seconds, for each request. This setting defaults to 10 seconds.\n\n### Example\n\n```\nslap https://example.com --timeout 2\n```\n\nThis will set the timeout for all request to 2 seconds.\n\n## Save Screenshots\n\nSet to save screenshots of each internal page that is scanned.\n\n```\n--screenshots\n```\n\n### Example\n\n```\nslap https://example.com --screenshots\n```\n\nThis will tell the program to save a screenshot for each internal page that's scanned.\n\n## Set Window Size\n\nSet the window size. This will affect the size of the screenshot as well as some accessibility checks.\n\n### Example\n\n```\nslap https://example.com --size 1024x768\n```\n\nThis will set the window size to 1024x768 px.\n\n## Load Queue File\n\nThis will load the specified queue file instead of crwling from first URL.\nSlap will then re-scan all the entries that failed in any way on the previous run.\n\n### Example\n\n```\nslap --load ./reports/example.com/queue.json\n```\n\nThis will load the specified queue file and re-scan based on it.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnagilum%2Fslap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnagilum%2Fslap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnagilum%2Fslap/lists"}