# 2ot > 2ot is an industrial automation execution and tooling layer for IEC 61131-3 Structured Text. It is normally invoked by automation scripts, CI systems or LLM agents from the harness chosen by the engineer. The engineer chooses and controls the harness, permissions and review workflow. Direct CLI use remains available for setup, inspection and debugging, but it is not the primary product model. ## Start here - [For agents](/for-agents.md): machine-oriented product model, discovery and safety boundaries. - [MCP and agent tooling](/mcp-agents.md): local operational MCP model. - [CLI reference](/cli-reference.md): routed commands and machine-readable command discovery. - [Fast diagnostics](/diagnostics.md): low-latency compiler diagnostics and LLM-oriented enrichment. ## Agents - [CLI reference](/cli-reference.md): Workspace-aware 2ot router commands and machine-readable command discovery. ## Capabilities - [Language Server Protocol](/lsp.md): Structured language intelligence for harnesses that need source-aware PLC tooling. - [Capabilities](/capabilities.md): Compiler, diagnostics, testing, LSP and routed vendor automation for IEC 61131-3 workflows. - [Testing](/capabilities/testing.md): Multi-vendor testing and runtime-equivalence workflows for automation harnesses. - [Configuration](/capabilities/configuration.md): Workspace configuration and vendor-aware routing for 2ot automation. - [Architecture](/capabilities/architecture.md): Stable gateway, compiler services and isolated vendor runtimes behind one routed surface. ## Integrations - [Integrations](/integrations.md): Vendor runtime integrations behind the common 2ot routing surface. - [Siemens TIA Portal integration](/integrations/siemens-tia-portal.md): Routed Siemens TIA Portal automation with local licensed API knowledge. - [Beckhoff TwinCAT integration](/integrations/beckhoff-twincat.md): TwinCAT compiler, runtime, diagnostic and testing integration behind the 2ot router. - [CODESYS integration](/integrations/codesys.md): CODESYS project/runtime operations and readable source synchronization behind the routed 2ot surface. ## Knowledge - [Knowledge](/knowledge.md): Public product-owned metadata and documentation surfaces used by 2ot tooling. - [Providers](/providers.md): Provider bundles and callable metadata in the public 2ot knowledge surface. - [Schemas](/schemas.md): Public schema definitions used by 2ot knowledge and tooling surfaces. - [Callables](/callables.md): Searchable public callable metadata across supported knowledge providers. - [Semantic rules](/semantic-rules.md): Public semantic rules used by 2ot knowledge and compiler-oriented tooling. - [Telemetry](/telemetry.md): Public telemetry ontology and vendor mappings used by 2ot tooling. - [Siemens TIA rejected symbols](/rejected-symbols/siemens-tia.md): Public list of rejected or unsupported Siemens TIA symbols captured by 2ot knowledge tooling. - [Local Siemens API graph](/siemens-api-graph.md): How 2ot builds and uses Siemens API knowledge locally without publishing the licensed corpus. ## Blog - [2ot blog](/blog.md): Technical articles about industrial automation tooling, compiler work and vendor integrations. - [Breaking the binary barrier: version-controlling Siemens TIA Portal with VCI](/blog/breaking-the-binary-barrier-tia-vci.md): Why .ap21 files defeat Git, and how 2ot's VCI integration extracts SimaticSD and SimaticML so PLC teams finally get pull requests, blame and diffs. - [Inside the 2ot TwinCAT integration](/blog/twincat-integration-sensor-testing.md): How the TwinCAT backend, Visual Studio sensor, VSIX packaging and shared test infrastructure fit together as product surfaces. - [Implementing TDD in PLC logic: translating Python asserts to SCL](/blog/plc-tdd-python-asserts-to-scl.md): Use a Python test harness while 2ot lowers the tests into native PLC test programs with auto-generated instance DBs and Arrange-Act-Assert structure. - [Overcoming legacy PLC constraints with OOP lowering](/blog/oop-lowering-legacy-plc-constraints.md): How 2ot's HIR flattens interfaces, abstract methods and dynamic dispatch into flat function blocks — so modern, modular control code can still target rigid legacy hardware. ## Machine discovery - `2ot --list --json` reports installed routed commands. - `2ot --mcp-dump-schema` emits the normalized machine-readable tool surface. - `2ot mcp` exposes compatible operations to an MCP-capable harness. - `2ot check --fast` provides low-latency compiler diagnostics without starting vendor software. - [ARD catalog](/.well-known/ai-catalog.json) advertises public machine-discovery resources. - [Expanded product context](/llms-full.txt) provides the longer machine-oriented overview. ## Safety boundary The public website is a read-only discovery surface. Project-changing and device-facing operations belong to the local 2ot execution surface inside the engineer-selected harness and permissions boundary. Siemens-derived API metadata, documentation, graph snapshots and version data remain on the licensed developer workstation and are not published by this site.