Skip to content

FactorySemantics MES

An open-source, modular, agent-native Manufacturing Execution System. Apache-2.0. Pre-alpha, running simulated plants only (as of 2026-09-07).

Simulated

Every number on this site comes from a simulated plant unless the page says otherwise. The MES has not run a real plant in production yet. Pages say what works and what does not.

35 seconds on the lab bottling plant: a stop, a sample, a maintenance job, and why each happened.

A walk through a running plant: the floor, losses by machine, a stop on the filler's timeline, the SPC sample behind a low fill height, and the rule trace behind a maintenance job

Three doors

- **I run a plant** --- Bring up a simulated line in a minute, then point the same MES at your Kepware or OPC UA server with a one-page worksheet. Read OEE that says *unknown* when it does not know. [:octicons-arrow-right-24: Plant](plant/index.md) - **I operate systems** --- Deploy with Compose or systemd, run several plants from one registry, connect ERPNext, and read the settings, CLI and API references generated from the code. Standing it up **beside the MES a plant already runs** has [its own guide](operate/first-plant.md). [:octicons-arrow-right-24: Operate](operate/index.md) - **I write code** --- The architecture, the house rules, the decision records, and how a module registers itself through an entry point. [:octicons-arrow-right-24: Develop](develop/index.md)

Agents get their own book: connect an MCP client, the 95 tools, and why every write takes dry_run.

Install

pipx install factorysemantics-mes    # or: uv tool install factorysemantics-mes
fsmes info
fsmes demo

fsmes demo releases one order against a routing, runs it down a simulated two-station line over a real OPC UA server, books honest production and finishes the order — in one process, no setup. The tutorial walks through what you are looking at.

On a PC of your own — a Windows one especially — run it on your own box is the first hour on one page: what to do when fsmes is not on PATH, how to tell whether the plant is still running, and what to type when half of it has died.

Where to talk

GitHub Discussions for questions and ideas; issues for bugs; never real plant data in either. The maintainer answers within days, not hours — GOVERNANCE says why.