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 skills add halfmoon-labs/halfmoon --skill weathergit clone --depth 1 https://github.com/halfmoon-labs/halfmoonWrote 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/skills/halfmoon-labs/halfmoon/weather)<a href="https://agentmods.dev/skills/halfmoon-labs/halfmoon/weather"><img src="https://agentmods.dev/badge/skills/halfmoon-labs/halfmoon/weather/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/halfmoon-labs/halfmoon/weather"><img src="https://agentmods.dev/badge/skills/halfmoon-labs/halfmoon/weather.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00017 | $0.00726 |
| Opus 5.5 | $0.00007 | $0.00290 |
| Sonnet 5.5 | $0.00003 | $0.00145 |
| Haiku 4.5 | $0.00002 | $0.00073 |
Grade A, and why
weather 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 2mo 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.
metadata: {"nanobot":{"emoji":"🌤️","requires":{"bins":["curl"]}}} This is a copy
100% identical to weather — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 60 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Weather
Use the most reliable location match first. For Chinese city names or other non-Latin input, prefer wttr.in with the original query because it resolves native names directly. Use Open-Meteo for structured current conditions and forecasts only after you have confirmed the exact city.
Accuracy Rules
- Always restate the matched location, region/country, and observation time in the final answer.
- Do not trust the first geocoding hit blindly. Check
country,admin1,admin2, andpopulation. - For Chinese city queries, do not send Hanzi directly to Open-Meteo geocoding unless the top result is obviously correct. Prefer
wttr.inwith the original Chinese name, or geocode the English/pinyin city name instead. - If multiple plausible matches remain, ask a follow-up question or state the assumption clearly.
- Use
timezone=autowhen calling Open-Meteo so the reported time matches the location.
wttr.in (best for direct city-name queries)
Quick current conditions:
curl -s "https://wttr.in/London?format=%l:+%c+%t+%h+%w"
Chinese city example:
curl -s "https://wttr.in/%E6%88%90%E9%83%BD?format=%l:+%c+%t+%h+%w"
curl -s "https://wttr.in/%E4%B8%8A%E6%B5%B7?format=%l:+%c+%t+%h+%w"
JSON output if you need more detail:
curl -s "https://wttr.in/Chengdu?format=j1"
Tips:
- URL-encode spaces:
New York->New+York - URL-encode non-ASCII text before sending the request
- Use
?mfor metric units and?ufor US units
Open-Meteo (best for structured forecasts)
- Geocode the city and verify the returned location metadata:
curl -s "https://geocoding-api.open-meteo.com/v1/search?name=Chengdu&count=3&language=en&format=json"
- Query current weather and today's forecast with the verified coordinates:
curl -s "https://api.open-meteo.com/v1/forecast?latitude=30.66667&longitude=104.06667¤t=temperature_2m,relative_humidity_2m,weather_code,wind_speed_10m&daily=weather_code,temperature_2m_max,temperature_2m_min&forecast_days=1&timezone=auto"
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.
- 2mo ago First seen · 60 lines · 17 tokens per session scan A 416c125afb7d
weather is a skill published in the GitHub repository halfmoon-labs/halfmoon (11 stars, last pushed 6mo ago), licensed MIT. It adds 17 tokens to every session and 726 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). It is 100% identical to weather, differing in 0 lines, and is treated as a copy.
weather compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| weatherhalfmoon-labs/halfmoon | Skill | 11 | 6mo ago | MIT | A | 17 | Claude Code, Codex |
| gke-compute-classesgoogle/skills | Skill | 23k | today | Apache-2.0 | A | 83 | Claude Code, Codex |
| jetson-diagnosticNVIDIA/skills | Skill | 3.9k | today | Apache-2.0 | A | 30 | Claude Code, Codex |
| holoscan-install-wheelNVIDIA/skills | Skill | 3.9k | today | Apache-2.0 | A | 34 | Claude Code, Codex |
| offensive-z-waveSnailSploit/Claude-Red | Skill | 10k | 25d ago | MIT | A | 113 | Claude Code, Codex |
| doca-socket-relayNVIDIA/skills | Skill | 3.9k | today | Apache-2.0 | A | 236 | Claude Code, Codex |
| hsb-flashNVIDIA/skills | Skill | 3.9k | today | Apache-2.0 | B | 94 | Claude Code |