Skip to content

Open the black box.

Decrypt, diff, validate, and cross-reference 60+ PLC and HMI platforms — from your terminal or the cloud.

What makes it different
Three capabilities no other tool has.

60+ providers across 10 PLC and 24 HMI platforms — all normalized into one universal model.

Reads encrypted project files

Decrypts and parses proprietary formats across 60+ providers — Schneider .zdat/.project, Rockwell .ACD/.L5X, Siemens .ap19, Beckhoff .tsproj, Ignition .gwbk, and 50+ CODESYS OEM variants. Content-based identification, not just file extensions.

Normalizes to a universal model

Every vendor's proprietary format is converted into a common data model — POUs, variables, hardware, panels, alarms, recipes. Diff a Schneider project against a Siemens project using the same rules and the same output format.

Validates across system boundaries

Cross-references HMI and PLC projects with 6 built-in rules — phantom bindings, orphaned exports, type mismatches, direction conflicts, address mismatches. The bugs that live in the gap between vendor tools.

Works with the platforms you already use
37+ PLC providers · 24 HMI providers · 50+ CODESYS OEM variants
Schneider Electric Rockwell / Allen-Bradley Siemens Beckhoff B&R Ignition Mitsubishi Omron Delta AVEVA GE Pro-face Weintek 50+ CODESYS OEMs
Built for
The people who actually touch the projects.
Controls Engineers

Stop merging encrypted binaries blind. Extract, diff, and lint PLC projects across Schneider, Rockwell, Siemens, and more — with git integration, call tree analysis, and SARIF output for your IDE.

System Integrators

Manage dozens of multi-vendor projects without opening each vendor's GUI. Validate deliverables before they ship to site — or use Glyphsix Cloud for team-wide version history, automated diffing, and audit reports.

Compliance Teams

Generate audit-ready change reports and cross-validation results for projects that were previously opaque.

How it works
Three commands. Full visibility.

No licenses to approve. No vendor portals. Python 3.10+ is all you need.

1

Install

One command. Works anywhere Python runs. No vendor software required.

$ pip install glyphsix
2

Point

Aim at any project file — .zdat, .L5X, .ap19, .tsproj, .gwbk, .ACD, and 50+ more formats. Auto-detected, no flags needed.

$ glyphsix-plc inspect MainProgram.L5X
3

See everything

POUs, variables, hardware, I/O maps, panels, alarms, call trees, dependency graphs — extracted and structured across vendors.

$ glyphsix validate --hmi project.zdat --plc project.L5X
Beyond inspect
A full engineering toolkit, not just a viewer.

Extract, rebuild, lint, graph, and deploy — all from the terminal.

Extract & Rebuild

Decrypt encrypted PLC projects to clean .st files. Edit in your favorite editor. Rebuild back into the vendor binary. The only round-trip workflow for CODESYS projects.

Hardware & I/O Analysis

Extract device trees, I/O address maps, conflict detection, and network topology. Suggest the next available address. Export to CSV for documentation.

Git Integration

Configure git to diff .project files natively. Run git diff on encrypted binaries and see semantic changes — added POUs, modified variables, renamed types.

Call Trees & Safety Analysis

Visualize POU call hierarchies with cycle detection. Export to GraphViz or Mermaid. Verify safety POU isolation — safety code shouldn't call non-safety code.

Impact Analysis

Build a dependency graph spanning HMI and PLC. Before removing a variable, see every panel, alarm, and POU that depends on it — across vendor boundaries.

HMI Digital Twin

Render HMI panels to HTML for visual review. Or start a live simulation server with real-time variables via WebSocket — optionally connected to a real PLC via OPC UA.

Glyphsix Cloud
Same engine, team-wide visibility.

The CLI is the local-first engine. Glyphsix Cloud adds version history, team collaboration, automated diffing, fleet management, and webhook-driven CI/CD on top of it.

Upload & Auto-Parse

