GPhoto

gPhoto is a set of software applications and libraries for use in digital photography. gPhoto supports not just retrieving of images from camera devices, but also upload and remote controlled configuration and capture, depending on whether the camera supports those features.

Released under the GNU Lesser General Public License, gPhoto is free software.

Support
gPhoto supports more than 2500 cameras as of June 2019. It is cross-platform, running under Linux, FreeBSD, NetBSD and other Unix-like operating systems.

gPhoto has support for the Picture Transfer Protocol (PTP) and will also connect to devices that use the Media Transfer Protocol (MTP). Many cameras are not supported by gPhoto, but have support for the USB mass storage device class, which is well-supported under Linux.

gPhoto supports camera tethering control, preview, viewfinder in PTP or camera specific protocols on numerous cameras.

Applications
gPhoto provides a library, libgphoto2, to allow for other frontends to be written for it, and a command-line interface. gtkam is the official GUI client for gPhoto. Other clients are the KDE program digiKam and the GNOME program Shotwell. GVfs uses libgphoto2 to expose on-camera photos to GNOME applications via a virtual filesystem.

DigiKam, gtkam and support tethering capture and viewfinder for supported cameras.