foch
Foch analyzes an ordered Europa Universalis IV playset and writes a separate,
deterministic merged mod. It keeps the compatible contributions of each mod
and reports genuine conflicts for review instead of silently picking a winner.
Source mods and the game installation are only read. The foch-cli crate
builds the foch program, including the foch lsp language server; the foch
crate is the library behind it. foch-annotation, foch-lsp, foch-runner
and foch-test are internal libraries of the program, published because
crates.io builds foch-cli from published crates only; their Rust APIs carry
no semver promise.
Foch supports Europa Universalis IV only and is alpha software: merging is not yet reliable across arbitrary modlists, so check a merged mod in game. The development plugin launcher supports isolated Windows x64 EU4 launches with a separately built DLL host; see the plugin deployment commands. Read the current boundary before relying on merge output.
Install
foch is built for Linux x64, macOS arm64 and Windows x64. The
install section of the project README
lists the channels a release has been installed and verified from.
foch --version prints foch-cli <version> and the cwt-schema id of the
rules embedded in that release.
The crates.io package foch 0.1.0 is an older, unrelated product. If you
installed it, run cargo uninstall foch before installing foch-cli; both
provide a foch executable.
First run
An installed program is not yet ready to merge. Foch first needs an EU4 base-data snapshot built from your own game installation:
foch data build eu4 --from-game-path "/path/to/Europa Universalis IV" --game-version auto --install
Build and try it walks through that setup and a first merge. Installation says nothing about merge quality, which the project measures separately; see the project status and the documentation.
Source and licensing
Foch's own code is AGPL-3.0-only. The program also contains an adaptation of
Mergiraf (GPL-3.0-only) and embeds a rule pack compiled from the CWTools EU4
config (MIT), so the foch library and every foch program are distributed
as AGPL-3.0-only AND GPL-3.0-only AND MIT; the source of the other five
crates is AGPL-3.0-only. Each program also statically links Rust crates under
their own licenses. See
NOTICE.md and
THIRD-PARTY-LICENSES.txt.
The source of each release is tag v<version> of
https://github.com/Acture/foch with its two build submodules,
src/packages/tree-sitter-paradox and
src/packages/foch/vendor/cwtools-eu4-config. It is published as
foch-<version>-source.tar.gz on that tag's
GitHub release; GitHub's automatic
source downloads leave out the submodules.
Metadata
Release files for foch 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| foch-0.0.2-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| foch-0.0.2-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| foch-0.0.2-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 30.1 MB
Release files / foch-0.0.2-py3-none-win_amd64.whl
| Download URL | foch-0.0.2-py3-none-win_amd64.whl |
|---|---|
| Size | 10.4 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fb8513d0c6a0c94e182c9e98e049afce60229740af09117e89a4fb74c8e898b7
|
|
BLAKE2b-256 checksum How to use checksums |
6cb37d8bbedfe067d9cb1b5d9e9d3f082b205ca6030f510042efaf80a385d177
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / foch-0.0.2-py3-none-manylinux_2_28_x86_64.whl
| Download URL | foch-0.0.2-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
6294de4b0d014b436c4ef6f3ab3ed8f93ab1d4f789d2d6aab7728d6c5efeb223
|
|
BLAKE2b-256 checksum How to use checksums |
71c9f77213f4211db602aaede643d7c0a9c233ed3cd0d3ca2e1ce944a3b46e80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / foch-0.0.2-py3-none-macosx_11_0_arm64.whl
| Download URL | foch-0.0.2-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.4 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
60be44197d32e0d66051e001f5e31b28a72a1afff6ac4fcf83f33c4609e6aa03
|
|
BLAKE2b-256 checksum How to use checksums |
f493e54a59480f02d4a7d335163604a11bb94ca2d5cdf09275981f8709a494b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency log