Pyazo is a self-hosted screenshot and image upload utility. It allows you to take a screenshot of a part of your screen and automatically upload it to your own server. You can also directly upload an image from your computer.
It is comprised of a cross-platform client written in Python which defers the actual taking of the screenshot to the built-in OS tools (macOS and Windows) or common utilities (Linux distributions). The server is written as a RESTful FastAPI app with support for basic user accounts and image sharing options.
- Python >= 3.7 (check with python --version)
The following OSes have off-the-shelf compatibility. You can add more back ends for missing systems or configurations.
- Linux (scrot,maim, orimport(ImageMagick))
- macOS
- Windows 10
- Install Python 3
- Install client requirements:
Create an external config file. Pyazo extends the default config with the provided values. The following table contain all options and the location of the user config file.
- Example Config: config.ini.sample
- Placement Path: ~/.config/pyazo/config.ini(~refers to the user home directory)
| Key | Default | Description | 
|---|---|---|
| url | https://example.com | API endpoint to send the image file in a POST request | 
| token | ' ' | JWT token (https://github.com/pyazo-screenshot/api/blob/master/README.md) | 
| util | maim | Built-in tool or common utility for taking a screenshot | 
| output_dir | $(xdg-user-dir PICTURES)/screenshots | Place to store the image after taking a screenshot | 
BSD 3-Clause