Mindket

RuView

Newversion 2 · updated
Star103k

Overview

ruvnet’s open source WiFi sensing platform. Low-cost ESP32 boards read ordinary WiFi signals to estimate presence, movement, breathing and heart rate with no camera. A Claude Code plugin and an MCP server let your agent flash, calibrate and check a setup.

RuView is an open-source project on GitHub in the Developer category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

At a glance

Runs in
  • Claude Code: a plugin from the maker’s marketplace with seven commands, nine skills and three agents. The npm toolkit’s MCP server and a live sensing pane called ruview-live are separate installs
  • Codex: the same seven commands as prompts you copy into its prompt folder, an AGENTS.md of project rules, and a read-only agent run from the npm toolkit
  • ChatGPT: the MCP server over HTTP through an HTTPS tunnel, with a console widget that shows captures
  • Cursor and other MCP clients: the stdio MCP server, and a second one, rvagent, that the user guide says Cursor can call
Start with
export RUVIEW_API_TOKEN=$(openssl rand -hex 32)
docker run -p 127.0.0.1:3000:3000 -p 127.0.0.1:3001:3001 -e RUVIEW_API_TOKEN ruvnet/wifi-densepose:latest

Platform

Claude CodeCoding agent
CodexCoding agent
ChatGPTAI chat
DockerContainer
CursorCode editor

About

What it is

RuView is an open source WiFi sensing platform made by ruvnet. A router fills a room with radio waves, and people change them when they move or breathe. A low-cost ESP32 board records those changes as Channel State Information (CSI). RuView’s software turns the record into presence, movement, breathing and heart-rate estimates, with no camera. This listing covers the software and the part that touches your coding agent. That part is a Claude Code plugin, Codex prompts, an npm toolkit with an MCP server and a live sensing pane.

  1. A router fills the room with radio waves
  2. An ESP32 board records how people change them
  3. Signal processing estimates presence, motion and vitals
  4. The server shares them over REST, WebSocket and MQTT
  5. A dashboard, Home Assistant or your agent reads them

Who it suits

Makers and developers who want to sense a room without a camera and have an ESP32 board or will buy one. Home Assistant users get presence and motion from the MQTT feed. Researchers get a Rust and Python codebase with a published benchmark and a one-command proof. Developers who work with Claude Code or Codex get commands that walk through flashing, provisioning, sensing apps, training and verification, and the npm toolkit adds a room-calibration tool. The README labels the project beta and says its applications are research and prototypes.

Who uses it, and how
IndustryWho uses itHow they use itExample
Smart homesHome Assistant usersRun the sensing server with the MQTT flag and read presence, motion and person count as entitiesA user points the server at a Mosquitto broker, and Home Assistant makes a device for each node within about five seconds.
Care and wellbeingBuilders of monitoring prototypesTry fall alerts, night-time activity and breathing during sleep without a wearableA builder puts one ESP32-S3 in a bedroom and treats the output as a prototype, as the README advises.
Retail and officesFacility teamsRead foot traffic, dwell time and queue length from existing WiFi plus an ESP32A shop owner reads dwell time by zone and queue length with no camera in the shop.
Research and teachingStudents and WiFi sensing researchersReplay the deterministic proof and read the benchmark notesA student runs the proof script and checks that it prints VERDICT: PASS.

Skip it if you need a medical-grade reading. The README says vital-sign and pose output needs independent validation on your own hardware, room and people before any operational use. It also calls the live 17-keypoint pose model first-cut and below its own target, so skip it if pose from one board is the point.

Where to use it

The docs write full steps for Claude Code and Codex, and give ChatGPT and other MCP clients a way in. The sensing server itself runs in Docker or from a Rust build.

  • Claude Code: a plugin from the maker’s marketplace with seven commands, nine skills and three agents. The npm toolkit’s MCP server and a live sensing pane called ruview-live are separate installs
  • Codex: the same seven commands as prompts you copy into its prompt folder, an AGENTS.md of project rules, and a read-only agent run from the npm toolkit
  • ChatGPT: the MCP server over HTTP through an HTTPS tunnel, with a console widget that shows captures
  • Cursor and other MCP clients: the stdio MCP server, and a second one, rvagent, that the user guide says Cursor can call
  • Home Assistant: an MQTT feed that makes one device for each node
  • Python: two PyPI packages with the signal-processing code and clients

Hardware commands only work on the machine the board is plugged into. A cloud agent cannot reach your USB ports.

How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder, with each agent’s and platform’s steps from the maker’s docs. The quickest start needs no hardware: a Docker image that runs on simulated data.

