This guide shows how to set up the Trezor Suite development environment on Windows using WSL2 (Windows Subsystem for Linux) and usbipd to forward USB devices to WSL.
Trezor Suite is developed as a monorepo with desktop, web, and related services. On Windows the recommended development workflow uses WSL2 so you work in a Linux environment while still running on a Windows host. USB device forwarding is handled with usbipd
, which lets the Trezor device be attached to the WSL instance for development and testing.
usbipd
tool installed on Windows to attach USB devices into WSL (available from Microsoft documentation).Open your WSL terminal (Ubuntu) and install build essentials and Electron dependencies:
sudo apt-get update
sudo apt-get install -y build-essential curl git
# Install any Electron dependencies required for your distribution (see electronjs.org)
Also ensure udev rules for Trezor devices are installed so the application can access the hardware — without the udev rules the device may appear in lsusb
but will not be usable by the app.
Clone the Trezor Suite monorepo and follow the general README to install dependencies and bootstrap the workspace (Node.js, Yarn, and any additional build tooling are typically required):
git clone https://github.com/trezor/trezor-suite.git
cd trezor-suite
# follow the general readme for installing node, yarn and running bootstrap scripts
On Windows (PowerShell or cmd) list USB devices and locate your Trezor's bus ID:
usbipd list
Bind and attach the device to WSL (replace 2-1
with the bus id you found):
usbipd bind --busid 2-1
usbipd attach --wsl --busid 2-1
Back in your WSL terminal verify the device is present:
lsusb
Note: If udev rules aren't installed you may see the device in lsusb
but it will not be accessible by the app until the rules are in place.
From the monorepo, there are scripts to run a development desktop build that starts a watch build and launches the Electron wrapper. Common commands include:
# run a web dev server (useful for web-only debugging)
yarn dev:web
# run desktop dev (watch + electron)
yarn dev:desktop
# build production desktop
yarn build:desktop
Refer to the repo's package.json
scripts and the docs for exact command names — they provide dev:web, dev:desktop, build:web, build:desktop, lint, and type-check helper scripts.
usbipd
attach sequence, check USB cables, restart WSL, and ensure udev rules are applied.