Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 03:09, 9 November 2025 by HydeWing (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
NXBT
General
AuthorBrikwerk
TypePC Utilities
Version0.1.4
LicenseMIT License
Last Updated2021/10/04
Links
Download
Website
Source

NXBT is a utility written in Python that lets you control your Nintendo Switch via a web browser, terminal, or custom macros.

Features

  • Use your favourite web browser to control a Nintendo Switch with any keyboard or gamepad.
  • Use your terminal to control a Nintendo Switch with a keyboard.
  • Use a macro from your terminal, browser, or Python script
  • Use the NXBT Python API to write programs to control your Nintendo Switch.
  • Primitive loop support in macros.
  • In-depth command line interface.
  • Support for emulating multiple controllers at once.
  • Support for fast connection or reconnection to a Nintendo Switch.
  • Emulated ontrollers support thread-safe access.

Installation

Linux: sudo pip3 install nxbt (Note: NXBT needs root privileges to toggle the BlueZ Input plugin. If you're not comfortable running this program as root, you can disable the Input plugin manually, and install NXBT as a regular user.)

Windows and macOS: See the installation guide here.

Media

How I Play Nintendo Switch 2 Without Having the Console (Sir Spudly)

Known issues

  • Switching from the slow frequency mode on the "Change Grip/Order" menu to the full input report frequency is still a bit of a frail process. Some game start menus have a frequency of 15Hz but specifically only allow exiting by pressing the A button. The "Change Grip/Order" menu allows for exiting with A, B, or the Home button, however.
  • The webapp can sometimes have small amounts of input lag (<8ms).

Changelog

v0.1.4

  • Additions and Changes
    • SwitchOS v12 and v13 compatibility.
    • A new, more efficient communication strategy.
    • Added a remote_tui option to the CLI for explicit use over remote connections.
    • Added a test option to the CLI for better debugging support.
    • Overriding the bluetooth service is done in a much cleaner way (#19).
    • Added support for Windows and MacOS with Vagrant-configured Virtual Machines. See the Installation section in the README for more details.
    • Added a --usessl argument for use with the web app. A secure context (SSL) will be required for gamepad use in the web app due to upcoming browser changes. Please Note: the SSL certificates generated in this mode are completely insecure and are not meant for any kind of production or non-local use. Your browser will warn you as such, if you choose to use them.
    • Added input sampling method selection to the web app. Depending on which browser you use, some of the selections will be more responsive than others.
    • Added Controller Restart functionality to the web app.
  • Bugfixes
    • Fixed a bug preventing proper reconnection after an active connection was killed.
    • Fixed a bug where resources wouldn't be freed after a controller was shutdown from within the web app.
    • Fixed crashes in certain scenarios when reconnecting.

v0.1.3

  • The frequency for the direct TUI input loop has been increased from 30Hz to 120Hz. This matches the input frequency of the controller and should promote more responsive input.
  • An issue with Socket.IO protocol incompatibility which resulted in dropped webapp connections has been resolved (#6).
  • Critical dependency versions have been pinned

v0.1.2

  • Fixed an issue with webapp static resources not being included when packaging NXBT for the Python Package Index.

v0.1.1

  • Added CLI options to set the IP and port of the webapp.
  • Set default IP and port options to allow for access on the local network (IP: 0.0.0.0, Port: 8000).

v0.1

  • First Release.

Credits

A big thank you goes out to all the contributors at the dekuNukem/Nintendo_Switch_Reverse_Engineering repository! Almost all information pertaining to the innerworkings of the Nintendo Switch Controllers comes from the documentation in that repo. Without it, NXBT wouldn't have been possible.

External links

Advertising: