Skip to content
Automation
Skill

/addin-operations

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.

From plugin
totally-integrated-claude
5919 skills1 hook1 MCP
Install
$ npx -y skills add Czarnak/totally-integrated-claude --skill addin-operations --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/addin-operations

Context preview

The summary Claude sees to decide when to auto-load this skill.

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.

SKILL.md

addin-operations.SKILL.md
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 *)

TIA Portal Add-In Development — Visual Studio Code

Source: TIA Portal Add-In Development Tools Manual (11/2025)

Scope

Add-In development in VS Code using C# and the dotnet Add-In SDK. Do not mix with Python wrapper calls.

---

Reference files

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.

---

Execution pattern

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

---

Task: Create new Add-In C# project

Procedure

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]

Essential parameters

| 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`. |

Example

dotnet new addin-project -o C:\MyAddIns\MyFirstAddIn -n MyAddinProject -N MyAddinNamespace -TI ReadWrite

Additional parameters

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.

Result

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.

---

Task: Add an Add-In template to existing project

Procedure

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.

Available templates

**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

Read more
Ships withtotally-integrated-claude

A Claude Code plugin for Siemens TIA Portal engineering automation. Provides a routed skill framework for TIA Portal engineering automation: Siemens TIA Scripting Python V1.4.3 for its supported wrapper surface, audited C# Openness skills for advanced

Get the whole plugin
Stats
59
Stars
10
Forks
Active
Maintenance
PowerShell
Language
MIT
License
28d ago
Last commit
5mo ago
Created

Repo: Czarnak/totally-integrated-claude

Other skills on totally-integrated-claude.