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 skills/mismatched/tower/libtowernpx skills add mismatched/tower --skill libtowergit clone --depth 1 https://github.com/mismatched/towerWhat 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.00000 | $0.01566 |
| Opus 5 | $0.00000 | $0.00783 |
| Sonnet 5 | $0.00000 | $0.00313 |
| Haiku 4.5 | $0.00000 | $0.00157 |
Grade A, and why
libtower scanned grade A with 0 findings 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 yesterday.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 195 lines — stays where its author put it; the contents beside it link to each section on GitHub.
libtower — Go Network Health Checks
Package: github.com/mismatched/libtower — flat package, no sub-packages.
Quick Reference
| Goal | Approach |
|---|---|
| TCP port check | &libtower.TCP{URL: u, Timeout: 5*time.Second} → TCPPortCheck(ctx) |
| TLS with client cert | Same TCP struct, set CertFile/PrivateKeyFile, call TLSPortCheck(ctx) |
| HTTP status | &libtower.HTTP{URL: url, Method: "GET"} → HTTPStatus() or Check(ctx) |
| Per-phase HTTP timing | &libtower.HTTPTrace{URL: url, Method: "GET"} → Trace() or Check(ctx) |
| TLS cert check + expiry | &libtower.HTTPS{Host: host, Timeout: 5*time.Second} → HTTPSCheck(ctx) |
| Cert expiry warning | Set WarnIfExpiringWithin → check r.Warning after hs.Check(ctx) |
| DNS resolution | libtower.DNSLookup("example.com") |
| DNS via specific server | libtower.DNSLookupFrom("example.com", "8.8.8.8") |
| ICMP ping | libtower.Ping("example.com", 1) — root required |
| WebSocket | &libtower.WebSocket{URL: "ws://...", Timeout: 5*time.Second} → WSCheck(ctx) |
| Composable checks | All types implement Checker — iterate []Checker and call Check(ctx) |
Conventions
- Pointer receivers — methods mutate the receiver, populating
Start,End,Duration - Context — all I/O methods accept
context.Context. Short-name wrappers usecontext.Background(); context-aware variants carry aContextsuffix (PingContext,DNSLookupContext,DNSLookupFromContext,HTTPStatusContext,TraceContext) - URLs — TCP expects
*url.URLwith atcp://scheme:url.Parse("tcp://example.com:443") - Timing — every struct has
Start,End,Durationset automatically by the check method
Core Types
Result
type Result struct {
OK bool
Duration time.Duration
Data CheckData // PingData, DNSData, CertData, or nil
Warning error // non-nil on soft warnings (cert expiring)
Error error
}
Checker Interface
type Checker interface {
Check(ctx context.Context) Result
}
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.
- yesterday First seen · 195 lines · 0 tokens per session scan A 31b2d7d6a979
libtower is a skill published in the GitHub repository mismatched/tower (24 stars, last pushed 2mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,566 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
nightly-system-log-review
Review system and application logs for errors/warnings over the last 24 hours, filter known noise, and deliver a consolidated health report via email (AgentMail). Use when running a nightly or periodic system health check, log audit, or error review cron job.
agentic-devops
Production-grade agent DevOps toolkit — Docker, process management, log analysis, and health monitoring. Built by engineers who run production.
alert-rule-troubleshoot
This skill should be used when the user reports that an alert rule is "not firing", "no alert was sent", "the rule didn't trigger", "the rule isn't working", "it should have alerted but didn't", "why didn't I get an alert", "alert rule not firing", or wants to diagnose why a specific alert rule failed to produce an…
generate-message-template
Generate or modify Nightingale (n9e) alert notification message templates. Use when the user asks to write a notification template, change the message format, add hostname/recovery value/severity, or create DingTalk/Feishu/Lark/email/SMS/voice templates.
ops-troubleshooting
This skill should be used when the user asks to "troubleshoot", "diagnose", "debug alert", "investigate incident", "locate a fault", "investigate an alert", "diagnose a problem", "fix an issue", "check alerts", "analyze alerts", "root cause analysis", "check metrics", "check logs", or discusses…
import-prom-rule
Bulk import of a Prometheus alert rule YAML file (create a whole set of rules at once). Dedicated to handling a remote URL or local YAML text, automatically parsing the three formats groups / a plain rules array / a single rule. ⚠️ Do not use this skill for single-rule creation — when the user describes a single alert…