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

One right-click to open the catalog
Right-click the References node of any PLC project and select "Twinpack Catalog…" to browse, search, and install packages without leaving the IDE.

Browse the catalog
Search across all configured package sources. View package details, version history, and license information before installing. Twinpack resolves and installs all transitive dependencies automatically.

Update and restore
Check for updates, pin to a specific version, or restore all dependencies in a fresh checkout - all from the same context menu. No manual library management.

Publish your own libraries
Share your library with the community directly from the IDE. Set the distributor, version, and metadata - Twinpack validates and uploads to the registry. Future versions notify existing users of updates.
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.
