repost forward session, select an event with a JSON body and press t to open the Generate Types view. It turns the captured request body into typed models in the language of your choice — generated from real traffic, not a hand-written schema.
The view is a live split: the captured request body on the left, the generated code on the right. Switch languages with ← / → and the code regenerates from the same payload.
Supported languages
Cycle through targets with the windowed selector. Each language renders the same payload in its idiomatic shape:TypeScript
Plain
interface / type, Zod schemas, or Effect Schema.JavaScript & JSON
JavaScript with JSDoc, or a JSON Schema document.
Backend languages
Python, Go, Java, C#, Rust, Swift, and Kotlin.
Name the output
The generated root type is namedWebhookPayload by default. Press tab to edit the Type name, then enter to commit — the code regenerates with the new name applied to every reference.
Inference options
Presso to open the options panel. The first group controls how the payload is interpreted, and these choices persist as you switch languages.
| Option | Default | Effect |
|---|---|---|
| Make all properties optional | Off | Marks every field optional instead of inferring required fields. |
| Detect date & times | On | Recognises ISO date/time strings as date types. |
| Detect enums | On | Infers enums from repeated string values. |
| Detect maps (merge similar classes) | On | Treats uniform objects as maps rather than fixed shapes. |
| Don’t treat $ref as reference | Off | Inlines $ref instead of resolving it as a reference. |
| Combine similar classes | On | Merges objects with the same shape into one type. |
space; the code regenerates immediately.
Language options
Below the inference group, each language exposes its own renderer options — booleans, value pickers (◀ ▶), and editable text fields. These are specific to the selected language and reset when you switch, so a TypeScript-only option does not carry over to Go.
Keyboard
| Key | Action |
|---|---|
t | Open Generate Types for the selected event. |
← / → or h / l | Switch language. |
tab | Edit the type name. |
o | Open or close the options panel. |
↑ / ↓ | Scroll the code, or navigate options when open. |
space | Toggle or cycle the focused option. |
enter | Edit a text option, or commit an edited value. |
c | Copy the generated code. |
esc | Close the view. |
Your preferred language and option choices are saved to the CLI config directory and restored on the next session. See Authentication & configuration for where that lives.