What you need first
NeedDetail
DockerDocker 20 or newer runs the demo image on simulated data
An ESP32 boardFor live sensing the README recommends an ESP32-S3. A Windows or macOS laptop’s WiFi gives only coarse RSSI presence and motion. The user guide says Linux has no RSSI source yet
Python 3.10 or newer with esptoolTo flash a board, installed with pip install esptool pyserial. The firmware README lists esptool 5.x or newer
Node.js 20 or newerFor the npm toolkit, its MCP server and the Claude Code pane
RustOnly for a build from source. The user guide lists extra desktop packages for Debian and Ubuntu
  1. Run the Docker demo below. The container exits with code 64 unless RUVIEW_API_TOKEN is set.
  2. Open http://localhost:3000 and look at the dashboard.
  3. In Claude Code, add the plugin marketplace and install the plugin.
  4. Type /ruview-start and pick the Docker demo, a repo build or a live ESP32.
export RUVIEW_API_TOKEN=$(openssl rand -hex 32)
docker run -p 127.0.0.1:3000:3000 -p 127.0.0.1:3001:3001 -e RUVIEW_API_TOKEN ruvnet/wifi-densepose:latest
/plugin marketplace add ruvnet/RuView
/plugin install ruview@ruview

Claude Code can also take the MCP server, with the line the user guide gives.

claude mcp add ruview -- npx -y @ruvnet/ruview@0.9.1 mcp start

For a live board, the firmware README has you flash a release bundle with esptool, then give the board your WiFi details without reflashing it.

printf '%s\n' 'YourPass' > ~/.wifi-pass && chmod 600 ~/.wifi-pass
python firmware/esp32-csi-node/provision.py --port COM7 \
  --ssid "YourSSID" --password-file ~/.wifi-pass --target-ip 192.168.1.20

How to use it

In Claude Code, the plugin’s commands run the work. The Codex prompts mirror them. The README gives each one’s job.

The plugin’s commands
CommandWhat it does
/ruview-startOnboarding: pick the Docker demo, a repo build or a live ESP32
/ruview-flashBuild and flash ESP32 firmware
/ruview-provisionSet WiFi details, the sink IP, the channel, the MAC filter and mesh slots on a node
/ruview-appRun a sensing application: presence, vitals, pose, sleep, MAT or point cloud
/ruview-trainTrain, evaluate and publish a model, including GPU training on GCloud
/ruview-advancedUse multistatic sensing, tomography, cross-viewpoint fusion or mesh security
/ruview-verifyRun the tests, the deterministic proof and a witness bundle

Outside the agent, the npm toolkit has its own commands. Run them on the machine the board is plugged into.

npx @ruvnet/ruview doctor
npx @ruvnet/ruview devices
npx @ruvnet/ruview esp32 --seconds 10

The first checks your setup and prints a fix for each failing check. The second lists what is plugged in. The third captures what your nodes stream to this machine, with each node’s rate, loss and signal strength.

Example

You have the Docker demo running and want to see what the server answers. In a second terminal, you ask it for its health and its vital signs.

curl http://localhost:3000/health
curl http://localhost:3000/api/v1/vital-signs

The user guide says the health call answers like this in simulated mode:

{"status":"ok","source":"simulated","clients":0}

The source field says simulated, so every number on the dashboard is synthetic. The container also demands a token, so a call may need the header the guide shows on its nodes call: -H "Authorization: Bearer $RUVIEW_API_TOKEN". This demo container hears no board. The user guide says ESP32 nodes in Docker need the UDP port published, CSI_SOURCE=esp32 and a source guard such as RUVIEW_UDP_ALLOW.

For newcomers and experts

If you are new. WiFi is radio, and a body in a room changes how that radio bounces. CSI is the detailed record of those changes that some chips can report, and an ESP32-S3 is a small board that does. RuView reads the record and estimates who is there and how they breathe. Start with the Docker demo, which needs no board. It shows the dashboard and the API on simulated data, so it says nothing about how well sensing works in your room.

For experts. The server is a Rust workspace under v2. Its UDP listener binds to 127.0.0.1 by default, so nodes on your network need --udp-bind 0.0.0.0 and either --udp-allow with their address or --udp-insecure-lan. The UDP data plane is not authenticated, and the guide says to keep it off untrusted networks.

The calibration guide takes a room through an empty-room baseline of at least 600 frames, eight guided anchors, a bank of trained specialists and a live watch. A partial anchor set trains a bank with some specialists missing, and room-status shows which ones trained.

wifi-densepose calibrate --port <PORT>
wifi-densepose enroll --room <NAME>
wifi-densepose train-room --room <NAME>
wifi-densepose room-watch --room <NAME>

