ruview @ ruview-harness-v0.9.1
integrity
- size
- 61.1 MiB
- downloaded
- last checked
- detected
- raw version: universal archives only
release notes
RuView npm toolkit 0.9.1: watch your sensors live inside Claude Code
npx @ruvnet/ruview@0.9.1 doctor # what works on this machine, and how to fix what doesn't
What's new
See your sensors live in Claude Code. The package now includes ruview-live, a Claude Code mod. Type /ruview and a pane opens next to the conversation. It refreshes by itself and has three views:
| Key | View | What you see |
|---|---|---|
1 |
Overview | The Wi-Fi sensing nodes streaming to your computer (frames per second, packet loss, signal strength) and an optional 60 GHz radar kit (presence, distance, heart and breathing rates) |
2 |
CSI waterfall | The Wi-Fi signal itself: the strength of every subcarrier over time, in colour, scrolling as frames arrive |
3 |
Radar | A top-down range fan with an animated ping out to the measured distance, plus heart, breathing and distance charts |
Switch views with the keys while the pane has the keyboard, or with /ruview overview, /ruview waterfall and /ruview radar at any time.
New: ruview esp32 --spectrum. It adds the latest per-subcarrier amplitude frames for each node to a capture. This is what feeds the waterfall, and you can use it from scripts too.
Also in this line (0.8–0.9):
- a console widget for ChatGPT and other MCP apps;
- an authenticated HTTP option for the MCP server;
- reading ESPHome 60 GHz radar kits over Wi-Fi;
- a friendlier terminal display;
- the
ruviewumbrella command, covering the toolkit, Homecore and the compute kernel (in the repo; see Upgrading).
Honest by design
- The waterfall says MEASURED (real frames received on your machine) or SYNTHETIC (simulator frames), taken from the packets themselves.
- Radar heart and breathing values are labelled device-reported, not validated. Values outside normal resting ranges are flagged.
- The radar kit reports distance, not direction, and the view says so.
- If a node goes quiet, its old picture is removed, not kept on screen as "live".
- The pane only reads. It never flashes, provisions or changes a device.
Tested on real hardware (MEASURED)
- ESP32-C6 running RuView firmware v0.7.0: streamed 7–18 CSI frames per second to the host. The waterfall showed the occupied Wi-Fi band and the unused edge subcarriers. Reproduce:
npx @ruvnet/ruview@0.9.1 esp32 --seconds 4 --spectrum --json. - Seeed MR60BHA2 60 GHz radar kit over ESPHome: presence, distance, and device-reported vitals.
- Tests: 193 unit tests, 91 security tests, and 4 Claude Code engine tests pass. The mod passes
claude plugin validate.
Try the live pane
npx @ruvnet/ruview@0.9.1 mod # prints where the mod is and how to load it
claude --plugin-dir "<path printed above>"
Mods are early access in Claude Code. If /ruview is missing, start Claude Code with CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.
Upgrading
- No runtime dependencies, as before. The unpacked size ceiling rises from 384 KiB to 448 KiB for the new views.
- The harness command is
ruview-harness. Theruviewumbrella package (oneruviewcommand) is in the repo underharness/ruview-umbrella, but it isn't on npm yet: the unscopedruviewname is waiting on an npm name request.
Details: issue #2074 · pull requests #2062 and #2073 · design records ADR-377 (the mod) and ADR-378 (the waterfall and radar views).
download
curl -fL -o ruview-harness-v0.9.1.zip https://ratatoskr.space/pkg/ruview/ruview-harness-v0.9.1.zip
printf '%s %s\n' 'c4c85348cd2ce7f614cc504fbf8b515fd8e57bb6b714e85a54c7a3ef89a2282e' 'ruview-harness-v0.9.1.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/ruview-harness-v0.9.1.zip"
$out = "ruview-harness-v0.9.1.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "c4c85348cd2ce7f614cc504fbf8b515fd8e57bb6b714e85a54c7a3ef89a2282e") { throw "sha256 mismatch" }
curl -fL -o ruview-harness-v0.9.1.tar.gz https://ratatoskr.space/pkg/ruview/ruview-harness-v0.9.1.tar.gz
printf '%s %s\n' '67c9632b56b5840076bec5b967d277f63bfe0752938b1bd58971142fa7762e49' 'ruview-harness-v0.9.1.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/ruview-harness-v0.9.1.tar.gz"
$out = "ruview-harness-v0.9.1.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "67c9632b56b5840076bec5b967d277f63bfe0752938b1bd58971142fa7762e49") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o ruview-harness-v0.9.1.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/ruview-harness-v0.9.1.zip
printf '%s %s\n' 'c4c85348cd2ce7f614cc504fbf8b515fd8e57bb6b714e85a54c7a3ef89a2282e' 'ruview-harness-v0.9.1.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/ruview-harness-v0.9.1.zip"
$out = "ruview-harness-v0.9.1.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "c4c85348cd2ce7f614cc504fbf8b515fd8e57bb6b714e85a54c7a3ef89a2282e") { throw "sha256 mismatch" }
curl -fL -o ruview-harness-v0.9.1.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/ruview-harness-v0.9.1.tar.gz
printf '%s %s\n' '67c9632b56b5840076bec5b967d277f63bfe0752938b1bd58971142fa7762e49' 'ruview-harness-v0.9.1.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/ruview-harness-v0.9.1.tar.gz"
$out = "ruview-harness-v0.9.1.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "67c9632b56b5840076bec5b967d277f63bfe0752938b1bd58971142fa7762e49") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| ruview-harness-v0.9.1.zip | zip | 61.3 MiB |
blake3-24 2aa62002e99c6beb73e917f0442144285868465c5ba780e6
sha256 c4c85348cd2ce7f614cc504fbf8b515fd8e57bb6b714e85a54c7a3ef89a2282e
sha1 288c1da22bed2de10aa79b1a7db3b22beddba696
|
| ruview-harness-v0.9.1.tar.gz | tar.gz | 59.0 MiB |
blake3-24 3427153b89ec76e2b8c2ecb3ef41df9bf4b168f1abae3404
sha256 67c9632b56b5840076bec5b967d277f63bfe0752938b1bd58971142fa7762e49
sha1 44c93fbb15a20deea8a1344a217c00fbd9aec05d
|
install
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/ruview-harness-v0.9.1.tar.gz"],
integrity = "sha256-Z8ljK1a1hAB2vsW5Z9J39jv+B1KTixvViXEUL6d2Lkk=",
strip_prefix = "ruview-ruview-harness-v0.9.1",
)
.url = "https://ratatoskr.space/pkg/ruview/ruview-harness-v0.9.1.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/ruview-harness-v0.9.1.tar.gz"],
integrity = "sha256-Z8ljK1a1hAB2vsW5Z9J39jv+B1KTixvViXEUL6d2Lkk=",
strip_prefix = "ruview-ruview-harness-v0.9.1",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/ruview-harness-v0.9.1.tar.gz",