Python runtime and integrations for Styx.
This monorepo consolidates the protocol definitions, the middleware, and the
container runners into a single uv workspace.
| Package | Description |
|---|---|
styxdefs |
Core types, protocol, and minimal runtime (local + dry runners). Zero runtime dependencies. |
styxgraph |
Middleware runner that records executions as a Mermaid graph. |
styxcache |
Middleware runner that content-addresses tool outputs for cross-run reuse. |
styxcontainer-common |
Internal shared base classes for the container runners. |
styxdocker |
Docker runner. |
styxpodman |
Podman runner. |
styxsingularity |
Singularity/Apptainer runner. |
This is a uv workspace. All tooling and CI runs against the whole workspace; individual packages are published to PyPI independently.
# Install every workspace member into a shared venv.
uv sync --all-packages
# Run the full test matrix.
uv run pytest packages/
# Lint and format.
uv run ruff check
uv run ruff format --check
uv run mypy packages/Per-package releases are driven by tags of the form <package>-v<version>.
For example, to ship styxdocker 0.6.4:
git tag styxdocker-v0.6.4
git push --tagsThe publish.yaml workflow picks up the tag, builds only the matching
package, and pushes it to PyPI.