# RudderTyper 2.0


{{< announcement >}}
This feature is in **Public Beta** as part of RudderStack's Early Access Program, where we work with early users and customers to test new features and get feedback before making them generally available.
{{< /announcement >}}

We are introducing [RudderTyper 2.0]({{< ref "dev-tools/rudder-cli/ruddertyper-v2.md" >}}), which generates type-safe client bindings from your [Tracking Plans]({{< ref "data-governance/tracking-plans/" >}}) for modern SDK languages —**TypeScript**, **Swift**, and **Kotlin**. By generating native code that matches your Tracking Plan's event definitions, you can catch instrumentation errors at compile time rather than runtime, with full IntelliSense support in your IDE.

RudderTyper 2.0 is packaged into [Rudder CLI]({{< ref "dev-tools/rudder-cli/" >}}), which already works with the [Tracking Plans]({{< ref "data-governance/tracking-plans/" >}}) and [Data Catalog]({{< ref "api/data-catalog-api/" >}}) you maintain as code in your Git repositories. This lets you generate and update your typed bindings as part of the same workflow you already use to manage your tracking plans, keeping your instrumentation in sync with your governance definitions.

## What's new

- **Modern SDK language support**: Generate strongly-typed bindings for TypeScript, Swift (iOS), and Kotlin (Android and JVM) that match your Tracking Plan's event structure.
- **Compile-time type safety**: Validation ensures your tracking code matches your Tracking Plan definitions before your application ships, with autocomplete and type checking in your IDE.
- **Packaged into Rudder CLI**: Generate bindings directly from your Tracking Plans using the same CLI that manages your Data Catalog as code.
- **Git-native workflow**: Works with the Tracking Plans and Data Catalog you already maintain as code in your repositories, so generated bindings stay version-controlled alongside the rest of your instrumentation.
- **Standard event coverage**: Supports all standard RudderStack event types—`track`, `identify`, `screen`, and `group`.

## Get started

| Guide | Description |
| :---- | :---- |
| [RudderTyper v2]({{< ref "dev-tools/rudder-cli/ruddertyper-v2.md" >}}) | Overview of RudderTyper 2.0, its features, and limitations |
| [RudderTyper v2 Walkthrough Guide]({{< ref "dev-tools/rudder-cli/ruddertyper-v2-walkthrough.md" >}}) | Step-by-step tutorial to generate and use type-safe bindings in your application |
| [RudderTyper v2 Command Reference]({{< ref "dev-tools/rudder-cli/ruddertyper-v2-command-reference.md" >}}) | Complete reference for RudderTyper v2 CLI commands and parameters |

<br />
