Open-source project
thepeacockproject/Peacock avatar
thepeacockproject/Peacock

Peacock replaces the Hitman trilogy servers and adds features on top

The Peacock Project is a HITMAN™ World of Assassination trilogy server replacement.

701 stars94 forksTypeScriptAGPL-3.0

At a glance

What is it?
Peacock is a server replacement for the Hitman World of Assassination trilogy, rewritten in TypeScript from the LocalGhost fork and shipped as a patched game build with a web UI and plugin system. It is a preservation project with an active feature agenda, an AGPL licence and a contribution policy that bans machine generated code.
Who is it for?
Adopt Peacock if you want to keep the Hitman trilogy playable after its official servers go away, and you are willing to run a patched build with Node.js 22.9.0 and a Windows terminal in administrator mode.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Preservation is the stated purpose, features are the practice

Peacock is described as a HITMAN World of Assassination trilogy server replacement, and the primary purpose is given as preservation of the game. That means keeping the trilogy playable after the original online services are gone, not merely letting you play offline. The README is clear that the project also adds new features and content to the game and allows other enhancements to be made while in online mode. That combination is the design decision that defines the project. A pure preservation patch would replace the dead server with a local one and stop there, which keeps the original experience intact and keeps the patch small. Peacock instead treats the server as a platform, and the top level of the repository shows the scale of that: a components/ tree for the rewritten game logic, a plugins/ directory, a webui/ for the in-game web interface, contractdata/, resources/, static/, packaging/ for the build pipeline, a patcher/ directory, a separate patcher-darwin/ directory, and PeacockPatcher.exe at the root. The credits section adds the history. Peacock started as a fork of LocalGhost by grappigegovert, has since been rewritten in TypeScript, and the codebase was relicensed to AGPL-3.0 with explicit permission from the original author. The game itself is owned by IO Interactive and the project states it is not affiliated with them.

Installing on Node.js 22.9.0 with a terminal as administrator

The installation path is short and has one unusual requirement. You install Node.js, using the latest version or the one named in the documentation, Version 22.9.0, and the repository carries a .nvmrc file that pins the expected runtime. You clone the repository wherever you like, open a Windows terminal as administrator, enable Yarn through corepack, move into the cloned folder and install the dependencies.

bash
> corepack enable
> cd Folder/Path/Here
> yarn install

The administrator requirement is not incidental, because the next step is running a patcher that injects into the game installation, and that needs administrator file access on Windows. The repository ships PeacockPatcher.exe at the root and keeps a separate patcher-darwin/ directory, which is the sign that the project is not Windows-only, though the written instructions only cover the Windows path. The build system is Yarn with a .yarn/ directory and a .yarnrc.yml, a yarn.lock, and a private monorepo package named @peacockproject/monorepo at version 8.9.1. The scripts in the root package.json show the working commands, including the start script that runs node chunk0.js, a dev mode through node packaging/devLoader.mjs, and the build that chains yarn webui:build with node packaging/build.mjs.

A TypeScript monorepo with plugins and a web UI

The engineering shape is a Yarn workspaces monorepo, and the script list in the root package.json is the fastest way to understand it. The plugin build runs node packaging/buildPlugins.mjs as a separate script, which tells you plugins are compiled artefacts rather than loose files, and the webui script points at a dedicated workspace called @peacockproject/web-ui, so the in-game browser interface is a separate package with its own build. Type checking is two-stage: typecheck-ws runs tsc for one workspace and typecheck runs that across every workspace with yarn workspaces foreach. Linting is eslint with a flat config in eslint.config.cjs, formatting is handled by oxfmt rather than prettier despite the script names, and there is a circular dependency check that runs yarn dlx dpdm over components/index.ts while excluding the types directory and node_modules. Two scripts exist purely to extract data from the game, extract-challenge-data and extract-featured-contracts, both run through packaging scripts, which tells you the contracts and challenges data are pulled out of the retail files rather than authored by hand. The production build ends with terser minifying chunk0.js, with a source map written alongside it.

Locale packages rebuild themselves on merge

