Skip to main content
In a 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 named WebhookPayload by default. Press tab to edit the Type name, then enter to commit — the code regenerates with the new name applied to every reference.
// Type name: OrderCreated
export const OrderCreatedSchema = z.object({ /* ... */ });
export type OrderCreated = z.infer<typeof OrderCreatedSchema>;

Inference options

Press o to open the options panel. The first group controls how the payload is interpreted, and these choices persist as you switch languages.
OptionDefaultEffect
Make all properties optionalOffMarks every field optional instead of inferring required fields.
Detect date & timesOnRecognises ISO date/time strings as date types.
Detect enumsOnInfers enums from repeated string values.
Detect maps (merge similar classes)OnTreats uniform objects as maps rather than fixed shapes.
Don’t treat $ref as referenceOffInlines $ref instead of resolving it as a reference.
Combine similar classesOnMerges objects with the same shape into one type.
Toggle a row with 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

KeyAction
tOpen Generate Types for the selected event.
/ or h / lSwitch language.
tabEdit the type name.
oOpen or close the options panel.
/ Scroll the code, or navigate options when open.
spaceToggle or cycle the focused option.
enterEdit a text option, or commit an edited value.
cCopy the generated code.
escClose 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.