Drag-and-drop any project file. Get a full structural breakdown with real-time progress streaming — panels, variables, hardware, POUs, alarms.

Version History & Diffing

Every upload creates an immutable version. Auto-diff on upload compares against the previous version. Manual diffs between any two versions.

Team Collaboration

Role-based access control (owner, admin, editor, viewer). Invite your team, organize projects in folders, track who uploaded what and when.

Reports & Webhooks

Generate audit-ready Excel and PDF reports. Push events to Slack, CI/CD pipelines, or custom integrations via HMAC-signed webhooks.

The difference
From opaque binary to structured data.
What you have
00000000  54 57 4F 46  49 53 48 00  01 00 00 00  A3 F8 2D 91  |TWOFISH.....£ø-.|
00000010  7E C4 B2 38  D1 0A 66 F5  89 AB 4C 22  0E 73 D8 A1  |~IJ8Ñ.fõ.«L".sØ¡|
00000020  3B 94 E7 50  C8 1F A0 6D  F4 82 55 B9  2C 68 D3 07  |;.çPÈ. mô.U¹,hÓ.|
00000030  A6 4B 19 E2  5D 90 F1 C3  74 0B 63 87  38 DE A5 4F  |¦K.â].ñÃt.c.8Þ¥O|
00000040  1C 7A B6 E8  43 9D 02 F7  65 D4 80 2E  A9 51 C6 3A  |.z¶èC..÷eÔ..©QÆ:|
00000050  8C 14 FB 76  28 E0 97 5C  B3 6F 40 D9  15 82 AC E3  |..ûv(à.\³o@Ù..¬ã|
00000060  61 C9 34 7D  F6 A2 0F 58  9E 4A D7 B1  26 70 8D C0  |aÉ4}ö¢.X.J×±&p.À|
00000070  53 1A E6 42  BD 09 F0 7C  84 6E 3D A8  C5 47 91 D6  |S.æB½.ð|.n=¨ÅG.Ö|
00000080  2A FE B8 1D  63 E4 AA 57  30 95 DB 5E  79 C2 06 EF  |*.¸.cäªW0.Û^yÂ.ï|
00000090  A4 6C 11 88  F3 BE 48 D0  75 3C E1 9B  4D 8B C7 25  |¤l..ó¾HÐu<á.M.Ç%|
000000A0  FA B4 69 07  5F A1 E9 3A  CD 8E 56 F8  12 C8 DA 46  |ú´i._¡é:Í.Vø.ÈÚF|
000000B0  A7 2F 93 BB  60 D5 1E 82  F2 4E 76 C1  39 E5 AD 50  |§/.»`Õ..òNvÁ9å­P|
000000C0  8A 17 EB 64  B0 03 FC 7E  D2 45 9F A3  6B C4 31 ED  |..ëd°.ü~ÒE.£kÄ1í|
What Glyphsix shows you
▶ Project: REACTOR7_v4
  Format:  Vijeo Designer 6.2 SP11
  Panels:  14    Variables:  847    Alarms:  62

▶ Panel: MainOverview
  Resolution:  1024×768
  Objects:    38
  Bindings:
    NUMERIC  Zone1_PV   ← %MW100  ✓ valid
    NUMERIC  Zone2_PV   ← %MW102  ✓ valid
    NUMERIC  Zone3_PV   ← %MW104  ✓ valid
    BAR      Pressure   ← %MW200  ✓ valid
    SWITCH   EmergStop  ← %M50.0  ✓ valid

▶ Cross-Validation
  ✓ 841/847 bindings resolved
  ⚠ 6 warnings:
    Zone4_SP references %MW106 — not declared in PLC
    Recipe_Idx references %MW300 — type mismatch (INT/REAL)
Ready to see what's inside?

Install Glyphsix and run your first diff in under five minutes.

Requires Python 3.10+ · Works on Windows, macOS, Linux
glyphsix

Pre-release preview