Localisation has a documented automated path that is worth understanding before you contribute a string. You edit locale.json, adding English versions of any new strings to all languages, or translating only the strings for the languages you are working on. You push locale.json, you open a pull request, and when it is reviewed and merged the locale packages are rebuilt automatically. The manual path exists for testing and other one-off cases, and it names the exact tooling: rpkg_cli.exe, HMLanguageTools.exe and ResourceLib_*.dll have to be in the resources folder, and you then run yarn rebuild-locale from the root project folder, which is the node resources/rebuildLocale.cjs script in the package manifest. The generated RPKG files should not be pushed or merged, because the automated workflow handles that. This is a small but well designed piece of contributor tooling. The convention that generated binaries stay out of version control while a single source file is edited by hand means a translator never has to understand the game resource format, and the release pipeline stays deterministic.

Contributions are pull requests from forks, and the AI policy is strict

The contributing rules are short. You open pull requests from your own fork, you can fix bugs reported in issues, and you can add new features you think would be useful, although features that are not already listed in issues have to be discussed before merging. Development guidance recommends WebStorm, which the README notes is free for non-commercial use, with Visual Studio Code as a workable alternative, and the project is bundled with a server running configuration so you can launch the server from the IDE while editing. The AI usage guidelines are the part that stands out. Contributions generated in part or in full by large language models, chatbots or other generative AI tools are not allowed, and the policy covers code, documentation, pull requests, issues and comments, across this repository and the rest of the Peacock Project organisation. On top of that, you may not use the repository or the organisation's other repositories to train AI tools. For a preservation project whose value rests on the provenance of the work, that is a coherent position, and it is a constraint any contributor has to read before opening a pull request.

An AGPL project with a regular release cadence

The licence is AGPL-3.0, stated in the README and recorded in the root package.json and the LICENSE file, and the relicensing from the original fork was done with the author's explicit permission, which is the part that makes the current terms defensible. For anyone who wants to run the server for themselves this is a straightforward permissive-in-practice arrangement, and for anyone who wants to redistribute a modified build it is a heavier one, so read the licence file rather than taking the label on its own. The maintenance record is good. The last push was on 2026-10-20, and the release history is steady, with v8.9.1 on 2026-09-13, v8.9.0 on 2026-08-27 and v8.8.1 on 2026-06-07. Version numbers in the 8.x line mean the project is iterating on a stable base rather than rewriting, which fits a project whose job is to keep an existing game running. The top level also carries a CHANGELOG-style set of project files including docs/, tests/, .editorconfig, eslint config and a .vscode/ folder, and the presence of a Discord server in the README is where most of the coordination happens.

Editorial conclusion

Adopt Peacock if you want to keep the Hitman trilogy playable after its official servers go away, and you are willing to run a patched build with Node.js 22.9.0 and a Windows terminal in administrator mode. Skip it if you need an unmodified retail install, if you are on Linux and not prepared to use the darwin patcher folder, or if your organisation requires contributions to be traceable to their authors, because the project explicitly refuses code and documentation generated by language models. Before you start, read the AGPL-3.0 licence and the AI usage guidelines, and confirm your game version matches the patcher build you download.

Frequently asked questions

What is The Peacock Project and what does it replace?

Peacock is a server replacement for the HITMAN World of Assassination trilogy, whose primary purpose is preservation of the game, and it also adds new features and content and allows further enhancements in online mode.

How do I install Peacock from source?

Install Node.js, using version 22.9.0 or the latest, clone the repository, open a Windows terminal as administrator, run corepack enable, cd into the cloned folder and run yarn install. The patcher then needs administrator access to write into the game installation.

How do locale files get rebuilt in Peacock?

You edit locale.json and open a pull request, and the locale packages are rebuilt automatically when it is merged. For manual rebuilds, put rpkg_cli.exe, HMLanguageTools.exe and ResourceLib_*.dll in the resources folder and run yarn rebuild-locale from the root folder.

Can I contribute code generated by an AI tool to Peacock?

No. The project's AI usage guidelines state that content generated in part or in full by large language models, chatbots or other generative AI tools may not be contributed, and that the repository may not be used to train AI tools.

What licence is Peacock released under?

AGPL-3.0, with the license file in the repository root. Peacock began as a fork of LocalGhost by grappigegovert and the codebase was relicensed with explicit permission from that author.

Official sources

  1. License: AGPL-3.0
  2. Project website
  3. README
  4. Releases
  5. thepeacockproject/Peacock on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/thepeacockproject-peacock.svg)](https://hysenlabs.com/projects/thepeacockproject-peacock)

Was this useful?