> ## Documentation Index
> Fetch the complete documentation index at: https://wsignal.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# dev

> Start the local webhook receiver.

## Synopsis

```bash theme={null}
wsignal dev [--config ./wsignal.config.ts]
```

## What It Does

`wsignal dev` loads config, ensures the storage directories exist, starts the local HTTP server, and begins receiving webhook requests.

## Config Resolution

If you do not pass `--config`, `wsignal` searches the current working directory for:

* `wsignal.config.ts`
* `wsignal.config.js`
* `wsignal.config.mjs`

If no config file is found, `wsignal dev` starts an interactive setup flow instead of failing immediately.

## Terminal Behavior

When an interactive terminal reporter is available, `wsignal` renders a richer terminal UI.

Otherwise it prints a static startup summary and line-oriented runtime updates.

## Request Lifecycle

For a matched static response or forwarding endpoint, `wsignal`:

1. Reads the raw request body.
2. Attempts JSON parsing for convenience.
3. Builds an event object.
4. Persists the event to JSONL.
5. Sends the configured response back to the caller.
6. Optionally forwards the event to one or more matching forward targets.

For a matched proxy endpoint, `wsignal` sends the request upstream, persists the event with the upstream status, and returns the upstream response to the caller.

If persistence fails, the request receives a `500` response and the event is not acknowledged as successful.

## Update Notices

After startup, `wsignal dev` occasionally checks the npm registry for a newer CLI version. The check is non-blocking, throttled, and skipped in CI.

Disable passive update checks with:

```bash theme={null}
WSIGNAL_NO_UPDATE_CHECK=1
```

## Examples

Start with the default config:

```bash theme={null}
wsignal dev
```

Start with a custom config file:

```bash theme={null}
wsignal dev --config ./config/webhooks.ts
```

## Common Use

`dev` is the command you keep running while:

* Testing local webhook integrations
* Capturing provider payloads for debugging
* Verifying response behavior
* Building replayable fixtures
