# rpk transform deploy

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [streaming-full.txt](https://docs.redpanda.com/streaming-full.txt)

---
title: rpk transform deploy
latest-redpanda-tag: v26.1.14
latest-console-tag: v3.10.0
latest-operator-version: v26.2.2
# EOL = End-of-Life (support lifecycle status)
page-is-nearing-eol: "false"
page-is-past-eol: "false"
page-eol-date: March 31, 2027
latest-connect-version: 4.105.0
docname: rpk/rpk-transform/rpk-transform-deploy
page-component-name: streaming
page-version: "26.1"
page-component-version: "26.1"
page-component-title: Streaming
page-relative-src-path: rpk/rpk-transform/rpk-transform-deploy.adoc
page-edit-url: https://github.com/redpanda-data/docs/edit/v/26.1/modules/reference/pages/rpk/rpk-transform/rpk-transform-deploy.adoc
description: Deploy a transform. When run in the same directory as a <code>transform.yaml</code>, this reads the configuration file, then looks for a <code>.wasm</code> file with the same name as your project.
page-git-created-date: "2023-12-22"
page-git-modified-date: "2026-07-17"
support-status: supported
---

<!-- Source: https://docs.redpanda.com/streaming/26.1/reference/rpk/rpk-transform/rpk-transform-deploy.md -->

Deploy a transform.

When run in the same directory as a `transform.yaml`, this reads the configuration file, then looks for a `.wasm` file with the same name as your project. If the input and output topics are specified in the configuration file, those are used. Otherwise, the topics can be specified on the command line using the `--input-topic` and `--output-topic` flags.

To deploy Wasm files directly without a `transform.yaml` file:

```bash
rpk transform deploy --file transform.wasm --name myTransform \
--input-topic my-topic-1 \
--output-topic my-topic-2 \
--output-topic my-topic-3
```

Environment variables can be specified for the transform using the `--var` flag, these are separated by an equals for example: `--var=KEY=VALUE`.

The `--var` flag can be repeated to specify multiple variables like so:

```bash
rpk transform deploy --var FOO=BAR --var FIZZ=BUZZ
```

The `--from-offset` flag can be used to specify where on the input topic the transform should begin processing. Expressed as:

-   `@T` - Begin reading records with committed timestamp >= T (UNIX time, ms from epoch)

-   `+N` - Begin reading N records from the start of each input partition

-   `-N` - Begin reading N records prior to the end of each input partition


Note that the broker will only respect from-offset on the first deploy for a given transform. Re-deploying the transform will cause processing to pick up at the last committed offset. Recall that this state is maintained until the transform is deleted.

## [](#usage)Usage

```bash
rpk transform deploy [flags]
```

## [](#examples)Examples

This section provides examples of how to use `rpk transform deploy`.

Deploy Wasm files directly without a `transform.yaml` file.

```bash
rpk transform deploy --file transform.wasm --name myTransform \
--input-topic my-topic-1 \
--output-topic my-topic-2
--output-topic my-topic-3
```

Deploy a transformation with multiple environment variables.

```bash
rpk transform deploy --var FOO=BAR --var FIZZ=BUZZ
```

Configure compression for batches output by data transforms. The default setting is `none` but you can choose from `none`, `gzip`, `snappy`, `lz4`, or `zstd`.

```bash
rpk transform deploy --compression <compression_type>
```

## [](#flags)Flags

| Value | Type | Description |
| --- | --- | --- |
| --compression | string | Output batch compression type. Valid values: none, gzip, snappy, lz4, zstd. Defaults to none. |
| --file | string | The WebAssembly module to deploy. |
| --from-offset | string | Starting offset for input topic partitions. Use @T for a timestamp (Unix milliseconds), +N for N records from the start, or -N for N records from the end. Only respected on first deploy. |
| -i, --input-topic | string | The input topic to apply the transform to. |
| --name | string | The name of the transform. |
| -o, --output-topic | stringSlice | The output topic to write the transform results to (repeatable). |
| --var | environmentVariable | Specify an environment variable in the form of KEY=VALUE. |

## [](#global-flags)Global flags

| Value | Type | Description |
| --- | --- | --- |
| --config | string | Redpanda or rpk config file; default search paths are ~/.config/rpk/rpk.yaml, $PWD/redpanda.yaml, and /etc/redpanda/redpanda.yaml. |
| -X, --config-opt | stringArray | Override rpk configuration settings; -X help for detail or -X list for terser detail. |
| --ignore-profile | bool | Ignore rpk.yaml and redpanda.yaml; use default settings. |
| --profile | string | rpk profile to use. |
| -v, --verbose | bool | Enable verbose logging. |

Enabling compression may increase computation costs and could impact latency at the output topic.

For more details, see [Sizing for Production](https://docs.redpanda.com/streaming/26.1/deploy/redpanda/manual/sizing/).