Bring Git, code review, and AI to your PLC projects
Visual diff. Fearless merge. AI that knows your project.
Now in open beta · v0.1 · VS Code & Cursor
Treat your Studio 5000 code like real code — commit it, review it rung by rung, and merge it without breaking the project. Then let AI extend it with full context. Works offline, with any Git host.
Free, no signup required. Works offline. We never see your factory data.
Make Git work for PLC code
Git was built for text files. PLC projects are binary blobs and dense XML. CtrlLens closes that gap on three fronts.
Visual
See every change the way you read logic — ladder rungs, FBD blocks, and SFC steps on a real canvas. Added in green, deleted in red. No raw XML hunks, ever.
Powerful
Branch, tag, and merge per routine like any modern codebase. Resolve conflicts rung-by-rung with one-click accept — no hand-edited XML, no broken downloads.
AI-assisted
Your AI assistant works from ground truth — auto-generated project context with every tag, UDT, and instruction signature, so it extends your logic instead of guessing at it.
One repo. Every role. Any OS.
Two PLC engineers author in Studio 5000 and version their work with CtrlLens; a senior engineer reviews and merges from any OS. Each step below is tagged with the tool that runs it.
Exploded L5X · feature branches · pull requests
push → review → Merge / Rebase → pull
Developer A
PLC Engineer
Studio 5000 + CtrlLens · Windows
- 1Author logic (RLL / FBD / ST)Studio 5000
- 2Save the ACD projectStudio 5000
- 3Sync ACD → L5X (explode to Git)CtrlLens
- 4Commit & push a feature branchCtrlLens
- 5Open a Pull Request for reviewCtrlLens
- 6Pull merged main, Restore to ACDCtrlLens
- 7Reopen the ACD to keep buildingStudio 5000
- 8Onsite CommissioningStudio 5000
Developer B
PLC Engineer
Studio 5000 + CtrlLens · Windows
- 1Author logic (RLL / FBD / ST)Studio 5000
- 2Save the ACD projectStudio 5000
- 3Sync ACD → L5X (explode to Git)CtrlLens
- 4Commit & push a feature branchCtrlLens
- 5Open a Pull Request for reviewCtrlLens
- 6Pull merged main, Restore to ACDCtrlLens
- 7Reopen the ACD to keep buildingStudio 5000
- 8Onsite CommissioningStudio 5000
Senior Engineer
Code Reviewer
CtrlLens only · any OS
- 1Pull the Pull Request branchCtrlLens
- 2Visual diff: RLL / FBD / SFC / STCtrlLens
- 3Comment & request changesCtrlLens
- 4Resolve merge conflicts visuallyCtrlLens
- 5Approve & merge to mainCtrlLens
Run PLC code review, version control, and merges anytime, on any OS — even on a machine that doesn't have Windows or Studio 5000 installed.
Read every change rung by rung
Git's text diff turns a one-rung change into an unreadable wall of XML. CtrlLens renders ladder, FBD, SFC, and Structured Text side-by-side on a real canvas — added rungs in green, deleted in red, modified in yellow, with a change navigator that jumps you straight to what moved. Code review for PLC logic, finally readable.
Canvas, not XML hunks
Ladder, FBD, and SFC rendered the way you author them, not as raw L5X markup.
Color-coded changes
Added green, deleted red, modified yellow — spot the change at a glance, no line-by-line hunting.
Change navigator
Jump rung-to-rung between every difference; nothing slips through a review.
Every language
RLL, FBD, SFC, and ST all diff visually — including SFC action/transition bodies as ST.
Merge ladder logic with foresight, not fear
A Git merge conflict in a routine used to mean hand-editing conflicted L5X and praying the project still downloads. CtrlLens shows Ours vs. Theirs side-by-side on the canvas and resolves them rung by rung — so a merge is a review, not a recovery.
See conflicts clearly
The moment you merge, see exactly which rungs collide — on the canvas, while you still have context.
Resolve rung-by-rung
Ours vs. Theirs side-by-side with one-click Accept and batch resolve. You review logic, not XML markup.
AI-assisted resolution
Hand the conflict to your AI agent with full project context; it proposes a resolution with a plain-language explanation you review and accept. CtrlLens prepares the context — your agent does the reasoning.
No silently broken L5X
Every resolved merge is re-validated against operands, tag scope, and instruction signatures before commit — no corrupted project, no broken controller.
Branch per feature, merge per routine, ship with confidence.
Version control built for PLC code
As DevOps reaches the OT world, PLC projects face the same needs as any codebase — traceability, regression prevention, and parallel development across a team. CtrlLens adds the software-engineering layer industrial automation has been missing.
What CtrlLens brings your team
- Version control — commit, branch, tag, full history
- Code review — RLL / FBD / ST / SFC diff
- Multi-developer collaboration — merge conflict resolution
- CI/CD pipelines — scriptable CLI, quality gates
- Cross-platform — Windows / macOS / Linux
- AI context — your assistant works from ground truth
Code review on any OS
A reviewer on macOS, Linux, or Windows opens ladder logic visually, comments rung by rung, and merges the pull request — the whole review loop lives in VS Code or Cursor. Pull requests aren't tied to one workstation, so senior engineers can review from anywhere.
Pipelines that gate quality
l5xplode / l5xgit are scriptable .NET CLIs for any CI runner. A pre-commit Verify gate statically checks operands, tag scope, and instruction signatures, so regressions are blocked before they ever reach a controller. Every commit is a traceable, automatable artifact — not an opaque binary blob.
ACD ↔ L5X sync (free) explodes the binary into a per-routine Git tree. Every change is traceable; every branch is a real branch.
Stop briefing the AI. It already knows your project.
AI coding tools fail on PLC projects for two reasons: you spend half an hour explaining the controller before every task, and the AI model then guesses at tags it has never seen. CtrlLens removes both — engineered across three layers.
Stop re-explaining your project
No more pasting tag lists and controller layout into every chat. Your prompt shrinks to the task — "add a 5 s startup delay to Motor_1" — because the project briefing is already on disk and always current.
The AI works from ground truth
CtrlLens auto-generates PROJECT.md (every tag, UDT, AOI, scope rule, naming convention) plus a project-filtered instruction reference with exact operand signatures. The AI model reasons from your schema, not from training-data guesses.
Mistakes caught in the loop, not in the field
The AI writes XML; a file watcher re-renders the canvas in under 300 ms; any tag that does not exist turns red across every view; the pre-commit gate blocks invalid operands. A tight feedback loop reins in disorderly agent edits.
The three files that make it work
PROJECT.mdAuto-regenerated on every sync, save, and tag change. Controller metadata, full tag tables, UDT/AOI signatures, scope rules, live example tag XML, and mandatory safety constraints the AI must follow.
AGENTS.md & CLAUDE.mdYour project policies — naming conventions, HMI rules, safety-review requirements. AGENTS.md is the vendor-neutral standard (Cursor / Copilot / Codex); CLAUDE.md is a thin file that imports it. Written by you, read by the agent before any generic schema rule. One-time stub on first sync, then yours to own.
InstructionReference.mdThe instructions this project actually uses, drawn from a 346-mnemonic catalog with operand specs extracted from Rockwell help — so the AI emits valid signatures, not plausible-looking ones.
Works with any file-aware agent — Claude Code, GitHub Copilot, Cursor, or any MCP-compatible tool. We don't wrap any LLM. CtrlLens never calls an AI API itself; it only prepares the context the agent reads. Our focus is connecting you faster to whichever AI Model you already trust, so it can help you build PLC programs from ground truth instead of guesses. AI Context is a Pro feature.
Works with any Git host — no vendor lock-in
Some industrial version-control tools force you into a specific cloud platform. CtrlLens uses standard Git and standard L5X. Push to wherever your company already hosts code.
GitHub
Public or private repos, GitHub Actions CI
Azure DevOps
Azure Repos, Pipelines, enterprise SSO
GitLab
Self-hosted or gitlab.com, built-in CI/CD
Your own server
Bare Git, Gitea, Bitbucket — anything that speaks git push
CtrlLens exports to standard L5X + Git. Migration is a one-time ACD → L5X explode. After that, every commit is portable.
Everything else you'd expect from a modern dev tool
How it works
Install & open your project
One click from the VS Code Marketplace — runs in VS Code and Cursor. Open an L5X file or an exploded RSLogix5000Content/ folder — routines, tags, and programs render in a navigable project tree. No account required.
Version it like real code
Commit, branch, and diff at the routine level. Review changes rung by rung. Resolve merge conflicts visually. AI context auto-generates on every save.
Upgrade when ready
Git, visual diff, interactive editing, merge, and AI context require Pro. 14-day trial, no credit card, then the early-bird price of $25/year — locked in for as long as you stay subscribed.
Cross-platform. Privacy-first.
Frequently asked questions
Why not just commit the .ACD file to Git?
ACD is a proprietary binary — Git sees it as one opaque blob, so you get no diff, no merge, no review. CtrlLens explodes ACD into L5X and then into a per-routine directory tree, so every commit shows exactly which rung or block changed.
Do I have to read XML diffs to review changes?
No. That's the point. Visual diff renders ladder, FBD, and SFC side-by-side on a canvas with added/deleted/modified rungs colour-coded and a change navigator. Merge conflicts are resolved rung-by-rung with Accept Ours / Accept Theirs buttons.
Can I run this in a CI/CD pipeline?
Yes. l5xplode / l5xgit are scriptable .NET CLI tools you can run on any CI runner for automated explode/implode and validation. A pre-commit Verify gate statically checks operands, tag scope, and instruction signatures before a change is committed.
Which AI tools does it work with?
Any AI coding assistant that reads files in your workspace: Claude Code, GitHub Copilot, Cursor, Cody, or any MCP-compatible agent. CtrlLens doesn't call any AI API itself — it generates the context files (PROJECT.md, CLAUDE.md, InstructionReference.md) that the AI reads.
What happens if the AI invents a tag that doesn't exist?
Every view (ladder, FBD, SFC) highlights non-existent tags in red the moment they render — before you ever compile. When the tag is created or fixed, the highlight clears automatically. The pre-commit gate also blocks invalid operands.
Can I use my company's existing Git server?
Yes. CtrlLens uses standard Git. Push to GitHub, Azure DevOps, GitLab (cloud or self-hosted), Bitbucket, Gitea, bare repos, or any server that speaks git push. No vendor lock-in.
Does it work on air-gapped OT networks?
Yes. After one-time activation the license verifies offline, with offline Borrow/Return for on-site work. We also support manual offline activation for fully isolated environments.
Do you track what I do in the extension?
No. We collect zero telemetry. The extension only contacts our servers for license activation and biweekly refresh. Your projects, tags, and logic stay on your machine.