Improve docs, responsive, add Material Icons

Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
Hadi
2026-04-12 16:42:19 +02:00
parent 72c382bb07
commit 302166c87d
37 changed files with 176 additions and 110 deletions
+3 -3
View File
@@ -14,13 +14,13 @@ import (
const (
name = "breachdirectory"
description = "Data breach search via BreachDirectory checks if an email, username, or phone appears in known data breaches and returns exposed passwords/hashes."
description = "Data breach search via BreachDirectory: checks if an email, username, or phone appears in known data breaches and returns exposed passwords/hashes."
link = "https://breachdirectory.org"
icon = ""
icon = "mdi:shield-alert"
)
type Config struct {
APIKey string `yaml:"api_key" iky:"desc=RapidAPI key for BreachDirectory (required get one at rapidapi.com/rohan-patra/api/breachdirectory);required=true"`
APIKey string `yaml:"api_key" iky:"desc=RapidAPI key for BreachDirectory (required, get one at rapidapi.com/rohan-patra/api/breachdirectory);required=true"`
}
type Runner struct {
+2 -2
View File
@@ -16,9 +16,9 @@ import (
const (
name = "crt.sh"
description = "SSL/TLS certificate transparency log search via crt.sh enumerates subdomains and certificates issued for a domain."
description = "SSL/TLS certificate transparency log search via crt.sh: enumerates subdomains and certificates issued for a domain."
link = "https://crt.sh"
icon = ""
icon = "mdi:certificate-outline"
)
type Runner struct{}
+8 -2
View File
@@ -13,7 +13,7 @@ const (
name = "dig"
description = "DNS lookup querying A, AAAA, MX, NS, TXT, and SOA records for a domain, or reverse DNS (PTR) for an IP."
link = "https://linux.die.net/man/1/dig"
icon = ""
icon = "mdi:dns"
)
var recordTypes = []string{"A", "AAAA", "MX", "NS", "TXT", "SOA"}
@@ -67,7 +67,13 @@ func (r *Runner) Run(ctx context.Context, target string, inputType tools.InputTy
break
}
cmd := exec.CommandContext(ctx, "dig", target, rtype, "+noall", "+answer")
output, _ := cmd.Output()
output, err := cmd.Output()
if err != nil {
if ctx.Err() != nil {
break
}
continue
}
result := strings.TrimSpace(string(output))
if result == "" {
continue
+3 -3
View File
@@ -18,7 +18,7 @@ const (
name = "ghunt"
description = "Google account OSINT via GHunt. Extracts profile info, linked services, and activity from a Google email address."
link = "https://github.com/mxrch/GHunt"
icon = "google"
icon = "si:google"
)
type Config struct {
@@ -103,8 +103,8 @@ func (r *Runner) Run(ctx context.Context, target string, _ tools.InputType, out
}
if start == -1 {
// Banner printed but auth line never appeared bad/expired credentials.
out <- tools.Event{Tool: name, Type: tools.EventTypeError, Payload: "GHunt authentication failed credentials may be missing or expired (run 'ghunt login' and update your creds in Settings)"}
// Banner printed but auth line never appeared: bad/expired credentials.
out <- tools.Event{Tool: name, Type: tools.EventTypeError, Payload: "GHunt authentication failed: credentials may be missing or expired (run 'ghunt login' and update your creds in Settings)"}
out <- tools.Event{Tool: name, Type: tools.EventTypeCount, Payload: 0}
out <- tools.Event{Tool: name, Type: tools.EventTypeDone}
return nil
+1 -1
View File
@@ -12,7 +12,7 @@ const (
name = "github-recon"
description = "GitHub OSINT reconnaissance tool. Gathers profile info, social links, organisations, SSH/GPG keys, commits, and more from a GitHub username or email."
link = "https://github.com/anotherhadi/nur-osint"
icon = "github"
icon = "si:github"
)
type Config struct {
+1 -1
View File
@@ -11,7 +11,7 @@ const (
name = "gravatar-recon"
description = "Gravatar OSINT tool. Extracts public profile data from a Gravatar account: name, bio, location, employment, social accounts, phone, and more."
link = "https://github.com/anotherhadi/gravatar-recon"
icon = ""
icon = "si:gravatar"
)
type Runner struct{}
+3 -3
View File
@@ -13,13 +13,13 @@ import (
const (
name = "ipinfo"
description = "IP geolocation via ipinfo.io returns city, region, country, coordinates, ASN/org, timezone, and hostname."
description = "IP geolocation via ipinfo.io: returns city, region, country, coordinates, ASN/org, timezone, and hostname."
link = "https://ipinfo.io"
icon = ""
icon = "mdi:ip-network"
)
type Config struct {
Token string `yaml:"token" iky:"desc=ipinfo.io API token (optional free tier allows 50k req/month without one);required=false"`
Token string `yaml:"token" iky:"desc=ipinfo.io API token (optional, free tier allows 50k req/month without one);required=false"`
}
type Runner struct {
+3 -3
View File
@@ -14,13 +14,13 @@ import (
const (
name = "leakcheck"
description = "Data breach lookup via LeakCheck.io searches 7B+ leaked records for email addresses, usernames, and phone numbers across hundreds of breaches."
description = "Data breach lookup via LeakCheck.io: searches 7B+ leaked records for email addresses, usernames, and phone numbers across hundreds of breaches."
link = "https://leakcheck.io"
icon = ""
icon = "mdi:database-alert"
)
type Config struct {
APIKey string `yaml:"api_key" iky:"desc=LeakCheck API key (required get one at leakcheck.io);required=true"`
APIKey string `yaml:"api_key" iky:"desc=LeakCheck API key (required, get one at leakcheck.io);required=true"`
}
type Runner struct {
+2 -2
View File
@@ -14,7 +14,7 @@ const (
name = "maigret"
description = "Username OSINT across 3000+ sites. Searches social networks, forums, and online platforms for an account matching the target username."
link = "https://github.com/soxoj/maigret"
icon = ""
icon = "mdi:radar"
)
var accountsRe = regexp.MustCompile(`returned (\d+) accounts`)
@@ -68,7 +68,7 @@ func (r *Runner) Run(ctx context.Context, target string, _ tools.InputType, out
cmd := exec.CommandContext(ctx, "maigret", args...)
output, err := tools.RunWithPTY(ctx, cmd)
// Crop at Python traceback (NixOS read-only store error results are unaffected)
// Crop at Python traceback (NixOS read-only store error, results are unaffected)
if idx := strings.Index(output, "Traceback (most recent call last)"); idx != -1 {
output = strings.TrimSpace(output[:idx])
}
+1 -1
View File
@@ -7,7 +7,7 @@ type EventType string
const (
EventTypeOutput EventType = "output" // raw ANSI text, payload is a plain string
EventTypeError EventType = "error"
EventTypeCount EventType = "count" // payload is int, additive emit once or multiple times from Run
EventTypeCount EventType = "count" // payload is int, additive; emit once or multiple times from Run
EventTypeDone EventType = "done"
)
+1 -1
View File
@@ -12,7 +12,7 @@ const (
name = "user-scanner"
description = "🕵️‍♂️ (2-in-1) Email & Username OSINT suite. Analyzes 195+ scan vectors (95+ email / 100+ username) for security research, investigations, and digital footprinting."
link = "https://github.com/kaifcodec/user-scanner"
icon = ""
icon = "mdi:account-search"
)
type Config struct {
+2 -2
View File
@@ -16,9 +16,9 @@ import (
const (
name = "wappalyzer"
description = "Web technology fingerprinting via wappalyzergo detects CMS, frameworks, web servers, analytics, CDN, and 1500+ other technologies running on a domain."
description = "Web technology fingerprinting via wappalyzergo: detects CMS, frameworks, web servers, analytics, CDN, and 1500+ other technologies running on a domain."
link = "https://github.com/projectdiscovery/wappalyzergo"
icon = "wappalyzer"
icon = "si:wappalyzer"
)
type Runner struct {
+1 -1
View File
@@ -12,7 +12,7 @@ const (
name = "whois"
description = "WHOIS lookup for domain registration and IP ownership information."
link = "https://en.wikipedia.org/wiki/WHOIS"
icon = ""
icon = "mdi:card-search"
)
type Runner struct{}
+3 -3
View File
@@ -16,13 +16,13 @@ import (
const (
name = "whoisfreaks"
description = "Reverse WHOIS lookup via WhoisFreaks find all domains registered by an email, owner name, or keyword across 3.6B+ WHOIS records."
description = "Reverse WHOIS lookup via WhoisFreaks: find all domains registered by an email, owner name, or keyword across 3.6B+ WHOIS records."
link = "https://whoisfreaks.com"
icon = ""
icon = "mdi:database-search"
)
type Config struct {
APIKey string `yaml:"api_key" iky:"desc=WhoisFreaks API key (required free account at whoisfreaks.com);required=true"`
APIKey string `yaml:"api_key" iky:"desc=WhoisFreaks API key (required, free account at whoisfreaks.com);required=true"`
}
type Runner struct {