RemoteNotify
RemoteNotify puts a small HTTP server on 127.0.0.1 and hands out your Minecraft
client's live state as JSON. Anything that can make a web request can now see what
your game sees: a Python script, a phone browser, a Discord bot, a Stream Deck
button, a second monitor showing a dashboard while you AFK.
It is client-side only. You can use it on any server, in singleplayer, on an SMP, without the server owner installing anything.
Why you might want this
The honest use case is watching a session you are not looking at. You set up an AFK farm, you go make dinner, and you want your phone to tell you when your health drops or a creeper wandered into the pen. Or you are debugging why your frames tank in one particular base, and you want the numbers written down instead of squinting at F3.
After that it gets more interesting. People have built overlay dashboards, death loggers, playtime trackers, chat relays into Discord, and stream widgets that show health and inventory to viewers. The mod does not do any of that itself. It hands you the data and gets out of the way.
What it gives you
GET /state returns one JSON object covering:
Your player. Health, absorption, armor, air, food, saturation, XP level and progress, position, chunk, yaw and pitch, facing direction, biome, light level, game mode, vehicle, and every movement and status flag the client tracks. Plus your full inventory with item counts and durability, both hands, all four armor slots, active potion effects, the block you are standing on, and whatever you are currently looking at.
Performance. FPS, memory used and max, and real tick timings sampled over the last thirty seconds: average, median, p95, worst, and a count of stutters. It also exposes the game's own debug pie chart as a nested tree, which is the profiler behind F3 plus Alt. RemoteNotify keeps that profiler running without putting the overlay on your screen, so you can see exactly which subsystem is eating your frame time while you play normally.
The server. Measured TPS, your ping, connection uptime, reconnect count, IP, name, and MOTD.
Your session. Playtime, deaths, deepest and highest Y you reached, where the session started, how far you have wandered from it, and where you last died.
Rolling metrics. Five-minute windows for damage taken, healing, distance moved, sprint distance, fall distance, and XP gained. Each one reports the window total, a per-minute rate, an all-session total, and a peak.
The world. Time, day number, rain, thunder, difficulty, dimension.
Nearby. Within 24 blocks: how many hostiles, how many players, the names of those players, and a count per entity type.
Everything else. The tab list with pings, and whatever container you have open including its contents.
Live events
GET /events is a Server-Sent Events stream that pushes as things happen, so you
do not have to poll:
chat · actionbar · damage · death · low_health · low_hunger ·
low_durability · level_up · dimension · biome · hostile_nearby ·
connect · disconnect
curl -N http://127.0.0.1:47823/events
That is the whole integration. Ten lines of Python on the other end of that stream gets you a phone notification when your health drops below six hearts.
Sending commands back
POST /command runs a chat message or a command as you. It is disabled unless you
launch the game with -Dremotenotify.token=yoursecret, and then every request has
to carry that token in an X-Token header.
curl -X POST -H "X-Token: yoursecret" --data "/home" \
http://127.0.0.1:47823/command
Read this part before you turn it on. Anything that can reach the port and knows the token can type as you, in your game, on your server. The server binds to loopback only, so nothing outside your own machine can reach it, and the endpoint is POST-only behind a token header specifically so a random web page you have open cannot quietly poke it. Still, pick a real token, and leave it off if you do not need it.
Setup
Drop the jar in mods/ next to Fabric API, launch the game, and run
/remotenotify on. Then open http://127.0.0.1:47823/state.
The mod ships off. It runs nothing at all until you ask it to, so installing it
and forgetting about it costs you nothing. To have it start with the game, add
-Dremotenotify.enabled=true to your JVM arguments.
| Command | Effect |
|---|---|
/remotenotify |
Show status |
/remotenotify on |
Start the bridge |
/remotenotify off |
Stop it |
/remotenotify pie |
Toggle profiler collection |
Options are JVM system properties: remotenotify.enabled, remotenotify.port
(default 47823), remotenotify.pie, remotenotify.token.
For mod developers
RemoteNotify works as a library. Two static calls:
// Add your own section to /state. Runs on the render thread.
RemoteNotify.addSection("mymod", mc -> myJsonObject);
// Push an event to every listener. Arguments alternate key and value.
RemoteNotify.publish("my_event", "thing", "value");
RemoteNotify.enabled() tells you whether anyone is listening, so you can skip
building state nobody will read.
What it will not do
It reports the position of other entities to nobody, ever. Nearby mobs and players are counted, and players are named, but no coordinates for anything except you leave the mod. That is a deliberate limit, not a missing feature. A JSON feed of every entity position within 24 blocks is a radar, and this is not a cheat mod. Please do not open a request for it.
It also sends nothing anywhere. The server is bound to loopback, there is no telemetry, no outbound connection, and no account of any kind. The whole thing is one small HTTP server built on the JDK's own classes, with no bundled libraries.
Performance cost
The mod samples once per client tick and does very little on that tick. JSON is
only built when something actually asks for /state. The profiler is the only
real cost, and it measures as a fraction of a percent across a normal session. If
you want it gone, set remotenotify.pie=false.
Requirements
Minecraft 26.1.x · Fabric Loader 0.19.0 or newer · Fabric API · client-side only
License
All Rights Reserved. You are free to download and play with it. Ask before redistributing it or putting it in a modpack, and the answer is usually yes.

