Show HN: Multiplayer, a debugging agent to run locally next to your coding agent
multiplayer.app8 pointsby tomjohnson31 comments
var handleClick = function( id )
{
if ( gameOver ) return;
if ( ctrlIsPressed )
{
// do stuff...
return;
}
if ( cell.opened || cell.flagged ) return;
if ( cell.mined )
{
// do stuff...
return;
}
// else do stuff...
if ( cell.neighborMineCount > 0 )
{
// ...
return;
}
// else do final stuff...
}
i may have missed something, but hopefully you get the point. this simple refactoring reduced the depth of the if statements from ~5 to 1. ...many of the other functions could be flattened just like this. var handleClick = function( id )
{
if ( !gameOver )
{
// ...lots of code and if statements...
}
// ...but no code after the block before returning from the function...
}
...turns into this: var handleClick = function( id )
{
if ( gameOver ) return; // NOTE: logic check change...
// ...do the stuff in the block here...
}
...and this is also a great pattern for checking input variables (and returning or throwing an exception) at the top of the function, ensuring that the code following it has valid input parameters.
We built this because we were tired of incomplete bug reports, hard-to-reproduce failures, and stale docs.
Where traditional recordings stop at the UI, we go deeper. This is all the data you wish was easy to get from your APM tool and screen recorder, all in one place.
Multiplayer records full-stack sessions (frontend + backend + request/response content and header + user steps) in three ways:
- On-demand - Continuous (so no repro steps are needed) - Remote (when users don’t notice or don’t report an issue)
You can install it via browser extension, widget, or SDK, and send backend data however you like (we’re backend-agnostic and OpenTelemetry-compatible).
Once a session recording is captured, you can:
- Annotate screenshots, API calls, and traces - Share complete bug reports across dev, QA, and product - Feed complete context into AI tools so they generate accurate fixes, tests, and features
Along the way we learned how tricky it is to capture context without slowing down apps, and how to make recordings useful instead of overwhelming.
We’d love feedback from the HN community:
- Would you use this more for debugging, testing, or feature work? - Do session replays add clarity in your workflow?
Happy to answer questions and share what worked (and what didn’t) while building this.