mzap
Version, currently 2.0.013 versions
- 2.1.1latestMar 29, 2026
- 2.1.0not indexedJul 23, 2026
- 2.0.0not indexedJul 23, 2026
- 1.3.1not indexedJul 23, 2026
- 1.3.0not indexedJul 23, 2026
- 1.3.0-actionnot indexedJul 23, 2026
- 1.2.0not indexedJul 23, 2026
- 1.1.4not indexedJul 23, 2026
- 1.1.3not indexedJul 23, 2026
- 1.1.2not indexedJul 23, 2026
- 1.1.1not indexedJul 23, 2026
- 1.1.0not indexedJul 23, 2026
- 1.0.0not indexedJul 23, 2026
github.com/hahwul/mzap
Multi-target ZAP scanning CLI tool with multi-host dispatch and report generation
112 stars
0 dependents
License: MIT
Nothing has been indexed for 2.0.0 yet. The tag is recorded, its shard.yml has not been read, so the manifest and dependency list below are empty because they are unknown rather than because they are absent.
Installation
# Add this to your shard.yml
dependencies:
mzap:
github: hahwul/mzap
version: ~> 2.0.0Then run:
shards installshard.yml
No shard.yml has been indexed for 2.0.0. You can read it on the repository.
Dependencies
Unknown: the shard.yml for this version has not been read yet.
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
# mzap
`mzap` is a Crystal CLI for multi-target ZAP scanning.
It dispatches targets across one or more ZAP API hosts, supports optional wait mode, and can export reports.
## Features
- Multiple scan commands: `spider`, `ajaxspider`, `ascan`
- Multi-host dispatch with round-robin scheduling
- Optional wait/poll mode with timeout support
- Report export (`html`/`pdf`) with fallback behavior
- Stop commands for `spider`, `ajaxspider`, `ascan`, or `all`
- Optional config loading from `$HOME/.config/mzap/config.toml` and legacy paths
## Requirements
- Crystal `>= 1.19.1`
- A running ZAP API endpoint (or endpoints)
## Installation
### Homebrew
```bash
brew install hahwul/mzap/mzap
```
### Build From Source
```bash
shards install --frozen
crystal build --release src/mzap_cli.cr -o bin/mzap
```
### Run Without Building
```bash
crystal run src/mzap_cli.cr -- version
```
### Docker Image
```bash
docker build -t mzap .
docker run --rm -v "$PWD:/work" mzap spider --urls /work/samples/target.txt --apis http://host.docker.internal:8090
```
## Usage
```text
Usage:
mzap [command]
Subcommands:
ajaxspider Start Ajax Spider scans in ZAP
ascan Start Active Scan jobs in ZAP
help Show help for a command
spider Start Spider scans in ZAP
stop Stop running scans
version Show mzap version
Flags:
--apikey string ZAP API key (omit when API key auth is disabled)
--apis string Comma-separated ZAP API host URLs
e.g. --apis http://localhost:8090,http://192.168.0.4:8090 (default "http://localhost:8090")
--config string Config file path (TOML supported; default: $HOME/.config/mzap/config.toml)
--report-format Report format after scan completion (html/pdf)
--report-out Report output path (default: mzap-report-<timestamp>.<ext>)
--wait Wait for initiated scans to complete
--wait-interval Poll interval in seconds while waiting (default 2)
--wait-timeout Wait timeout in seconds (default 0: no timeout)
-h, --help Show help for mzap
--urls string Path to URL list file (e.g. --urls hosts.txt)
```
## Examples
```bash
# spider scan with two ZAP API hosts
mzap spider --urls samples/target.txt --apis http://localhost:8090,http://192.168.0.4:8090
# run scan, wait for completion, and generate an HTML report
mzap spider --urls samples/target.txt --apis http://localhost:8090 --wait --report-format html --report-out reports/mzap.html
# stop all running scan types
mzap stop all --apis http://localhost:8090
```
## Config
`mzap` automatically loads config when present.
Priority is:
1. Explicit `--config` path (if it exists)
2. `$HOME/.config/mzap/config.toml`
3. `$HOME/.config/mzap/config` + extension variants
4. `$HOME/.mzap` + extension variants
CLI flags always override config values.
```toml
[mzap]
apis = ["http://localhost:8090", "http://192.168.0.4:8090"]
apikey = "your-zap-api-key"
urls = "samples/target.txt"
wait = true
wait_interval = 2
wait_timeout = 0
report_format = "html"
report_out = "reports/mzap.html"
```
## GitHub Action
This repository includes a Docker-based GitHub Action (`action.yml`).
```yaml
- name: Run mzap
uses: hahwul/mzap@<tag>
with:
arguments: "spider --urls samples/target.txt --apis http://localhost:8090"
```
## Development
```bash
# tests
crystal spec
# release build
crystal build --release src/mzap_cli.cr -o bin/mzap
```
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
2.0.0- Tagged
- Jul 23, 2026
- Commit
ecf4023a6a3d- Indexed
- not yet
Dependents
No indexed shard depends on this one yet.
Repository
github.com/hahwul/mzap
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 13