$ planoai up [FILE] [--path <dir>] [--foreground] [--with-tracing] [--tracing-port <port>]
**Arguments**
-``FILE`` (optional): explicit path to config file.
**Options**
-``--path <dir>``: directory to search for config (default ``.``).
-``--foreground``: run Plano in foreground.
-``--with-tracing``: start local OTLP/gRPC trace collector.
-``--tracing-port <port>``: collector port (default ``4317``).
..note::
If you use ``--with-tracing``, ensure that port 4317 is free and not already in use by Jaeger or any other observability services or processes. If port 4317 is occupied, the command will fail to start the trace collector.
**Examples**
..code-block:: console
$ planoai up config.yaml
$ planoai up --path ./deploy
$ planoai up --with-tracing
$ planoai up --with-tracing --tracing-port 4318
.._cli_reference_down:
planoai down
------------
Stop Plano (container/process stack managed by the CLI).
**Synopsis**
..code-block:: console
$ planoai down
.._cli_reference_build:
planoai build
-------------
Build Plano Docker image from repository source.
**Synopsis**
..code-block:: console
$ planoai build
.._cli_reference_logs:
planoai logs
------------
Stream Plano logs.
**Synopsis**
..code-block:: console
$ planoai logs [--follow] [--debug]
**Options**
-``--follow``: stream logs continuously.
-``--debug``: include additional gateway/debug streams.
**Examples**
..code-block:: console
$ planoai logs
$ planoai logs --follow
$ planoai logs --follow --debug
.._cli_reference_init:
planoai init
------------
Generate a new ``config.yaml`` using an interactive wizard, built-in templates, or a clean empty file.
When using ``listen``, ensure that port 4317 is free and not already in use by Jaeger or any other observability services or processes. If port 4317 is occupied, the command will fail to start the trace collector. You cannot use other services on the same port when running.
**Environment**
-``PLANO_TRACE_PORT``: query port used by ``planoai trace`` when reading traces (default ``4317``).