{"adoption": {"forks": 556, "observed_at": "2026-08-28T04:07:58.482265+00:00", "stars": 3374}, "canonical_url": "https://ross.abutalabs.com/products/dirmap", "card": {"archived": false, "artifact_type": "cli-tool", "description": "An advanced web directory & file scanning tool that will be more powerful than DirBuster, Dirsearch, cansina, and Yu Jian.一个高级web目录、文件扫描工具，功能将会强于DirBuster、Dirsearch、cansina、御剑。", "domain": ["security", "penetration-testing", "web-development"], "enriched": true, "function": ["web-scraping", "security", "penetration-testing", "cli", "http-client"], "health_score": 58, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["H4ckForJob/dirmap"], "name": "H4ckForJob/dirmap", "platform": ["python", "cli", "windows", "cross-platform"], "pushed_at": "2025-10-21T22:27:07+00:00", "repo": "H4ckForJob/dirmap", "stars": 3374, "tags": ["directory-scanner", "dirbuster", "dirsearch", "web-pentest", "brute-force", "fuzzing", "recon", "command-line", "linux", "macos"], "topics": ["scanner", "scanner-web", "dirscanner", "pentest-tool"], "urls": [], "use_cases": ["scan a website for hidden directories and files", "brute-force web paths with a custom dictionary", "discover sensitive files on a web server during a pentest", "recursively scan directories that return 301 or 403", "crawl a page to dynamically generate a dictionary of paths", "fuzz target URLs with a custom tag insertion point", "scan a subnet or IP range for web directories"], "what_it_is": "Dirmap is an advanced web directory and file scanning tool written in Python, designed to be more powerful than DirBuster, Dirsearch, cansina, and Yu Jian. It supports concurrent scanning of multiple targets, recursive scanning, dictionary and brute-force modes, crawler-based dynamic dictionary generation, and fuzzing with customizable request and response handling.", "when_to_avoid": ["you need detailed configuration via command-line flags rather than editing a config file", "you want a maintained tool with frequent updates and modern async architecture", "you only need a simple one-off directory check where a lighter tool suffices"], "when_to_choose": ["you need a fast, concurrent directory brute-forcer with recursive scanning", "you want crawler-based dynamic dictionary generation or fuzz-tag scanning in one tool", "you need flexible response filtering like fake-404 regex matching and content-type/size filters"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dirmap", "repo": "H4ckForJob/dirmap", "role": "main", "score": 44}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:58.482265+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:39:55.559976+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497fb83c7bc024d3aa1a20e644cdc18adfa15f8c81c3d02b2db472c3bfb03f9f", "fetched_at": "2026-08-28T04:07:58.482265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/H4ckForJob/dirmap"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 48, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2701, "days_push": 316, "days_rel": 678, "gap_med": null, "n_releases_24m": 1}, "score": 44, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}