The npm toolkit refuses to overstate accuracy in code. Its claim-check command lints a report for untagged accuracy claims. The train-gate command refuses a score with no mean-pose baseline or a leaky split, then returns the only wording a result may be published with.

Over MCP, grants split the authority. Hardware reads need device-access, flashing needs hardware-write with confirm, and calibration and training need workspace-write with confirm. Flashing and calibration are never honoured over the HTTP transport.

Good to know

Most of it runs on your own machine, and a few paths reach out.

  • Status: the README marks the project beta, says APIs and firmware may change, and names the ESP32-C3 and the original ESP32 as unsupported
  • Not a medical device: the README calls its applications research and prototypes, not medical devices, emergency systems or safety-certified controls. The firmware README calls its breathing and heart-rate output experimental, says to calibrate the breathing estimate against a reference before use, and says the heart-rate estimate is not a medical measurement
  • People: it senses people without a camera. Mindket’s note, not the maker’s: tell the people in a room you sense. Privacy mode strips heart rate, breathing and pose from MQTT, Matter, REST, WebSocket and recordings, and the guide says it does not by itself make a deployment compliant with any regulation
  • Network: the demo container refuses to start without an API token. Node data arrives over unauthenticated UDP, so use the source allowlist
  • Your board: flashing writes to it. The npm toolkit plans first, checks each image against its checksums and writes only when you pass --confirm
  • Calls out: the model weights come from Hugging Face, the image from Docker Hub, the packages from npm and PyPI, and an optional Cognitum Spaces sign-in reaches api.cognitum.one
  • Cognitum: the README recommends Cognitum Seed hardware for the full setup and runs an affiliate program that pays creators on Cognitum sales. RuView itself is MIT licensed, and the ESP32 route works without them
  • The Claude Code pane: like every mod, it runs with Claude Code’s access, so install it only from a source you trust
  • License: MIT, with the copyright held by rUv

README and files

README

RuView: setup notes

This kit holds setup notes only. Mindket wrote them. RuView, its plugin, its npm toolkit, its firmware and its sensing server come from the maker's repository: https://github.com/ruvnet/RuView

These notes are not made or endorsed by the maker. The README says "RuView is a WiFi sensing platform that turns radio signals into spatial intelligence." It reads Channel State Information (CSI) from low-cost ESP32 boards and turns the way people disturb WiFi into presence, movement, breathing and heart-rate estimates, with no camera. Source: https://github.com/ruvnet/RuView/blob/HEAD/README.md

