Skip to main content
Nicotine+ supports various command-line arguments that allow you to customize startup behavior, specify alternative configurations, and automate tasks.

Basic Usage

The basic command to launch Nicotine+ is:
You can add various arguments to modify the behavior:

Available Arguments

Help and Version

-h, --help

Display help message with all available options and exit.

-v, --version

Display the Nicotine+ version and exit.

Configuration Options

-c, --config <file>

Use a non-default configuration file. This is useful for:
  • Running multiple instances with different configurations
  • Testing new settings without affecting your main config
  • Profile-based configurations
When using a custom config file, Nicotine+ automatically allows multiple instances to run simultaneously.

-u, --user-data <folder>

Specify an alternative folder for user data and plugins. This overrides the default data directory. Default locations:
  • Linux: ~/.local/share/nicotine/
  • macOS: ~/Library/Application Support/nicotine/
  • Windows: %APPDATA%\nicotine\
The user data folder contains plugins, downloaded files metadata, chat logs, and other application data.

Display Options

-s, --hidden

Start Nicotine+ without showing the main window. The application runs in the background and can be accessed from the system tray icon (if enabled).
This is useful for:
  • Starting Nicotine+ at system boot
  • Running as a background service
  • Minimizing system resource usage on startup

-n, --headless

Start Nicotine+ in headless mode with no graphical interface. This mode is designed for:
  • Server deployments
  • Docker containers
  • Remote systems without a display
  • CLI-only automation
In headless mode, you can only interact with Nicotine+ through log files and the file system. Ensure your configuration is correct before using this mode.

Network Options

-b, --bindip <ip>

Bind network sockets to a specific IP address. This is particularly useful when:
  • Using a VPN and you want to bind to the VPN interface
  • Running multiple network interfaces
  • Ensuring traffic goes through a specific network adapter
If you’re using a VPN, binding to the VPN IP ensures all Soulseek traffic routes through the VPN, preventing leaks if the VPN disconnects.

-l, --port <port>

Listen on a specific port number instead of the default (2234) or configured port.
Common use cases:
  • Port forwarding requirements
  • Avoiding port conflicts
  • Firewall configurations

File Sharing Options

-r, --rescan

Rescan shared files and exit immediately. This updates your file index without starting the full application.
1

Scan initiated

Nicotine+ starts and begins scanning configured shared folders.
2

Index updated

The file database is updated with new files, removed files, and metadata changes.
3

Automatic exit

Once scanning completes, Nicotine+ exits automatically.
This is useful for:
  • Scheduled updates via cron jobs
  • CI/CD pipelines
  • Automated maintenance scripts
Example cron job (rescan daily at 3 AM):

Combining Arguments

You can combine multiple arguments for complex configurations:

Exit Codes

Nicotine+ returns different exit codes based on the result:
  • 0 - Success
  • 1 - Error occurred (e.g., Python version too old, rescan failed)

Environment Variables

While not direct CLI arguments, these environment variables affect Nicotine+:

XDG_CONFIG_HOME

Overrides the default config directory on Linux:

XDG_DATA_HOME

Overrides the default data directory on Linux:

Automation Examples

Systemd Service

Run Nicotine+ as a systemd service:
/etc/systemd/system/nicotine.service
Enable and start:

Docker Container

Run Nicotine+ in Docker:
Dockerfile

Automated Testing Script

test-nicotine.sh

Troubleshooting

Multiple Instances

By default, Nicotine+ prevents running multiple instances. To run multiple instances:

Permission Errors

If you encounter permission errors:

Port Already in Use

Headless Mode Not Working

Ensure all configuration is done before running headless:
1

Configure with GUI

Run Nicotine+ normally and configure all settings.
2

Test configuration

Verify settings work correctly with the GUI.
3

Switch to headless

Once configured, start with --headless flag.

Hidden Arguments

Nicotine+ has a few undocumented arguments for special use cases:

--ci-mode

Disables critical error dialogs. Used for automated testing and CI/CD pipelines.

--isolated

Disables features requiring external applications. Useful for:
  • Docker containers
  • Sandboxed environments
  • Minimal installations
These hidden arguments are not shown in --help output and are intended for advanced use cases only.

Next Steps

  • Learn about Plugins to extend functionality
  • Explore the Soulseek Protocol for technical details
  • Check out configuration options in the GUI settings