A web-based calibration tool for PlayStation DualShock 4, DualSense, and DualSense Edge controllers using the WebHID API.
The live version of this project is available at https://dualshock-tools.github.io.
No installation is required: simply open the website in a WebHID-compatible browser.
- Controller connection via WebHID API
- Stick calibration and range calibration
- Input testing and visualization
- Battery status display
- Multi-language support (20+ languages)
- Progressive Web App capabilities
A pre-built Docker image is available for running DualShock Tools without installing any dependencies.
See the Docker guide for installation and usage instructions.
Interested in contributing? Please read CONTRIBUTING.md for guidelines on submitting changes and pull requests.
- Node.js (v16 or higher)
- npm or yarn
- Modern browser with WebHID support (Chrome/Edge)
-
Install dependencies:
npm install
-
Build the application:
npm run build
-
Start the development server:
npm run start
The app will be available at
https://localhost:8443
npm run build- Build the application for developmentnpm run build:prod- Build the application for productionnpm run clean- Clean the dist directorynpm run serve:https- Serve the built app over HTTPS (required for WebHID)npm run serve- Serve the built app over HTTP (WebHID won't work)npm run start- Build and serve the appnpm run dev:full- Build, watch for changes, and serve with auto-reloadnpm run watch- Watch for file changes and rebuild
For active development with auto-rebuild:
npm run dev:fullThis will:
- Build the application
- Start watching for file changes
- Serve the app over HTTPS at
https://localhost:8443 - Automatically rebuild when files change
- HTTPS Required: The WebHID API requires HTTPS. The development server uses self-signed certificates.
- Browser Security: You may need to accept the self-signed certificate warning in your browser.
- Controller Support: Only works in browsers with WebHID support (Chrome, Edge, Opera).
js/- Source JavaScript filescss/- Source CSS filestemplates/- HTML template fileslang/- Translation filesassets/- SVG assetsdist/- Built application (generated)
The project uses Gulp for building:
- JavaScript bundling with Rollup
- CSS concatenation and minification
- HTML processing and minification
- Asset optimization
- Development vs production builds