# {py:mod}`haniwers.v1.cli.main`

```{py:module} haniwers.v1.cli.main
```

```{autodoc2-docstring} haniwers.v1.cli.main
:allowtitles:
```

## Module Contents

### Functions

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`main <haniwers.v1.cli.main.main>`
  - ```{autodoc2-docstring} haniwers.v1.cli.main.main
    :summary:
    ```
````

### Data

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`app <haniwers.v1.cli.main.app>`
  - ```{autodoc2-docstring} haniwers.v1.cli.main.app
    :summary:
    ```
````

### API

````{py:data} app
:canonical: haniwers.v1.cli.main.app
:value: >
   'Typer(...)'

```{autodoc2-docstring} haniwers.v1.cli.main.app
```

````

````{py:function} main(ctx: typer.Context, env_path: pathlib.Path = typer.Option(Path('.env.haniwers'), '--env', help='Path to .env file'), config_path: pathlib.Path = typer.Option(None, '--config', '-c', help='Path to config file'), verbose: bool = LoggerOptions.verbose, logfile: str = LoggerOptions.logfile, port: typing.Optional[str] = DeviceOptions.port, baudrate: typing.Optional[int] = DeviceOptions.baudrate, timeout: typing.Optional[float] = DeviceOptions.timeout, device_label: typing.Optional[str] = DeviceOptions.device_label, workspace: typing.Optional[pathlib.Path] = OutputOptions.workspace) -> None
:canonical: haniwers.v1.cli.main.main

```{autodoc2-docstring} haniwers.v1.cli.main.main
```
````
