# `Alaja.CLI`
[🔗](https://github.com/Lorenzo-SF/alaja/blob/2.1.0/lib/alaja/cli.ex#L1)

Entry point for the Alaja command-line interface.

This module is defined using the `Alaja.CLI.Definition` DSL,
making it self-hosted — the CLI is built with its own framework.

## Usage

    alaja [--help | -h]
    alaja [--version | -v]
    alaja <command> [args...]
    alaja <command> --help

## Available commands

Run `alaja --help` for the full list.

# `exec`

```elixir
@spec exec([String.t()]) :: term()
```

Runs a single command without re-starting the application stack.

This is the in-process execution path used by `alaja action` for
batch execution. It assumes the application is already running, so
it skips `Application.ensure_all_started/1`. Use `main/1` for the
top-level entry point and `exec/1` for child invocations.

## Example

    Alaja.CLI.exec(["message", "--text", "Hello"])

# `main`

Runs the CLI with the given arguments.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
