prictl is a tool used to control slides in presentations from other devices such as phones, tablets, laptops, or smartwatches. It works with any presentation application and is compatible with Windows, macOS, Linux, and BSD. With prictl, you can easily move forward or backward in slides over your local network.
- Move to next and previous slides
- Works with any presentation software
- Simple to use (just scan the QR code)
- Supports multiple platforms (Windows, Linux, macOS, BSD)
- Python 3.x
- pyautogui (for controlling slides)
- FastAPI (for the HTTP server)
- Local network connection
- Python 3.8 or higher
- pip (Python package manager)
⚠️ Depending on your system, you may need to usepip3instead ofpipandpython3instead ofpython.
If you just want to get started quickly:
git clone https://github.com/mateo-rfz/prictl.git
cd prictl/src
pip install -r requirements.txt
python main.py-
Make sure Python is installed on your primary device:
Download Python -
Open terminal (CMD/PowerShell) in the
prictldirectory and install dependencies:pip install -r src/requirements.txt
-
Run prictl:
cd src python main.py
-
Make sure Python is installed on your device.
You can install it with Homebrew:brew install python3
-
Install dependencies:
pip3 install -r src/requirements.txt
-
Run prictl:
cd src python3 main.py
- Make sure Python is installed on your primary device
Install Python on your distro:
Debian/Ubuntu:
sudo apt install python3Arch:
sudo pacman -S python3 RedHat/Fedora:
sudo dnf install python3 - Open terminal in the
prictldirectory and install dependencies:
pip install -r src/requirements.txt- Run prictl:
python3 main.py- Make sure Python is installed on your primary device
Install Python on your distro:
FreeBSD/NetBSD/OpenBSD:
sudo pkg install python3- Open terminal in the
prictldirectory and install dependencies:
pip install -r src/requirements.txt- Run prictl:
python3 main.pyOnce the server is running on your main device, open the web page on another device connected to the same local network to control your slides.
- Default HTTP port:
10001(can be changed inmain.pyif needed) - Future options for customizing slide controls
- Devices cannot see each other: Ensure both devices are on the same local network.
- Python errors / dependencies: Make sure all required packages are installed.
- Browser or firewall issues: Check that the firewall allows connections to the HTTP server port.
If you want to contribute:
- Fork the repository
- Submit Pull Requests or open Issues
- GitHub: https://github.com/mateo-rfz/
- Weblog: https://mateorfz.ir
- Email: [email protected]
This project is licensed under the GNU General Public License v3.



