Skip to content
Pyrula
Pre-release: the packages are not on PyPI yet, so pip install does not resolve. Build from source to try it today.

Installation

Nothing is published yet. The name pyrula is registered on PyPI as an empty 0.0.0 placeholder and the runtime packages are not there at all, so pip install is not the install path today. Building from source is. You need Python 3.11 through 3.14, a Rust toolchain, and uv:

Terminal window
git clone https://github.com/pyrula-io/pyrula
cd pyrula
uv sync # resolves the packages from the workspace
uv run maturin develop --release # builds the Rust core

The runtimes are separate distributions that only resolve from the workspace, which is why this is uv sync and not a bare maturin develop. That one sync gives you the core, the workflow and agent runtimes, and the pyrula CLI. The Kafka client carries its own Rust extension and is built separately:

Terminal window
cd pyrula-kafka && uv run maturin develop --release

Check it:

Terminal window
uv run python -c "from pyrula.workflows import workflow; print('ok')"
uv run pyrula --help

From here, the Quickstart scaffolds a workflow and runs it. Prefix its commands with uv run while you are working out of the clone.

Each runtime is a separate package that depends on the core, so you will install only what you use. This is the shape they ship in; none of these commands resolve yet.

PackageInstallImport
Corepip install pyrulapyrula
Workflowspip install pyrula-workflowspyrula.workflows
Agentspip install pyrula-agentspyrula.agents
Kafkapip install pyrula-kafkapyrula.kafka
Cloud clientpip install pyrula-cloud-clientpyrula.cloud

Installing any runtime pulls in pyrula. The cloud client needs no code. See Connect to Pyrula Cloud.

pyrula dev, the local dev server and run browser, needs the web stack. It ships as an extra so a worker or a pyrula db install does not carry it:

Terminal window
pip install "pyrula-workflows[ui]"

pyrula-agents already depends on it, so the extra is only needed for workflows. pip install 'pyrula[all]' will pull the workflow, agent, Kafka, and cloud-client packages in one step.

Extras named elsewhere in these docs ([anthropic], [kafka], [otel], [langchain], and the rest) describe the same published shape. Out of the source checkout they are already resolved by uv sync, so there is nothing extra to install.

Python 3.11 through 3.14, plus the Rust toolchain and uv the source build needs. Nothing else to try it: the Quickstart runs against an in-memory store with no broker, no API key, and no account.

For runs that outlive the process you need Valkey 7.4+ or Redis 7.0+. Event archival is optional and uses Postgres. Neither is required until you want durability across restarts.

Workflows read their store and archival targets from the environment:

Terminal window
export PYRULA_VALKEY_URL=redis://localhost:6379
export PYRULA_POSTGRES_DSN=postgresql://user:pass@localhost:5432/pyrula_events

The redis:// scheme covers both Valkey and Redis. Set PYRULA_VALKEY_NAMESPACE too if several environments share one Valkey instance or cluster. Full config lives under Workflows.

Next: the Quickstart.