A modern open-source tool to test every key on your mechanical keyboard in real-time. Built with Next.js + FastAPI, it gives instant visual feedback, highlights missing keys, and ensures your keyboard is fully functional.
- ✅ Real-Time Key Detection – See which keys are working instantly
- 🖥️ Visual Keyboard Layout – Interactive UI for easy testing
- 🚦 Pass/Fail Results – Automatically shows unresponsive keys
- ⚡ Fast & Lightweight – Minimal setup, smooth experience
- 🌐 Cross-Platform – Works on Windows, macOS, and Linux
┌───────────────┐ WebSocket / API ┌───────────────┐
│ Python Backend │ ───────────────────────▶ │ Next.js Front │
│ - Detect keys │ │ - UI Layout │
│ - Handle USB │ ◀─────────────────────── │ - Live Color │
└───────────────┘ ACK / Updates └───────────────┘
┌─────────────┐ ┌──────────────┐ ┌───────────────┐
│ User Presses│ ───▶ │ Python Server│ ───▶ │ WebSocket │
│ a Key │ │ Captures │ │ Sends Signal │
└─────────────┘ └──────────────┘ └───────────────┘
│
▼
┌───────────────┐
│ Next.js UI │
│ Highlights Key│
└───────────────┘
+---------------------------------------------------------+
| Mechanical Keyboard Tester |
| |
| ┌───────────────┐ ┌───────────────┐ |
| │ Backend (Py) │ │ Frontend (JS) │ |
| │ - FastAPI │ │ - Next.js │ |
| │ - USB Events │ │ - UI / Colors │ |
| │ - WebSocket │ │ - Status View │ |
| └───────────────┘ └───────────────┘ |
| |
| 🔄 Real-time Communication via WebSockets |
+---------------------------------------------------------+
git clone https://github.com/your-username/mechanical-keyboard-tester.git
cd mechanical-keyboard-testercd backend
pip install -r requirements.txt
python main.pycd ../frontend
npm install
npm run devThen open http://localhost:3000 in your browser.
- Start both backend and frontend
- Open the app and press keys on your keyboard
- ✅ Working keys turn green
⚠️ Missing keys are highlighted when you finish the test
mechanical-keyboard-tester/
│── backend/ # FastAPI server for key detection
│── frontend/ # Next.js web interface
│── README.md
We welcome contributions!
- 🐛 Report bugs
- 🌟 Suggest features
- 🔧 Submit pull requests
Crafted with ❤️ by Animex007