What you need
A bucket
The bucket receives webhook traffic from a provider.
An internal forwarder
repost forward listens only to internal forwarders.A local endpoint
Your app must be running at the target URL configured on the forwarder.
Start a session
repost forward resolves a bucket first, then resolves internal forwarders inside that bucket.
- Interactive
- Scripted
- Multiple forwarders
Run without flags to choose the bucket and forwarders from prompts.
--bucket-slug expects a bucket slug. --forwarder expects an internal forwarder name. External forwarders are filtered out because they are delivered by Repost.Pending events
When a forwarder has events waiting, the CLI can ask what to do, process pending events first, or skip straight to new traffic.- Prompt
- Pending first
- Skip pending
Default behavior. The TUI asks how to handle pending events before it starts real-time delivery.
Use the TUI
Main list
j / k or arrow keys move through events. g or home jumps to the top; G or end jumps to the bottom. ctrl+l clears the local list.Request details
Press
space to open or close details. The detail view shows request headers, body, response headers, response body, status, target, and duration.Copy context
Press
c to copy the selected event or detail view for debugging.Generate types
Press
t to generate typed definitions from the selected request body.Generate types
Type generation uses the selected event’s JSON request body. It is available only when the selected request has a JSON body.| Key | Action |
|---|---|
t | Open the generate-types overlay. |
h / l or arrow keys | Switch target language. |
tab | Edit the type name. The default is WebhookPayload. |
o | Open generation options. |
space / enter | Toggle an option, cycle a value, or commit an edited value. |
c | Copy the generated code. |
esc | Close the overlay. |
Local request behavior
Headers
The CLI forwards request headers but removes hop-by-hop and computed headers such as
Host, Content-Length, Connection, and Transfer-Encoding.Timeouts
Requests use the forwarder’s configured timeout. If no timeout is configured, the local request limit is 60 seconds.
Success
A local HTTP response is marked successful when the destination returns a 2xx status code. Other HTTP responses are recorded with their status and body.
Response capture
The normal forwarding path captures up to 1 MB of response body for inspection.
Proxy replies
For proxy buckets, the CLI sends the local response back to Repost. Reply bodies returned to the provider are capped at 512 KB.
Connection failures
Timeouts, connection errors, invalid targets, and response-read failures are reported as failed local deliveries.
Headless sessions
--headless connects without the terminal UI. It prints HEADLESS_READY after the WebSocket listener is established, then processes incoming events in the background.
--skip-pending so startup does not wait on an interactive pending-event decision.
Common fixes
The CLI says I am not authenticated
The CLI says I am not authenticated
Run
repost auth login for browser auth, or set REPOST_TOKEN for an API token based workflow.The bucket slug is not found
The bucket slug is not found
Run
repost bucket list and use the bucket slug from the dashboard. repost forward expects a slug, not a bucket ID.No internal forwarders appear
No internal forwarders appear
Create an internal forwarder on the bucket. External forwarders are managed by Repost and do not need a local CLI listener.
Another session took over
Another session took over
Only one active CLI session can own the same listener context at a time. Close the other session or reconnect from the terminal you want to use.