This is moderately tested. Although no issues have been discovered, I'm not responsible if anything goes wrong!
This does NOT work on Windows due to a limitation in the Chrome implementation of WebUSB (and probably other reasons!)
This does NOT currently work on any browser but Chrome, because they don't implement WebUSB.
On Linux, you might get an 'Access Denied' or 'No Compatible Device' error on the Connect dialog! If you do, you can try creating a file at /etc/udev/rules.d/50-switch.rules
With the following contents:SUBSYSTEM==\"usb\", ATTR{idVendor}==\"0955\", MODE=\"0664\", GROUP=\"plugdev\"
This has been tested and appears to work on Linux, OSX, Android (unrooted) and Chromebooks. Your mileage may vary.
Instructions:
If you would like to help adding another translation or updating/adding a payload, check this.