License: MIT. The LICENSE file (https://github.com/ruvnet/RuView/blob/HEAD/LICENSE) is the standard MIT text with "Copyright (c) 2024 rUv".

The README has a "Beta software" section: APIs and firmware may change, and the original ESP32 and the ESP32-C3 are not supported. Its use-case section adds that these are research and prototype applications, not medical devices, emergency systems or safety-certified controls.

What installs

RuView is several pieces, and you pick the ones you need. The notes below cover each one.

What you need first

  • To try it with no hardware: Docker. The image runs with simulated data. The user guide lists Docker 20 or newer.
  • For live sensing: an ESP32-S3 board (the README's recommended chip), an ESP32-C6 as a research target, or a research WiFi card. A Windows or macOS laptop's WiFi gives only coarse RSSI presence and motion. The user guide says the sensing server has no Linux RSSI source yet, so use an ESP32 node on Linux.
  • To flash a board: Python with esptool and pyserial.
  • For the npm toolkit: Node 20 or newer.
  • For a source build: Rust, and the Linux desktop packages the user guide lists.

Source: https://github.com/ruvnet/RuView/blob/HEAD/docs/user-guide.md (Prerequisites) and https://github.com/ruvnet/RuView/blob/HEAD/README.md (the hardware options table).

Main install command

The fastest route needs no hardware. The user guide's 30-second demo runs the Docker image with simulated data. The container exits with code 64 unless RUVIEW_API_TOKEN is set.

export RUVIEW_API_TOKEN=$(openssl rand -hex 32)
docker run -p 127.0.0.1:3000:3000 -p 127.0.0.1:3001:3001 -e RUVIEW_API_TOKEN ruvnet/wifi-densepose:latest

Open http://localhost:3000. Source: https://github.com/ruvnet/RuView/blob/HEAD/docs/user-guide.md (Quick Start)

Per-platform notes

  • setup/claude-code.md: the plugin, the live sensing mod and the MCP servers
  • setup/codex.md: the Codex prompts and a read-only agent run
  • setup/other-agents.md: ChatGPT and any other MCP client
  • setup/docker.md: the Docker image, its data sources and the UDP guard
  • setup/esp32-hardware.md: flashing a board, provisioning WiFi and starting the server
  • setup/home-assistant.md: the MQTT feed and privacy mode
  • setup/python.md: the PyPI packages

Check, update and remove

Sources

Files
README.md  5 KB
setup/claude-code.md  5 KB
setup/codex.md  3 KB
setup/docker.md  4 KB
setup/esp32-hardware.md  6 KB
setup/home-assistant.md  4 KB
setup/other-agents.md  3 KB
setup/python.md  3 KB

8 files, 32 KB, downloaded as a zip.

What’s new

  • Version 2 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • Version 1 · 2026-11-03

Compare with similar

Listed GitHub projects in the same category that share the most topics with this one.

ProductStarsActivityLanguageLicenseLast change
RuView This page103,498ActiveRustMIT
ha-mcpShares home-assistant · home-automation · claude7,397ActivePythonMIT
Kubai IconsShares react · claude814ActiveJavaScript—
ECC by affaan-mShares claude · mcp · claude-code299,210ActiveJavaScriptMIT
Hermes AgentShares claude · claude-code261,224——MIT—
PonytailShares claude · claude-code186,952ActiveJavaScriptMIT
Numbers as Mindket last read them, from 2026-11-07 to 2026-11-13. Activity is read from each project’s last change on GitHub: Active within 30 days, Quiet within 180, Stale after that.

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

shaikhspeareTop trending repo claims to detect movement via WiFi, yet no one can run it10 points · 2 replies@ai-trend-to-know.bsky.socialruvnet/RuView 💻 Rust #RustLang #OpenSource #AIAgents #GitHub 🔗 trendtoknow.com/ruvnet/RuView3 likes@TheArthiAI🚀 Trending on GitHub RuView by ruvnet ⭐ 101,811 (557 stars today) 🧠 Turns ordinary WiFi signals into real-time presence detection, movement tracking, and vital sign monitoring, no camera needed. https://t.co/QqXBYvjbf3 #GenAI #OpenSource #AIadithyaharishShow HN: Turn commodity WiFi signals into real-time spatial intelligence6 points · 3 repliesiterativeguyNew on OSRepos: RuView: Turn WiFi CSI into Spatial Intelligence https://osrepos.com/repo/ruvnet-ruview?utm_source=bluesky RuView uses WiFi Channel State Information from ESP32 sensors to detect presence, movement, and vital signs without cameras or wearables. #opensource3 likes@iluciddreaming101155 个星,今天一天又涨了 557。ruvnet/RuView 做的事情是:用普通商用 WiFi 信号做实时空间感知、生命体征监测和人体存在检测,全程不用一个像素的视频。 它的价值在"不用摄像头"这一点。卧室、浴室、养老院这类不适合装摄像头的地方,一直缺一种不拍画面也能知道人在不在、状态怎么样的办法,而 WiFi 设备本来就在屋里。 不过项目介绍里只有功能描述,没有精度数字。心率和呼吸能测多准、隔墙或者多人同屋时会不会乱,都没写。十万星反映的是关注度,不是准确率。真要拿去做看护场景,先去找它公开的测试数据。CGMthrowawayWiFi-DensePose – open-source software that sees you through walls using wifi6 points · 1 replyGitHub Trending Rust🎉 Celebrating! 🎉 (500+ new stars) 📦 ruvnet / RuView ⭐ 101,679 (+849) 🗒 Rust π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.1 reply@mimies_tech$7d_____kRuView – WiFi DensePose: See Through Walls with WiFi5 points · 2 repliesGitHub Trending🚀 Skyrocketing! 🚀 (200+ new stars) 📦 ruvnet / RuView ⭐ 100,546 (+415) 🗒 Rust π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.1 reply@HongyeMain4/5 nightly-labs/openbot:管理多个持久 AI 队友的本地工作台。当前是高权限开发预览版,协议仅允许非商业用途。 https://t.co/7nWZy450ms https://t.co/Pkp30n1m8z

Searched

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar projects

See all in Developer

ha-mcp

homeassistant-ai · Kit

Lets Claude, ChatGPT and other AI assistants configure and automate Home Assistant, installed as an integration through HACS or the Marketplace. For people who…

New7397

ECC by affaan-m

affaan-m · Skill

Affaan Mustafa’s plugin of agents, skills, commands and hooks that gives Claude Code, Codex and other coding agents a routine of planning, test-first work, fre…

New299k

REA: Reverse Engineer Anything

morluto · MCP server

Pick

An MCP server and CLI by morluto that lets your coding agent study binaries, desktop and Android apps, websites and firmware on your own computer, and back eac…

New458k