Full documentation

API references, tutorials, and guides - everything you need to get started and go deep.

NuGet for PLC libraries

Twinpack is an open-source package manager for TwinCAT PLC libraries - similar to NuGet, but built for PLCs. It integrates directly into TwinCAT XAE Shell and Visual Studio, so you manage dependencies from the References node of your PLC project. No manual copying of .library files, no hunting down the right version on a shared drive.

Twinpack is free. It is developed by Zeugwerk and is the standard way to install and update Zeugwerk Framework libraries - but it works for any TwinCAT library from any publisher.


What it supports

Three package sources in one tool:

  • Twinpack server - Zeugwerk hosts open-source libraries for free. Enterprise customers get additional features: private package hosting, feature branches, and higher CI build quotas.
  • NuGet server - Point Twinpack at your own NuGet-compatible server for private or on-premises library hosting.
  • Beckhoff Library Repository - Since TwinCAT 4026, Beckhoff provides a public library repository. Twinpack integrates it seamlessly alongside community libraries.

Using a package


Publishing a package

Three ways to publish - choose what fits your workflow:

Via the Twinpack Registry (recommended for GitHub projects) Add your repository to the repositories.txt file in a pull request. A workflow in the registry automatically uploads the libraries from your latest GitHub release. No CI credentials required.

Via GitHub Actions Use the twinpack-action in your CI pipeline to publish on every release. Pairs well with zkbuild for a fully automated build-test-publish workflow.

Manually from the IDE Right-click the PLC item → Twinpack → Publish. Fill in the distributor name and version, click Publish. Twinpack validates and uploads the package. Subsequent versions can be published the same way.


For the community

The Twinpack registry is open. Any TwinCAT library can be published - not just Zeugwerk libraries. Teams are encouraged to share their own building blocks and contribute to the ecosystem. The more libraries available, the more value every TwinCAT project gets from the start.

View on GitHub → Browse the registry →