Documentation Index
Fetch the complete documentation index at: https://mintlify.com/nicotine-plus/nicotine-plus/llms.txt
Use this file to discover all available pages before exploring further.
This guide covers setting up a development environment for Nicotine+ on various platforms.
Dependencies
Runtime Dependencies
All runtime dependencies must be installed before running Nicotine+ from source.
Required
- python3 >= 3.9 - Runtime language
- gtk4 >= 4.6.9 or gtk3 >= 3.24.24 - Graphical interface
- pygobject - Python bindings for GTK
Recommended
- libadwaita - Adwaita theme on GNOME (GTK 4)
- gspell - Spell checking in chat (GTK 3)
Build Dependencies
- python3-setuptools - Build backend
- python3-build - Building packages
- python3-wheel - Packaging
- gettext - Generating translations
Testing Dependencies
- pycodestyle - Code style checks
- pylint - Code linting
Installing Dependencies
GNU/Linux
Debian/Ubuntu
Fedora/RHEL
SUSE
Alpine
Install runtime dependencies
sudo apt install gir1.2-gspell-1 gir1.2-gtk-4.0 gir1.2-adw-1 python3-gi python3-gi-cairo
Install build dependencies
sudo apt install gettext python3-build python3-setuptools python3-wheel
Install test dependencies
sudo apt install pylint3 python3-pycodestyle
Install runtime dependencies
sudo dnf install gspell gtk4 libadwaita python3-gobject
Install build dependencies
sudo dnf install gettext python3-build python3-setuptools python3-wheel
Install test dependencies
sudo dnf install pylint python3-pycodestyle
Install runtime dependencies
sudo zypper install typelib-1_0-Gspell-1 typelib-1_0-Gtk-4_0 typelib-1_0-Adw-1 python313-gobject python313-gobject-cairo python313-gobject-Gdk
Install build dependencies
sudo zypper install gettext-tools python313-build python313-setuptools python313-wheel
Install test dependencies
sudo zypper install python313-pylint python313-pycodestyle
Install runtime dependencies
sudo apk add gspell gtk4.0 libadwaita py3-gobject3
Install build dependencies
sudo apk add gettext py3-build py3-setuptools py3-wheel
Install test dependencies
sudo apk add py3-pylint py3-pycodestyle
Windows and macOS
All required dependencies are included in the official Windows and macOS installers. For building packages in a development environment, see the PACKAGING.md documentation.
Development Installation
Option 1: Git (Recommended for Development)
Run Nicotine+ directly from a local Git folder without installation:
Clone the repository
git clone https://github.com/nicotine-plus/nicotine-plus.git
cd nicotine-plus
This method is ideal for development as you can easily modify code and test changes immediately.
Option 2: pip Installation
Install the latest unstable build using pip:
Install from Git
pip3 install git+https://github.com/nicotine-plus/nicotine-plus.git
Update to latest
pip3 install --upgrade git+https://github.com/nicotine-plus/nicotine-plus.git
Uninstall (if needed)
pip3 uninstall nicotine-plus
Building from Source
Create a Source Distribution
Navigate to source directory
Build source distribution
Verify output
The source distribution will be created in the dist/ directory.
Test the Build
To test building the application:
Ensure the source distribution (sdist) includes all necessary files to run Nicotine+ before creating a release.
Testing Unstable Builds
For testing the latest unstable builds on various platforms:
GNU/Linux
PPA (Ubuntu/Debian)
Flatpak
Snap
Ubuntu and derivatives:sudo add-apt-repository ppa:nicotine-team/unstable
sudo apt update && sudo apt install nicotine
Debian and derivatives:sudo apt update && sudo apt install python3-launchpadlib software-properties-common
sudo add-apt-repository 'deb https://ppa.launchpadcontent.net/nicotine-team/unstable/ubuntu jammy main'
sudo apt update && sudo apt install nicotine
Download unstable Flatpak packages built after every commit to master:Download Unstable Flatpak Package sudo snap install nicotine-plus --edge
Windows
Unstable installers are built after every commit:
Portable packages are also available that run from any folder without installation.
macOS
Unstable installers are built after every commit:
Next Steps
Now that your development environment is set up: