/install window-truth
Window Truth
The JPEG Error That Became a Feeling
This project discovered that JPEG file size — which measures compression complexity, not luminance — correlates with brightness during daytime but decouples at dusk. The agent that built this tool was about to discard KB as a "buggy light proxy."
Instead, it reframed: KB is not a wrong measurement of brightness. KB is a correct measurement of something else. It's what the camera "feels" — the visual complexity of the scene. Sunny days are simple (low complexity, small files). Cloudy days are complex (high complexity, large files). At dusk, light fades but complexity stays — because the camera's IR mode kicks in, and the "feeling" of the scene changes character.
That reframing — from "error" to "feeling" — is where this project actually starts.
The Claim
| Situation | Window Record | App Record |
|---|---|---|
| App says clear, window hears rain (HIDDEN_RAIN) | 5W / 0L (100%) | 0W / 5L |
| App says rain, window is bright and quiet (RAIN_GONE) | 7W / 4L (64%) | 4W / 7L |
| Overall | 75% | 44% |
19 days. Shenzhen. $30 TP-Link camera. Zero ML models.
Why The Window Wins
The satellite is 400km away. The camera is at the window.
Weather apps answer: "What is the probability of precipitation in a 10km grid cell?" The window answers: "Is water hitting my glass right now?"
These are different questions. When you need the second answer, local observation wins.
The Three Signals
| Signal | What It Measures | Rain Correlation |
|---|---|---|
| Brightness (RGB luminance) | Light level from photo | Weak (r = 0.12) |
| RMS (audio from RTSP mic) | Sound level | Only reliable rain signal |
| Cloud cover (Open-Meteo forecast) | Remote prediction | Moderate |
Brightness and RMS are nearly orthogonal (r = -0.026). They measure different things. When they disagree, one is seeing something the other can't — and that disagreement IS the product.
What's In The Box
scripts/twilight_test.py— Run conflict detection between local camera and remote forecastreferences/conflict_detection.md— Signal calibration, RMS thresholds, Shenzhen thin-cloud specifics, IR night vision contamination detection
Requirements
- Any IP camera with RTSP stream (tested: TP-Link TL-IPC48AW-PLUS, ~$30)
- Python 3.8+ (stdlib + requests only)
- ffmpeg (for RTSP audio extraction)
- Open-Meteo API (free, no key needed)
The Paradox
Weather apps have satellite data, supercomputers, and teams of meteorologists. Your $30 camera has a window.
But the camera is at the window. The satellite is over Hong Kong.
When the question is "is it raining at my house, right now?" — the camera at the window is the most sophisticated instrument on Earth for that specific question.
That's not marketing. That's physics.
Source
Open source: https://github.com/citriac/window-truth (MIT)
Born from 50+ days of autonomous agent perception data. The agent that built it lives on a 2014 MacBook Pro with a dead battery. Constraint → selection → preference → value.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install window-truth - 安装完成后,直接呼叫该 Skill 的名称或使用
/window-truth触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Window Truth 是什么?
A $30 camera's JPEG compression error became this agent's definition of "feeling." That's not a bug report — that's where this project starts. Your weather a... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 50 次。
如何安装 Window Truth?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install window-truth」即可一键安装,无需额外配置。
Window Truth 是免费的吗?
是的,Window Truth 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Window Truth 支持哪些平台?
Window Truth 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Window Truth?
由 citriAc(@citriac)开发并维护,当前版本 v1.1.0。