Installing TIATool
One line (PowerShell, engineering PC with TIA Portal):
irm https://tiatool.dev/install.ps1 | iex
Unattended with a key: $env:TIATOOL_LICENSE_KEY='XXXX'; irm https://tiatool.dev/install.ps1 | iex
Or run TIATool-Setup.exe /SILENT /LICENSEKEY=XXXX /CLIENTS=claude,cursor.
Setup (installer/tiatool.iss) installs to C:\Program Files\TIATool, detects TIA Portal V17–V21 Openness,
adds you to "Siemens TIA Openness" (sign out/in once), then runs tiax-agent init as you:
doctor → license key → MCP registration for Claude Desktop, Cursor, VS Code
(ticked by default) and, when you tick them, Claude Code, Windsurf, Cline, Codex CLI and Gemini CLI
(/CLIENTS=claude,cursor,claude-code,... unattended). Log: %LOCALAPPDATA%\TIATool\install-init.log.
Verify the installer before you run it: its SHA-256 is published on the website's /download.sha256
(Get-FileHash TIATool-Setup.exe). After an upgrade from 0.7 or older, read the upgrade notes in
CHANGELOG.md — online tools now need a policy, and existing caches want a re-scan.
Licence
TIATool needs an active licence: EUR 99.99/month or EUR 999.99/year per seat. Without one every tool
refuses with an "activate or buy" message; doctor, init, license and setup still work.
tiax-agent license activate TT-XXXXX-XXXXX-XXXXX-XXXXX # a purchased key
tiax-agent license status # plan, features, expiry
Air-gapped PC (yearly, enterprise, offline and edu plans): tiax-agent license request-offline --key <KEY>
writes a request file; upload it on the website from any PC with internet and bring back the licence
file; tiax-agent license import <file> installs it (verified offline, bound to this PC, no refresh).
Behind an authenticating proxy, licence and update calls use the system proxy with your Windows
credentials. tiax-agent update --check tells you about a newer release; it never installs anything.
Administrators: policy
Online tools (plc_download, plc_online, plc_compare_online) are off until a policy allows them,
and a policy can make a PC read-only, switch scripts off, limit projects to folders and require
approvals. From an elevated prompt:
tiax-agent policy init --machine --allow-online # %ProgramData%\TIATool\policy.json, commented example
tiax-agent policy show # what applies, and which file set each value
Examples (read-only plant, commissioning PC, CI runner): security/policy.md.
Client entry written by setup:
{ "mcpServers": { "tiatool": { "command": "C:\\Program Files\\TIATool\\tiax-agent.exe", "args": ["mcp"] } } }
Try it without TIA Portal (5 minutes)
tiax-agent init --demo
Builds %LOCALAPPDATA%\TIATool\demo from the shipped sample ({app}\samples: a small export with PLC
blocks, a tag table and an HMI, plus an equipment model), scans it, and registers it as the server
tiatool-demo (read-only explore toolset) in every AI client installed for you — your tiatool
entry is never touched. Restart the client and ask the questions it prints. Rebuild with the same
command; remove with tiax-agent setup --remove --name tiatool-demo --all.
AI clients
tiax-agent setup --client <list> or --all (every client installed for you):
| Client | id | Config written |
|---|---|---|
| Claude Desktop | claude |
%APPDATA%\Claude\claude_desktop_config.json (stdio only) |
| Cursor | cursor |
%USERPROFILE%\.cursor\mcp.json |
| VS Code | vscode |
%APPDATA%\Code\User\mcp.json (servers) |
| Claude Code | claude-code |
%USERPROFILE%\.claude.json user scope ($CLAUDE_CONFIG_DIR if set) |
| Windsurf | windsurf |
%USERPROFILE%\.codeium\windsurf\mcp_config.json |
| Cline | cline |
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json |
| OpenAI Codex CLI | codex |
%USERPROFILE%\.codex\config.toml [mcp_servers.tiatool] ($CODEX_HOME; stdio only) |
| Gemini CLI | gemini |
%USERPROFILE%\.gemini\settings.json |
Other servers and your own keys in the entry are kept; every change first takes a new timestamped
*.bak. Options: --toolset explore (recommended for read-only users), --http, --name, --remove,
--dry-run. tiax-agent doctor lists where TIATool is registered.
Long calls (builds, compiles: minutes): Cline, Codex and Gemini CLI get a 600 s per-server timeout in
the entry. Claude Code reads MCP_TOOL_TIMEOUT from its own environment — set
MCP_TOOL_TIMEOUT=600000 (ms) there or in ~/.claude/settings.json "env" (MCP_TIMEOUT is only the
server start-up timeout; setup no longer writes it into server entries, where no client read it).
Support and privacy
tiax-agent support-bundle [--out x.zip]— doctor output, versions, config, logs, policy and selftest overlay with licence keys, tokens, e-mails and user/machine names masked. Written locally; nothing is uploaded.tiax-agent privacy— every endpoint TIATool can contact (licence server only; no telemetry).- Logs:
%LOCALAPPDATA%\TIATool\logs\tiax-agent*.log(Linux:~/.local/state/TIATool/logs), 5 × 1 MB.TIATOOL_LOG_DIRmoves them,TIATOOL_NO_LOG=1turns them off.
Flavours: the hosted preview installer (preview-installer.yml) ships tiax.exe (V19) only, compiled against the
Openness reference stub. The full build (release.yml, TIA runner) ships tiax.exe (V19) and tiax-v21.exe (V21). tiax-v17/v18/v20.exe are built by
build.cmd / release.yml when TIA_PUBLICAPI_V17/V18/V20 exist on the build machine (unverified).
Release: tag vX.Y.Z → .github/workflows/release.yml (self-hosted TIA runner, optional PFX signing).
The site's /download redirects to the TIATOOL_INSTALLER_URL env var (503 until set).
Built from docs/INSTALL.md in the product repository. Links to files that are not published here are shown as plain text.