A TUI (Terminal User Interface) application for managing Peacock on Linux. Distributed as a single AppImage — download, run, and you're set.
Note: While the Peacock server officially supports Linux, the overall Linux/Proton setup is community-maintained. Join our Discord for help.
- Install & Update Peacock — downloads the latest release, preserves your
userdata/across updates - Install & Update Node.js — automatically matches the version Peacock requires
- Systemd Service Management — install, start/stop, enable on boot, remove — all from the TUI
- ZHMModSDK Management — download and install for each detected Hitman 3 install
- Steam + Heroic Detection — automatically finds Hitman 3 game directories and Wine prefixes (including Flatpak paths)
- Migration Wizard — migrate an existing
linux-steam-setupshell-script or manual Peacock install to the new location - Settings — configurable install directory and Peacock server port
- Keyboard-driven UI — fully navigable with arrow keys, Enter, and Escape (Steam Deck compatible)
- Download the latest
peacock-launcher-*-x86_64.AppImagefrom Releases - Make it executable:
chmod +x peacock-launcher-*.AppImage - Run it:
./peacock-launcher-*.AppImage # Or double-click the file in your file manager
- Select Install / Update Peacock & Node from the main menu
- Select Manage Service → Install Service → Start Service to have Peacock running in the background
- (Optional) Select Enable on Boot to have Peacock start automatically when you log in
- (Optional) Select Manage ZHMModSDK to install the SDK into your Hitman 3 directory
If you were using the old shell-script setup, open the launcher and select Migrate from old setup.
- The launcher copies your Peacock and Node.js files into the new managed location.
- Any existing
peacock.serviceis replaced with the launcher-managed service definition. - If the old service was enabled or running, that state is restored after migration.
- Old
PeacockPatcher.exeandWineLaunch.batfiles are removed from detected game folders. - After migration, switch to ZHMModSDK + OnlineTools for patching. Do not keep using the old batch-file injection flow.
See MIGRATION.md for the full migration checklist.
| Key | Action |
|---|---|
↑ ↓ |
Move between menu items |
Enter |
Select / confirm |
Esc |
Go back |
Start the game and open the SDK panel with the ~ key (^ on QWERTZ layouts or ² on AZERTY layouts), click the Mods button in the top left, find OnlineTools and check the box next to it, finally press OK.
Next, open the SDK panel again. There should be a new OnlineTools button on the bar at the top of the screen, click this button and the following menu should appear;
Then, press the Help button, give the menu that pops up a read to familiarise yourself with the mod. Then press Load Old Patcher Settings and close the help popup.
The main OnlineTools window should now look like this;
If you have not changed the port from the default of 3000, you need to change the localhost line to localhost:3000 then press enter.
If you are using port 80 you do not need to change this. If you changed it to something other than 3000, you need to change it to localhost:PORT where PORT is your chosen port.
The window should now look like this (if you are using the default configuration);
If you want to choose when you connect to Peacock, you can open the OnlineTools menu and press the circled button below;
If you want to connect to Peacock every time you start the game, you can check the box highlighted below;
See the ZHMModSDK install guide for more details.
| Item | Path |
|---|---|
| Config file | ~/.config/peacock-linux/config.toml |
| Install directory | ~/.local/share/peacock-linux/ (default, configurable) |
| Peacock server files | ~/.local/share/peacock-linux/Peacock/ |
| Node.js runtime | ~/.local/share/peacock-linux/node/ |
| Systemd service | ~/.config/systemd/user/peacock.service |
Override the install directory with the PEACOCK_INSTALL_DIR environment variable.
Check logs with journalctl --user -u peacock -e. Common causes:
- Peacock or Node.js not installed — run the installer from the launcher first
- Port conflict — another process is using port 3000. Change the port in Settings or stop the conflicting process.
The launcher checks standard Steam and Heroic paths (including Flatpak). If your game is installed in a non-standard location, the SDK must be installed manually.
Ensure:
dinput8.dllexists in the Hitman 3Retail/directory- You are using Proton Experimental or newer
- The game was restarted after SDK installation
- See the ZHMModSDK install guide which contains additional instructions for older Proton versions.
cd launcher
cargo build --releaseTo build an AppImage:
cargo install cargo-appimage
cd launcher
cargo appimage
# Output: target/appimage/peacock-launcher.AppImageThe old shell-script-based setup files are preserved in the legacy/ directory for reference. The launcher includes a migration wizard to move an existing legacy install to the new location, and the recommended path is documented in MIGRATION.md.
Scripts and source code are under the AGPL-3.0 license, see the license file for more info.




