Dnskit
⚡ A modern, multi-featured command-line tool for DNS analysis, penetration testing, and system administration.
Install / Use
/learn @nicokempe/DnskitREADME
✨ Features
- 🔎 DNS Lookup for all major record types (
A,AAAA,CNAME,MX,TXT,NSandSRV) - 🚀 Subdomain Enumeration with concurrency for speed
- 🛡 Zone Transfer (
AXFR) checks to find misconfigurations - ↩️ Reverse DNS lookups (IPv4 + IPv6)
- 🧩 Custom DNS Resolver (e.g.,
8.8.8.8or8.8.8.8:53) - 🎨 JSON or Colorized output
- 💻 Cross-Platform (Windows, macOS, Linux)
📦 Installation
Download prebuilt binaries (recommended)
Grab the latest ZIP/TAR for your OS/arch from the Releases page, extract it, and place the dnskit binary somewhere on your PATH so the dnskit command is available from a terminal.
Note
dnskitis a command-line application. Double-clicking the executable in a file explorer (for example, on Windows) will only show a message telling you to use a terminal.
- Windows: download
dnskit_*_windows_amd64.zip(orarm64), unzip, then rundnskit.exefrom cmd.exe or PowerShell. To invokednskitfrom any folder, add the directory that containsdnskit.exeto yourPATH. - macOS: download
dnskit_*_darwin_amd64.tar.gz(orarm64), extract, make it executable (chmod +x dnskitif needed) and move it to a directory on yourPATHsuch as/usr/local/bin. - Linux: download
dnskit_*_linux_amd64.tar.gz(orarm64), extract, make it executable (chmod +x dnskit) and move it to a directory on yourPATH.
Build from source
git clone https://github.com/nicokempe/dnskit.git
cd dnskit
go build -o dnskit .
# or install to $GOBIN
go install ./...
Official releases are built via GoReleaser and embed version/commit metadata. Local builds show
devunless you set-ldflags.
🚀 Usage
dnskit --help
Global Flags
--json- Output results in JSON format--resolver <ip[:port]>- Use a custom DNS resolver
Subcommands
-
lookup - Query a specific record type
dnskit lookup <hostname> --type A|AAAA|MX|TXT|NS|CNAME|SRV -
enum - Enumerate subdomains with concurrency
dnskit enum <domain> --wordlist subdomains.txt --concurrency 10 -
transfer - Attempt DNS zone transfer (AXFR)
dnskit transfer <domain> --nameserver <ns.host> -
reverse - Reverse DNS lookups (IPv4/IPv6)
dnskit reverse <ip>
🧾 Versioning
Releases follow the format vYYYY.MM.VV:
YYYY- year (e.g.,2025)MM- month (01–12)VV- sequential release number within the month (resets each month)
Examples:
v2025.08.1→ first release in August 2025v2025.08.2→ second release in August 2025
📝 Release Workflow
-
Update Changelog
Run changelogen to update
CHANGELOG.md:npx changelogen@latest --output CHANGELOG.mdCommit the updated
CHANGELOG.md(e.g. as "docs(release): update changelog"". -
Create a new release tag
Use the provided script for your OS:
-
Windows (PowerShell)
./scripts/new-release.ps1 <version> (replace <version> with e.g. v2025.08.1) -
Linux/macOS (Bash)
./scripts/new-release.sh <version> (replace <version> with e.g. v2025.08.1)
These scripts:
- Validate the version format
- Commit any pending changes
- Create a Git tag
- Push tag ➜ triggers GitHub Actions GoReleaser
-
-
GitHub Actions builds & publishes
Once the tag is pushed, the CI pipeline:
- Builds binaries for Linux, macOS, Windows (amd64 + arm64)
- Packages as
.tar.gz,.zip,.deb,.rpm - Publishes assets to GitHub Releases
- Updates Winget manifests
🧰 Development
-
Requires Go 1.24+
-
Quick build:
go build -o dnskit . -
Cross-compile + package (local snapshot):
goreleaser release --snapshot --skip=publish --clean
📝 Changelog
See CHANGELOG.md. Generated automatically from Conventional Commits via changelogen.
📜 License
This project is licensed under the MIT LICENSE.
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
