# warpstream local

## warpstream local

The `warpstream local` subcommand runs a fully in-memory, self-contained WarpStream cluster (Kafka + Schema Registry + Tableflow) with **no connection to the WarpStream control plane**. It is intended as a drop-in replacement for `warpstream playground` in CI pipelines and other automated environments where a hosted control plane dependency is undesirable.

Unlike `warpstream playground` and `warpstream demo`, `warpstream local` does not create a temporary WarpStream account and does not require any outbound network connectivity. All state (metadata, credentials, and data) lives in memory and is discarded when the process exits.

When `warpstream demo` or `warpstream playground` is started in a CI environment, the Agent automatically reroutes to `warpstream local` and prints a warning that local mode is the intended mode for CI.

The following table displays the available `warpstream local` arguments.

| Argument                    | Description                                                                                                                                                                                                                                                                                                              |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| -advertiseHostnameCustom    | Custom hostname value to advertise to service discovery for clustering purposes if the custom advertise strategy is selected                                                                                                                                                                                             |
| -advertiseHostnameStrategy  | Which hostname strategy should be used the agent should advertise itself on. Auto means that it will try to automatically find an IP that makes sense. If you select custom them you have to also define -advertiseHostnameCustom. Currently supported strategy: \[auto-ip4, auto-ip6, local, custom]. (default "local") |
| -bucketURL                  | Object storage bucket URL for new writes (default "mem://warpstream\_local")                                                                                                                                                                                                                                             |
| -httpPort                   | Port to run the Kafka Agent's internal HTTP server on (default 8080)                                                                                                                                                                                                                                                     |
| -kafkaPort                  | Port to run the Kafka server on (default 9092)                                                                                                                                                                                                                                                                           |
| -requireSASLAuthentication  | Controls whether the agents will enforce that all connections are SASL authenticated. When enabled, the generated username and password are printed at startup.                                                                                                                                                          |
| -schemaRegistryHTTPPort     | Port to run the Schema Registry agent's internal HTTP server on (default 8070)                                                                                                                                                                                                                                           |
| -schemaRegistryPort         | Port to run the Schema Registry server on (default 9094)                                                                                                                                                                                                                                                                 |
| -tableflowInternalHTTPPort  | Port to run the Tableflow agent's internal HTTP server on (default 8081)                                                                                                                                                                                                                                                 |
| -timeout                    | End local mode after this duration has elapsed, use Xh format to change. `0` means run forever, which is the default (playground defaults to `4h`; local is intended for CI and does not auto-terminate unless opted in).                                                                                                |