Direct answers to the questions controls engineers, system integrators, and IT
teams have asked us. If yours is missing, send a note to
hello@koyl.ai.
Is this a new programming language?
No. Koyl compiles standard Python. Anything that parses as Python 3.11 parses for Koyl. The compiler enforces a strict allowlist of supported constructs, with Python's syntax, semantics, and error messages throughout, but there is no new grammar to learn and no new file extension to adopt.
Do I have to rewrite my existing projects?
No. Koyl ingests L5X, SimaticML, and TcPOU losslessly. You can open a working project, edit it in Python, and export it back with a clean diff. Round-trip is a first-class guarantee, not a convenience.
How is this different from a custom PLC DSL?
A DSL asks your team to learn new syntax, your editors to ship new plugins, your CI to build new infrastructure, and your tests to run on a new runtime. Koyl asks none of that. Python brings the rest of software with it: version control, code review, type systems, automated tests, formatters, language servers, packaging, and the broader ecosystem any Python developer already uses. A DSL starts that ecosystem from zero.
How is this different from a one-way greenfield compiler?
A one-way compiler assumes you are starting a project from zero. That does not describe the installed base of Western industry. Koyl is bidirectional. Vendor files remain valid source, and Python remains valid source, and you move between them without loss.
Which PLCs do you support?
Allen Bradley (ControlLogix, CompactLogix via L5X), Siemens (S7-1200, S7-1500 via SimaticML), and Beckhoff (TwinCAT 3 via TcPOU and tsproj). These three vendors cover the majority of Western industrial deployments. Additional targets are on the roadmap after the core three are fully hardened in the field.
What does the Universal IR give me?
The IR is a structured, serializable Pydantic model. You can inspect it, diff it, analyze it statically, and, crucially, give it to a language model as a function-calling target. Unlike an opaque compiler pipeline, Koyl's IR is a programmable surface. Build linters, migration tools, or AI agents against it.
Does Koyl come with its own IDE?
Yes. Koyl ships an editor with the AI chat, scan-cycle simulator, and vendor parsers built in. Because the source language is standard Python, every language server, linter, formatter, and testing tool the wider Python community already uses works inside it. You don't switch dev-tool ecosystems; you get them tuned for industrial code.
What about simulation?
Koyl includes a deterministic scan-cycle simulator that walks the IR. You can pin existing behavior with characterization tests, then verify changes before they go near hardware. The simulator is the same loop the chat agent uses to verify its own suggestions before showing them to you.
Is the generated code readable?
Yes. Readability is a requirement, not a nice-to-have. High-level framework features (state machines, timing helpers, edge detection) compile down to ordinary CASE statements, FB invocations, and boolean logic. A technician on the plant floor can open the exported L5X, SimaticML, or TcPOU in the vendor IDE and understand it without knowing Koyl exists.
When can I use it?
Now, through the design partner program. We are onboarding ten controls teams and system integrators with hands-on access to the full toolchain.
What does the name mean?
Koyl is pronounced like "coil," after the relay coil, the symbol every ladder logic program inherits from the electromechanical controls that came before. The name is a nod to what this industry was built on, and to what it's still for.