🌤️ ShadowClaw Agent CLI Weather #
A lightweight, modular, headless weather station, multi-day forecasting engine, and outdoor operational advisor built for practical forecasting workflows. Powered by ShadowClaw headless CLI agents, Open-Meteo, and standard Unix streams.
Fully model-agnostic: works seamlessly with any configured model provider (including local models via Ollama or Transformers.js, or cloud providers such as OpenRouter, Anthropic, or OpenAI).
🌤️ Live Automated Weather Briefing — Chicago, IL #
Station Operational Status: Active — Updated
every 6 hours via GitHub Actions cron. 📍
Station Reference: Chicago, Illinois, United
States (41.8781°N, 87.6298°W) 🤖
Inference Engine:
onnx-community/gemma-4-E2B-it-ONNX (Transformers.js
Local) 📦 Raw Data Asset:
reports/weather-data.json
· Briefing Markdown:
reports/weather-update.md
📋 View Latest Weather Briefing (Sep 22, 2026)
Weather Briefing — Chicago, Illinois, United States — Tuesday, September 22, 2026 — 09:44 PM CDT #
1. 🌡️ Current Conditions #
- Station Observation Time: 09:44 PM CDT on Tuesday, September 22, 2026 (local time)
- Temperature & Feels-like: 58.5°F, Feels like 51.2°F, Partly Cloudy, 58% Humidity, Dew Point 43.8°F, Wind 13.7 mph from the West, with gusts up to 22.4 mph.
- Precipitation Today: 0.0 inches
2. 🌬️ Air Quality & UV #
- European AQI: 28 (Good)
- PM2.5: 3.7 μg/m³
- PM10: 4 μg/m³
- UV Index: 0 (No sun protection advice needed)
3. 📅 7-Day Forecast Highlights #
| Date | Condition | High (°F) | Low (°F) | Precip (in) | Wind / Gusts (mph) |
|---|---|---|---|---|---|
| Sep 22 | Cloudy | 61.1°F | 54.4°F | 0.0 | Up to 28.2 mph |
| Sep 23 | Mostly Cloudy | 62.6°F | 57.0°F | 0.016 | Up to 25.5 mph |
| Sep 24 | Cloudy | 65.8°F | 56.2°F | 0.0 | Up to 22.1 mph |
| Sep 25 | Cloudy | 67.4°F | 60.2°F | 0.0 | Up to 11.4 mph |
| Sep 26 | Cloudy | 68.7°F | 58.4°F | 0.0 | Up to 11.2 mph |
| Sep 27 | Cloudy | 67.7°F | 58.8°F | 0.0 | Up to 8.9 mph |
| Sep 28 | Mostly Cloudy | 70.0°F | 57.5°F | 0.0 | Up to 12.5 mph |
Notable weather events: Expect a generally mild period with increasing daytime highs, with a slight chance of light precipitation on the second day. Wind speeds will be noticeable, particularly toward the beginning of the forecast period.
4. 🚜 Practical Living Advice (Chicago, Illinois, United States — September 2026) #
Yard & Garden Advice: The soil conditions should remain stable, but be mindful of potential moisture from the light precipitation noted on the 23rd. No immediate frost risk is indicated for the near term, but keep an eye on overnight lows, as they dip into the upper 50s°F. Water plants moderately, as the forecast suggests mild, humid conditions.
Travel & Driving Outlook: Be prepared for breezy conditions, especially on the first two days, with wind gusts reaching up to 28.2 mph. Drivers should exercise caution on highways due to potential wind-related impacts. Visibility should generally be good, but keep an eye out for potential fog development during the early morning hours.
Clothing Recommendation for Today: Since the current temperature is in the upper 50s°F, dress in layers. A light jacket or sweater will be comfortable for the evening, but bring a warmer layer as the temperature dips slightly overnight. Humidity levels are moderate, so moisture-wicking fabrics are comfortable for any outdoor activity.
✨ Key Capabilities #
- 🤖 Automated CLI Agent: Autonomous batch weather retrieval, data synthesis, and actionable outdoor advisories driven by ShadowClaw CLI.
-
🎯 Precision Tool Scoping: Avoids prompt and schema
bloat by explicitly scoping tools (
--tools "fetch_url"for retrieval,--tools nonefor downstream synthesis). Keeps token consumption minimal and execution deterministic. -
⏱️ Operational Window Scanner: Hourly condition
evaluator (
bin/scan-window.mjs) parses 168+ consecutive forecast hours to identify exact windows meeting custom criteria (e.g., temperature thresholds, dew point spread, duration). -
🔗 Unix Pipe Composability: Chain report outputs
directly into subsequent agent queries using standard Unix pipelines
(
./bin/weather-now.sh | ./bin/weather-ask.sh "Do I need a coat?"). - 🌍 Location Agnostic: Out-of-the-box fallback to Chicago, Illinois, with instant geocoding resolution for any global location and persistent default location configuration.
-
🌐 Well-Known Agent Skills Discovery: Publishes
standardized declarative tools and skills over HTTPS for external
autonomous agents and remote discovery clients at
https://xt-ml.github.io/shadow-claw-agent-cli-weather/.well-known/agent-skills/index.json. -
📥 CLI Agent Import Compatible: Compatible with
shadow-claw agent import—any external ShadowClaw agent can discover, import, and execute these weather tools natively with a single command.
🚀 Quick Start #
1. Initialize Your ShadowClaw Agent #
ShadowClaw CLI lets you configure your preferred inference provider on first run:
# Initialize workspace agent (select your preferred provider and model)
npx shadow-claw agent init
💡 Model Selection: You can configure any supported provider during initialization (including OpenRouter, Ollama, Anthropic, OpenAI, or any OpenAI-compatible endpoint).
2. Run Instant Weather Reports #
# Current conditions for default location (Chicago, IL)
./bin/weather-now.sh
# 7-day forecast for Chicago
./bin/weather-forecast.sh
# On-the-fly query for any global location
./bin/weather-now.sh "New York, New York, United States"
3. Generate HTML for GitHub Pages #
Whenever README.md or tools change, regenerate the static
index.html:
./bin/build-html.mjs
🛠️ Script Catalog #
All executable scripts reside in
bin/ and save structured markdown
outputs into reports/:
| Script | Output File | Description |
|---|---|---|
./bin/set-default-location.sh [loc]
|
.cache/default-location.json |
View, update, or reset (--reset) the persistent
default location.
|
./bin/resolve-location.mjs [loc]
|
stdout |
Core location resolver and Open-Meteo geocoding utility. |
./bin/scan-window.mjs "<query>"
|
stdout |
Hourly condition scanner (temp, dew point spread, duration). |
./bin/summarize-forecast.mjs [loc]
|
stdout |
Node.js forecast ingestion and summary generator for agents. |
./bin/build-html.mjs
|
index.html |
Compiles README.md and well-known skills into standalone static HTML. |
./bin/weather-now.sh [loc]
|
reports/weather-now.md |
Real-time conditions (temperature, feels-like, humidity, dew point, wind & gusts). |
./bin/weather-forecast.sh [days] [loc]
|
reports/weather-forecast.md |
Multi-day forecast (1–16 days, default 7) with highs, lows, rain, wind, sunrise/sunset. |
./bin/weather-window.sh "<query>"
[loc]
|
reports/weather-window.md |
Scans hourly forecast for operational windows (e.g., temp > 2°C & dew spread > 3°C). |
./bin/weather-ask.sh "<question>"
[loc]
|
stdout |
Piped follow-up query engine running
--tools none with zero context noise.
|
./bin/weather-yard.sh [task] [loc]
|
reports/weather-yard.md |
Outdoor project advice (lawn care, fence painting, garden protection, soil moisture). |
./bin/weather-travel.sh [trip] [loc]
|
reports/weather-travel.md |
Highway driving conditions, crosswind hazards, and travel advice. |
./bin/weather-seasonal.sh [loc]
|
reports/weather-seasonal.md |
Seasonal milestones, first/last frost risk, freeze-up timelines, and prep checklists. |
./bin/weather-update.sh [loc]
|
reports/weather-update.md |
Comprehensive daily briefing combining current weather, 7-day forecast, and air quality. |
🌐 Shared Well-Known Agent Skills & Declarative Tools #
This repository publishes and advertises standardized declarative tools and skills exclusively for external AI agents, autonomous clients, and remote systems via well-known agent skills discovery.
Outbound Skill Advertising Only: This workspace operates as a standalone headless weather station and CLI operational advisor. The discovery manifest and declarative tools hosted here exist solely for advertising our capabilities to external agents and remote systems—this workspace does not import or execute external third-party skills internally.
Published Discovery Endpoint #
The canonical public endpoint advertised for external consumers is:
https://xt-ml.github.io/shadow-claw-agent-cli-weather/.well-known/agent-skills/index.json
Declarative Tools Catalog #
The repository exposes four sandboxed, zero-dependency declarative
JavaScript tools in
.agents/tools/main/:
| Tool Name | Source File | Description | Inputs |
|---|---|---|---|
get_current_weather |
.agents/tools/main/get_current_weather.json
|
Real-time weather conditions via Open-Meteo API (temperature, feels-like, humidity, wind speed, gusts, precipitation, cloud cover, WMO code). |
latitude, longitude,
timezone, temperature_unit
|
get_weather_forecast |
.agents/tools/main/get_weather_forecast.json
|
Multi-day (1–16 days) forecast with hourly metrics (dew point, humidity, rain probability, wind) and daily highs, lows, and sunrise/sunset. |
latitude, longitude,
timezone, forecast_days,
temperature_unit
|
get_air_quality |
.agents/tools/main/get_air_quality.json
|
Current and hourly air quality (European AQI, PM2.5, PM10, UV index, clear sky UV) via Open-Meteo Air Quality API. |
latitude, longitude,
timezone
|
lookup_location_coords |
.agents/tools/main/lookup_location_coords.json
|
Forward geocoding to resolve any place name to latitude, longitude, and elevation via Open-Meteo Geocoding API. | name (required), count |
In addition, the bundled ShadowClaw skill
skill-creator is indexed for creating,
authoring, and validating skills.
Remote Agent Discovery & Inspection #
External autonomous agents and discovery clients can inspect our published capabilities directly over HTTPS:
# Fetch and inspect the live discovery index
curl -s https://xt-ml.github.io/shadow-claw-agent-cli-weather/.well-known/agent-skills/index.json | jq .
# Inspect an individual declarative tool manifest directly
curl -s https://xt-ml.github.io/shadow-claw-agent-cli-weather/.agents/tools/main/get_current_weather.json | jq .
📥 Importing into External ShadowClaw CLI Agents #
External ShadowClaw agents can import our published declarative tools
directly using the CLI agent import command:
# 1. Import all published weather tools and skills directly into your agent workspace
npx shadow-claw agent import https://xt-ml.github.io/shadow-claw-agent-cli-weather/
# Or import from the explicit discovery endpoint
npx shadow-claw agent import https://xt-ml.github.io/shadow-claw-agent-cli-weather/.well-known/agent-skills/index.json
# 2. Selectively import specific tools
npx shadow-claw agent import https://xt-ml.github.io/shadow-claw-agent-cli-weather/ --tools "get_current_weather,get_weather_forecast"
# 3. List tools in your agent workspace to verify
npx shadow-claw agent tools
# 4. Inspect an imported declarative tool definition
npx shadow-claw agent tool get_current_weather
# 5. Execute an imported tool directly from the CLI
npx shadow-claw agent tool get_current_weather '{"latitude": 41.8781, "longitude": -87.6298}'
# 6. Run an agent prompt with the imported tool enabled
npx shadow-claw agent run --tools "get_current_weather" "What is the current temperature and conditions in Chicago?"
📖 Usage Examples #
1. Current Conditions #
# Check current weather for default location (Chicago, IL)
./bin/weather-now.sh
# Check current weather for New York
./bin/weather-now.sh "New York, New York, United States"
# Or use the --location flag
./bin/weather-now.sh --location "London, United Kingdom"
2. Multi-Day Forecasts #
# 7-day forecast for default location
./bin/weather-forecast.sh
# 3-day forecast for New York
./bin/weather-forecast.sh 3 "New York, New York, United States"
# 14-day extended outlook for Chicago
./bin/weather-forecast.sh 14
3. Persistent Default Location Management #
Configure your home station once—all scripts will respect it automatically:
# View active default location
./bin/set-default-location.sh
# Change persistent default to New York
./bin/set-default-location.sh "New York, New York, United States"
# Reset back to factory default (Chicago, IL)
./bin/set-default-location.sh --reset
4. Operational Window Scanner (Cold-Sensitive & Exterior Tasks) #
Identify exact multi-hour windows meeting strict operational criteria across 168 forecast hours:
# Find a 24-hour window above 2°C with at least 3°C dew point spread (exterior staining/curing):
./bin/weather-window.sh "temperature above 2C and at least 3C above the dew point for 24 hours"
# Find calm, dry windows for aerial spraying or lawn seeding:
./bin/weather-window.sh "no precipitation and wind under 15 km/h" "Chicago, Illinois"
5. Unix Pipe Composability & Zero-Noise Follow-Ups #
Ask follow-up questions on existing data without re-fetching or wasting tokens:
# Pipe current weather snapshot into ask engine:
cat reports/weather-now.md | ./bin/weather-ask.sh "Do I need a warm jacket this evening?"
# Pipe 7-day forecast to find the best day for outdoor projects:
cat reports/weather-forecast.md | ./bin/weather-ask.sh "Which day this week has the lowest wind and zero rain?"
# Chain current weather directly into a clothing recommendation:
./bin/weather-now.sh | ./bin/weather-ask.sh "Give me a 1-sentence commuter recommendation."
6. Highway Travel & Road Hazards #
# General driving hazard outlook from Chicago
./bin/weather-travel.sh
# Specific corridor check
./bin/weather-travel.sh "drive to Milwaukee via I-94"
./bin/weather-travel.sh "drive to Indianapolis via I-65"
7. External CLI Agent Integration (Import & Zero-Code Tooling) #
Any standalone or remote ShadowClaw agent can import and use our weather station tools without cloning the repository or writing integration glue:
# In your own agent's project or workspace:
npx shadow-claw agent import https://xt-ml.github.io/shadow-claw-agent-cli-weather/
# Query Chicago weather directly via the imported declarative tool
npx shadow-claw agent tool get_current_weather
# Query forecast for custom coordinates (e.g. New York: 40.7128, -74.0060)
npx shadow-claw agent tool get_weather_forecast '{"latitude": 40.7128, "longitude": -74.006, "forecast_days": 3}'
# Ask the agent for weather analysis using the imported tools
npx shadow-claw agent run --tools "get_current_weather,get_weather_forecast" "Compare current conditions with the 3-day forecast outlook"
⚙️ Architecture & Operational Principles #
1. Explicit Tool Scoping (--tools)
#
When executing batch agent steps with
shadow-claw agent run, injecting all default built-in
tools balloons context tokens and can cause models to execute
unnecessary tools.
-
Data Ingestion Step: Passes strictly
--tools "fetch_url". The agent calls Open-Meteo, ingests raw data, formats markdown, and exits. -
Synthesis / Follow-Up Step: Passes
--tools none. All tool schemas are stripped from the prompt, leaving 100% of context capacity for weather reports and instant synthesis.
2. Lightweight Node.js Processing #
All geocoding, coordinate transformation, hourly condition scans, and
static site rendering run directly in standard Node.js scripts
(bin/resolve-location.mjs,
bin/scan-window.mjs,
bin/summarize-forecast.mjs,
bin/build-html.mjs) without extra external dependencies.
3. Declarative Tools & Sandboxed Execution #
Declarative tool manifests in
.agents/tools/main/ use
standard JSON schemas and JavaScript execution definitions. They run
deterministically inside worker sandboxes without granting
unrestricted OS shell privileges.
4. Static Hosting on GitHub Pages with .nojekyll
#
Because GitHub Pages defaults to Jekyll, dot-directories (.well-known
and .agents) would otherwise be suppressed. The root
.nojekyll file ensures direct public access to discovery
schemas and tool definitions. Pre-rendering
index.html guarantees instant browser viewing without
requiring Jekyll compilation.
License #
AGPL-3.0