plc-code-analysis
Standalone skill for multi-perspective PLC code security and quality analysis. Triggers on: "review", "audit", "analyze",…
TIA Portal Add-In development in Visual Studio Code: creating Add-In C# projects, adding Add-In templates, compiling and debugging Add-Ins, converting Add-Ins from older TIA Portal versions and configuring Add-In project parameters.
Claude Code
$ npx -y skills add Czarnak/totally-integrated-claude --skill addin-operations --agent claude-code
Codex
$ npx skills add Czarnak/totally-integrated-claude --skill addin-operations -a codex -y
Cursor
$ npx skills add Czarnak/totally-integrated-claude --skill addin-operations -a cursor -y
Gemini CLI
$ npx skills add Czarnak/totally-integrated-claude --skill addin-operations -a gemini-cli -y
GitHub Copilot
$ npx skills add Czarnak/totally-integrated-claude --skill addin-operations -a github-copilot -y
OpenCode
$ npx skills add Czarnak/totally-integrated-claude --skill addin-operations -a opencode -y
Windsurf
$ npx skills add Czarnak/totally-integrated-claude --skill addin-operations -a windsurf -y
name: addin-operations description: > TIA Portal Add-In development in Visual Studio Code: creating Add-In C# projects, adding Add-In templates, compiling and debugging Add-Ins, converting Add-Ins from older TIA Portal versions and configuring Add-In project parameters. license: MIT allowed-tools: Bash(dotnet new *)
Source: TIA Portal Add-In Development Tools Manual (11/2025)
Add-In development in VS Code using C# and the dotnet Add-In SDK. Do not mix with Python wrapper calls.
---
Load ONLY the reference file(s) relevant to the task. Do not load all files at once.
| Reference file | Load when the task involves | |---|---| | `references/api-surface.md` | Choosing provider/add-in types; VCI or CAx workflow item types; workflow-to-assembly mapping | | `references/api-menus.md` | Building context menu structures; action items; submenus; selection handling | | `references/api-permissions.md` | Starting external processes; handling ProcessStartPermission | | `references/assembly-references.md` | Adding PLC software, block, or tag access to an Add-In csproj | | `references/attribute-helper.md` | Reading/writing engineering object attributes via `GetAttributeInfos` or `SetAttributes` | | `references/threading-and-callbacks.md` | Add-In execution lifetime; notifications and confirmations; separate-process UI; status callback constraints | | `references/runtime-gotchas.md` | Unsupported assembly-path resolution; managed dependency packaging; SplitContainer sizing crashes; WinForms `.resx` sandbox failures; version fields; engineering-object field warnings | | `references/package-and-publisher.md` | `.addin` package internals; V21 publisher config; `PlatformTarget`; verifying a published package | | `references/migrate-from-older-version.md` | Converting a V20 (or earlier) Add-In to V21; decompiling an existing `.addin` when source is lost | | `references/skeleton.md` | Starting a new context-menu Add-In from scratch |
For tasks spanning multiple areas, load all relevant reference files before generating code.
---
1. Pick the Add-In type → run `dotnet new <template>` (see template table below) 2. Decide which TIA Portal objects the Add-In must access; if PLC/SW/HW → load `references/assembly-references.md` 3. Implement `BuildContextMenuItems` — status callback returns `MenuStatus.Enabled`, guard logic goes in the action callback 4. For UI: use callback-scoped `MessageBoxProvider`, or a permitted separate process for long-lived/custom UI → load `references/threading-and-callbacks.md` 5. Before distributing: compile with "Run build task", debug with F5
---
1. Open the Windows command prompt with administrator privileges. 2. (Optional) Navigate to the desired project location, or use the `--output` parameter. 3. Run:
dotnet new addin-project [options]
| Parameter | Long form | Short | Description | |-----------|-----------|-------|-------------| | output | --output | -o | Project folder. If not specified, project is created in the current directory. | | name | --name | -n | Project name. If not specified, the parent directory name is used. | | Namespace | --Namespace | -N | C# namespace. Default is derived from output directory or project name. | | TIAAccess | --TIAAccess | -TI | Authorization level: `ReadWrite` (default) or `ReadOnly`. |
dotnet new addin-project -o C:\MyAddIns\MyFirstAddIn -n MyAddinProject -N MyAddinNamespace -TI ReadWrite
The following parameters can also be set at creation time but are **editable later in `Config.xml`** inside the project directory: Author, Description, AddInVersion, ProductName, ProductId, ProductVersion, UnrestrictedAccess, JustificationComment.
A new project is created containing the framework for an empty Add-In that can be built. The project directory contains `Config.xml` for changing parameters after creation.
---
1. Open the Windows command prompt with administrator privileges. 2. Navigate to the project directory (or use `--output`). 3. Run:
dotnet new <Add-In-Type> [-o <output dir>] [-n <name>] [-N <namespace>]
Replace `<Add-In-Type>` with the short name from the table below.
**addin-project-tree-menu** — TIA Portal Project-Tree Context Menu Add-In Adds custom entries to the right-click menu of the project tree. Use cases: automating operations on blocks, tag tables, or devices; batch-exporting selected items; running custom validations on project tree objects.
**addin-project-library-tree-menu** — TIA Portal Project-Library-Tree Context Menu Add-In Adds custom entries to the right-click menu of the project library tree. Use cases: custom library management operations; automated copying or versioning of library types; bulk operations on library elements.
**addin-global-library-tree-menu** — TIA Portal Global-Library-Tree Context Menu Add-In Adds custom entries to the right-click menu of a global library. Use cases: synchronizing global library content with external systems; enforcing naming conventions across library elements; automated library maintenance tasks.
**addin-devices-and-networks-menu** — TIA Portal Devices and Networks Context Menu Add-In Adds custom entries to the right-click menu of the hardware and network editor. Use cases: automated network configuration; bulk device parameter changes; generating device reports or hardware bills of materials.
**addin-vci-editor** — TIA Portal VCI Editor Add-In Adds entries to the workspace area of the Version Control Interface workspace editor. These entries are always visible and should contain general-purpose functions. For repository-specific operations, use the VCI Import or VCI Export templates
An agent plugin for Siemens TIA Portal engineering automation, compatible with Claude Code, Codex, and GitHub Copilot in VS Code and Copilot CLI.
Standalone skill for multi-perspective PLC code security and quality analysis. Triggers on: "review", "audit", "analyze",…
Internal reference skill — do NOT load directly from user queries.
Manual, read-only prerequisite probe for TIA Portal V21 and its modular Openness API, with an optional Python TIA Scripting check.
C# Openness implementation of import/export and round-trip engineering.
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…