Bring Git, code review, and AI to your PLC projects
Visual diff. Fearless merge. AI that knows your project.
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.
Still versioning with “Save As”?
- LineA_Project_20250520.ACD
- LineA_Project_20250521.ACD
- LineA_Project_20250522_fix.ACD
- LineA_Project_20250522_fix2.ACD
- LineA_Project_FINAL.ACD
- LineA_Project_FINAL_use_this_one.ACD
A folder full of date-stamped .ACD files isn't version control. You can't tell what changed, who changed it, or why — and a week later, neither can anyone else.
CtrlLens gives your Studio 5000 projects a real version history — every change visible, reviewable, and reversible.
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 — plain-text Git artifacts, 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
Exploded L5X is plain text — every routine is a diffable file in standard Git, so branches, pull requests, and history work on any host. The Verify gate statically checks operands, tag scope, and instruction signatures at commit time, so regressions are blocked before they ever reach a controller. Every commit is a traceable 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 four 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 full instruction index marking what your project already uses, with exact operand signatures on demand. 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.
MCP tools with a verify gate
A built-in MCP server hands your agent seven tools: search the full instruction catalog, pull exact operand specs, load a routine's tag & AOI context in one call, preview ladder structure, verify generated logic before it touches disk — and, on Pro, apply a verified rung through the editor's own save pipeline and review commits or uncommitted changes as a structured semantic diff anchored to rungs and elements. Safety programs are always refused.
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.
InstructionIndex.mdThe full Logix instruction catalog — every mnemonic and alias, with a ✓ on what your project already uses — so the AI can confirm an instruction exists before writing it. Mnemonics borrowed from other PLC families are hallucination bait; this is the deterministic net that catches them.
Works with any file-aware agent, and any MCP client: GitHub Copilot agent mode discovers the built-in MCP server automatically, and a single command sets up Claude Code / Cursor. We don't wrap any LLM. CtrlLens never calls an AI API itself; it only provides the context and tools the agent uses. 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. The MCP ground & verify tools are free; AI Context, rung apply, and commit review are Pro.
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, AI context, and MCP rung apply require Pro. 14-day trial, no credit card, then the early-bird price of $25/year — our launch price, going up later.
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. Your project is a standard Git repository of plain-text L5X, so it plugs into any CI/CD host — GitHub Actions, Azure Pipelines, GitLab CI, and the rest — for branch protection, pull-request review, and full history. The Verify gate statically checks operands, tag scope, and instruction signatures at commit time, blocking regressions before they reach a controller.
Which AI tools does it work with?
Any AI coding assistant that reads files in your workspace — Claude Code, GitHub Copilot, Cursor, Cody — plus any MCP-capable agent: CtrlLens ships a built-in MCP server whose tools let the agent search the instruction catalog, pull routine context, verify generated logic before it touches disk, and (Pro) apply a verified rung. CtrlLens doesn't call any AI API itself — it provides the context files and tools the agent uses.
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. Pick the offline or borrowed tier and the license verifies locally with no connection — borrow for 7 / 14 / 30 days of on-site work, or do a manual offline activation (export a request, sign it on a connected PC, import the file) for fully isolated machines. The default online tier does a lightweight license re-check (~ every 12 h) only when it has network.
Do you track what I do in the extension?
No — zero telemetry. The extension contacts our servers only to activate and to re-check the license (online Pro ~ every 12 h; offline and borrowed never connect), and that check sends only your license key, machine ID, and extension version. Your projects, tags, and logic stay on your machine.