A complete web-based remote GPIO controller for Raspberry Pi with real-time monitoring, PWM control, and a modern interface.
Run the following command in your Raspberry Pi terminal
curl -sL https://raw.githubusercontent.com/SiddhantSilwal/RaspberryPi-GPIO-Web-Controller/refs/heads/main/webinstaller.sh | bash
For custom installation to review and change python scripts as per your setup, clone and install the git repo as follows
git clone https://github.com/SiddhantSilwal/RaspberryPi-GPIO-Web-Controller.git
cd RaspberryPi-GPIO-Web-Controller/
chmod +x ./install.sh
./install.sh
requirements.txtFor default installation the script will autostart on boot
If autostart is disabled at installation type the following command to start the server
$ webgpio
http://localhost:5000 (local) or http://[PI_IP_ADDRESS]:5000 (network)/usr/share/RaspiWebGPIO/
├── app.py # Flask backend application
├── requirements.txt # Python dependencies
├── templates/
│ └── index.html # Main HTML template
└── static/
├── css/
│ └── styles.css
└── js/
└── app.js
GET /api/pins - Get status of all GPIO pinsPOST /api/mode - Configure pin mode (input/output)POST /api/write - Set output values or send pulsesPOST /api/pwm - Control PWM (start/stop/configure)POST /api/monitor - Toggle input pin monitoringPOST /api/reset - Reset all pins to safe defaultsGET /api/events - Server-Sent Events stream for real-time updatesCtrl+D (or Cmd+D on Mac) - Toggle dark modeCtrl+R (or Cmd+R on Mac) - Reset all pinsEnter/Space on GPIO pins - Select for configurationTab - Navigate between controls$ claude mcp add RaspberryPi-GPIO-Web-Controller \
-- python -m otcore.mcp_server <graph>