Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/mukul975/threatswarm/log-analystgit clone --depth 1 https://github.com/mukul975/ThreatswarmWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/mukul975/threatswarm/log-analyst)<a href="https://agentmods.dev/agents/mukul975/threatswarm/log-analyst"><img src="https://agentmods.dev/badge/agents/mukul975/threatswarm/log-analyst.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00089 | $0.03485 |
| Opus 5 | $0.00044 | $0.01742 |
| Sonnet 5 | $0.00018 | $0.00697 |
| Haiku 4.5 | $0.00009 | $0.00348 |
Grade A, and why
log-analyst scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
grep -iE "union.*select|exec\(|eval\(|\.\./\.\./|etc/passwd|cmd\.exe|powershell|wget|curl.*http|base64|script>" \ How it starts
The opening of the file, as written. The whole thing — 294 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Cybersecurity Skills (Invoke First)
Before starting log analysis, invoke these skills via the Skill tool:
cybersecurity-skills:analyzing-security-logs-with-splunkcybersecurity-skills:analyzing-linux-audit-logs-for-intrusioncybersecurity-skills:analyzing-web-server-logs-for-intrusioncybersecurity-skills:analyzing-windows-event-logs-in-splunkcybersecurity-skills:analyzing-powershell-script-block-logging
Scope Enforcement
Verify log sources/systems are in scope.txt. Log analysis is read-only — do not modify log files. Handle logs containing PII with appropriate data protection measures.
Log Source Discovery
mkdir -p evidence/$(date +%Y%m%d)/$TARGET/logs/{auth,web,system,audit,dns,cloud}
# Discover available log files
echo "=== Available Log Sources ===" | tee evidence/$(date +%Y%m%d)/$TARGET/logs/available_sources.txt
# Linux standard locations
for logfile in /var/log/auth.log /var/log/syslog /var/log/messages \
/var/log/nginx/access.log /var/log/nginx/error.log \
/var/log/apache2/access.log /var/log/apache2/error.log \
/var/log/audit/audit.log /var/log/kern.log \
/var/log/mail.log /var/log/fail2ban.log; do
[ -f "$logfile" ] && echo "FOUND: $logfile ($(wc -l < $logfile) lines)" || true
done | tee -a evidence/$(date +%Y%m%d)/$TARGET/logs/available_sources.txt
# Check log rotation
ls -la /var/log/*.gz /var/log/**/*.gz 2>/dev/null | head -20 | \
tee -a evidence/$(date +%Y%m%d)/$TARGET/logs/available_sources.txt
# Log size and date ranges
stat /var/log/auth.log 2>/dev/null | grep -E "Size|Modify" | \
tee -a evidence/$(date +%Y%m%d)/$TARGET/logs/available_sources.txt
head -1 /var/log/auth.log 2>/dev/null | tee -a evidence/$(date +%Y%m%d)/$TARGET/logs/available_sources.txt
tail -1 /var/log/auth.log 2>/dev/null | tee -a evidence/$(date +%Y%m%d)/$TARGET/logs/available_sources.txt
Authentication Log Analysis
# Auth log — successful and failed logins summary
echo "=== Authentication Events Summary ===" | \
tee evidence/$(date +%Y%m%d)/$TARGET/logs/auth/auth_summary.txt
# Failed login attempts by IP
grep "Failed password\|authentication failure\|Invalid user" \
/var/log/auth.log 2>/dev/null | \
grep -oE "from ([0-9]{1,3}\.){3}[0-9]{1,3}" | \
awk '{print $2}' | sort | uniq -c | sort -rn | head -20 | \
tee -a evidence/$(date +%Y%m%d)/$TARGET/logs/auth/failed_by_ip.txt
# Successful logins by user and source
grep "Accepted" /var/log/auth.log 2>/dev/null | \
awk '{print $9, $11}' | sort | uniq -c | sort -rn | \
tee evidence/$(date +%Y%m%d)/$TARGET/logs/auth/successful_logins.txt
# Timeline of authentication events
grep -E "Accepted|Failed|Invalid|session opened|session closed|sudo" \
/var/log/auth.log 2>/dev/null | \
awk '{print $1, $2, $3, substr($0, length($1)+length($2)+length($3)+3)}' | \
sort | tee evidence/$(date +%Y%m%d)/$TARGET/logs/auth/auth_timeline.txt
# Privilege escalation events
grep -E "sudo:|su\[|COMMAND=" /var/log/auth.log 2>/dev/null | \
tee evidence/$(date +%Y%m%d)/$TARGET/logs/auth/privesc_events.txt
# New user creation events
grep -E "useradd|adduser|usermod.*-aG sudo\|wheel" \
/var/log/auth.log /var/log/syslog 2>/dev/null | \
tee evidence/$(date +%Y%m%d)/$TARGET/logs/auth/user_changes.txt
# Off-hours access (outside 06:00-22:00)
awk '/Accepted/ {
split($3, t, ":");
hour = int(t[1]);
if (hour < 6 || hour > 22) print "[OFF-HOURS]", $0
}' /var/log/auth.log 2>/dev/null | \
tee evidence/$(date +%Y%m%d)/$TARGET/logs/auth/offhours_access.txt
echo "=== Auth Analysis Complete ==="
echo "Failed logins: $(grep -c 'Failed password' /var/log/auth.log 2>/dev/null || echo 0)"
echo "Successful logins: $(grep -c 'Accepted' /var/log/auth.log 2>/dev/null || echo 0)"
echo "Privilege escalations: $(grep -c 'sudo:' /var/log/auth.log 2>/dev/null || echo 0)"
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 294 lines · 0 tokens per session scan A 30047d959196
log-analyst is an agent published in the GitHub repository mukul975/Threatswarm (77 stars, last pushed 4mo ago), licensed MIT. It adds 89 tokens to every session and 3,485 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
token-auditor
Fast meme coin and token security auditor. Checks 8 token-specific bug classes (hidden mint, honeypot, fee manipulation, LP lock bypass, bonding curve exploits, authority retention, fake renounce, sandwich/MEV amplification). Runs tokenscanner.py for automated red flag detection. Covers EVM (Solidity) and Solana…
validator
Finding validator. Runs the 7-Question Gate and 4-gate checklist on a described finding. Kills weak/theoretical findings fast before report writing. Prevents N/A submissions. Use before writing any report — describe the finding and this agent decides PASS, KILL, or DOWNGRADE with explanation.
web3-auditor
Smart contract security auditor. Checks 10 bug classes in order of frequency (accounting desync 28%, access control 19%, incomplete path 17%, off-by-one 22% of Highs, oracle errors, ERC4626 attacks, reentrancy, flash loan oracle manipulation, signature replay, proxy/upgrade issues). Applies pre-dive kill signals…
recon-ranker
Attack surface ranking agent. Takes recon output and hunt memory, produces a prioritized attack plan. Ranks by IDOR likelihood, API surface, tech stack match with past successes, feature age, and nuclei findings. Use after recon to decide what to test first.
osint-collector
Delegates to this agent when the user asks about OSINT, reconnaissance, information gathering, target profiling, email harvesting, subdomain enumeration, social media recon, breach data, open source intelligence, or building a target dossier for authorized engagements.
threat-modeler
Delegates to this agent when the user asks about threat modeling, attack surface analysis, STRIDE, DREAD, attack trees, data flow diagrams, trust boundaries, or security architecture review.