This repository contains a collection of open-source packages for Tenzir.
- Package once, deploy anywhere: ship pipelines, contexts, and operators as a single unit.
- Built-in templating keeps packages environment-agnostic while still customizable on install.
- Tests and examples travel with the package so behaviour stays predictable.
Learn more about the concept in the packages explanation.
A package lives in a directory with these building blocks:
examples/: runnable snippets that highlight the package’s capabilities.operators/: user-defined operators (UDOs) you can reuse across pipelines.pipelines/: end-to-end TQL pipelines that start with an input and finish with an output operator.tests/: deterministic integration tests that verify UDOs and pipelines via the test framework.package.yaml: the manifest with metadata, configurable inputs, and optional enrichment contexts.
Pick the workflow that fits your environment. For details, see our installation guide:
- Tenzir Library UI: browse app.tenzir.com/library, configure inputs, and click Install.
- Interactive TQL: run
package::addagainst a local directory, and remove it later withpackage::remove. - Infrastructure as Code: place packages under
packages/inside your configuration directory (or another path listed intenzir.package-dirs) and include an optionalconfig.yamlfor inputs.
Follow the write-a-package tutorial to scaffold, test, and document a new idea, then:
- Share it on the Community Discord to gather feedback.
- Open a pull request in github.com/tenzir/library so the package appears in the public Tenzir Library.
- Keep iterating—tests and good docs make it easier for others to adopt your work.