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

# CLI Help Panels

> Categorised `praisonai --help` — every command grouped into 7 stable, discoverable panels

`praisonai --help` groups every command into 7 stable panels so you find `run`, `chat`, `init` in seconds instead of scanning \~90 commands.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph LR
    subgraph "praisonai --help"
        Help["💻 praisonai --help"] --> Groups["🗂️ 7 stable panels"]
        Groups --> P1["🚀 Get started"]
        Groups --> P2["💬 Run & chat"]
        Groups --> P3["💾 Sessions & state"]
        Groups --> P4["⚙️ Config & setup"]
        Groups --> P5["🧰 Tools & knowledge"]
        Groups --> P6["🌐 Serve & integrate"]
        Groups --> P7["🔬 Advanced"]
    end

    classDef entry fill:#6366F1,stroke:#7C90A0,color:#fff
    classDef group fill:#F59E0B,stroke:#7C90A0,color:#fff
    classDef panel fill:#189AB4,stroke:#7C90A0,color:#fff

    class Help entry
    class Groups group
    class P1,P2,P3,P4,P5,P6,P7 panel
```

## Quick Start

<Steps>
  <Step title="See the panels">
    Run `--help` to see every command sorted into 7 titled panels.

    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    praisonai --help
    ```

    The everyday path (`init` → `setup` → `run`) sits right at the top:

    ```text theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    ╭─ Get started ─────────────────────────────────╮
    │  init    setup    onboard    doctor    ...    │
    ╰───────────────────────────────────────────────╯
    ╭─ Run & chat ──────────────────────────────────╮
    │  run     chat     code       ui        ...    │
    ╰───────────────────────────────────────────────╯
    ╭─ Sessions & state ────────────────────────────╮
    │  session  checkpoint  memory  todo     ...    │
    ╰───────────────────────────────────────────────╯
    … 4 more panels …
    ```
  </Step>

  <Step title="Jump straight into a panel">
    Group-level help inherits the same rich rendering.

    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    praisonai memory --help
    praisonai skills --help
    ```
  </Step>
</Steps>

***

## User Interaction Flow

A beginner used to lose the everyday commands in a \~90-item wall. Now the everyday path is signposted at the top.

**Before — one flat panel:**

```text theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
Commands:
  agent      agents     app        attach     audit     ...
  (≈90 items in one alphabetical block)
```

**After — 7 panels:**

```text theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
╭─ Get started ─────────────────────────────────╮
│  init      setup     onboard   doctor   ...   │
╰───────────────────────────────────────────────╯
╭─ Run & chat ──────────────────────────────────╮
│  run       chat      code      ui       ...   │
╰───────────────────────────────────────────────╯
… 5 more panels …
```

***

## Where Does Each Command Live?

Every command maps to exactly one panel. `Ctrl-F` a command name to land in its panel.

<Tabs>
  <Tab title="Get started">
    | Command | Panel |
    | - | - |
    | `init` | Get started |
    | `setup` | Get started |
    | `onboard` | Get started |
    | `doctor` | Get started |
    | `models` | Get started |
    | `version` | Get started |
  </Tab>

  <Tab title="Run & chat">
    | Command | Panel |
    | - | - |
    | `run` | Run & chat |
    | `chat` | Run & chat |
    | `code` | Run & chat |
    | `ui` | Run & chat |
    | `tui` | Run & chat |
    | `call` | Run & chat |
    | `realtime` | Run & chat |
    | `research` | Run & chat |
    | `loop` | Run & chat |
    | `agents` | Run & chat |
    | `agent` | Run & chat |
  </Tab>

  <Tab title="Sessions & state">
    | Command | Panel |
    | - | - |
    | `session` | Sessions & state |
    | `checkpoint` | Sessions & state |
    | `context` | Sessions & state |
    | `memory` | Sessions & state |
    | `todo` | Sessions & state |
    | `queue` | Sessions & state |
    | `traces` | Sessions & state |
    | `replay` | Sessions & state |
  </Tab>

  <Tab title="Config & setup">
    | Command | Panel |
    | - | - |
    | `config` | Config & setup |
    | `auth` | Config & setup |
    | `env` | Config & setup |
    | `permissions` | Config & setup |
    | `rules` | Config & setup |
    | `hooks` | Config & setup |
    | `paths` | Config & setup |
    | `port` | Config & setup |
    | `validate` | Config & setup |
    | `completion` | Config & setup |
  </Tab>

  <Tab title="Tools & knowledge">
    | Command | Panel |
    | - | - |
    | `tools` | Tools & knowledge |
    | `skills` | Tools & knowledge |
    | `knowledge` | Tools & knowledge |
    | `rag` | Tools & knowledge |
    | `index` | Tools & knowledge |
    | `query` | Tools & knowledge |
    | `search` | Tools & knowledge |
    | `templates` | Tools & knowledge |
    | `recipe` | Tools & knowledge |
    | `workflow` | Tools & knowledge |
    | `mcp` | Tools & knowledge |
    | `browser` | Tools & knowledge |
    | `commit` | Tools & knowledge |
    | `docs` | Tools & knowledge |
  </Tab>

  <Tab title="Serve & integrate">
    | Command | Panel |
    | - | - |
    | `serve` | Serve & integrate |
    | `app` | Serve & integrate |
    | `acp` | Serve & integrate |
    | `daemon` | Serve & integrate |
    | `attach` | Serve & integrate |
    | `deploy` | Serve & integrate |
    | `publish` | Serve & integrate |
    | `schedule` | Serve & integrate |
    | `gateway` | Serve & integrate |
    | `bot` | Serve & integrate |
    | `pairing` | Serve & integrate |
    | `identity` | Serve & integrate |
    | `kanban` | Serve & integrate |
    | `n8n` | Serve & integrate |
    | `flow` | Serve & integrate |
    | `dashboard` | Serve & integrate |
    | `claw` | Serve & integrate |
    | `up` | Serve & integrate |
    | `endpoints` | Serve & integrate |
    | `github` | Serve & integrate |
    | `mint_link` | Serve & integrate |
  </Tab>

  <Tab title="Advanced">
    | Command | Panel |
    | - | - |
    | `debug` | Advanced |
    | `diag` | Advanced |
    | `lsp` | Advanced |
    | `obs` | Advanced |
    | `langfuse` | Advanced |
    | `langextract` | Advanced |
    | `profile` | Advanced |
    | `benchmark` | Advanced |
    | `eval` | Advanced |
    | `test` | Advanced |
    | `examples` | Advanced |
    | `batch` | Advanced |
    | `train` | Advanced |
    | `tracker` | Advanced |
    | `audit` | Advanced |
    | `managed` | Advanced |
    | `plugins` | Advanced |
    | `sandbox` | Advanced |
    | `registry` | Advanced |
    | `backends` | Advanced |
    | `package` | Advanced |
    | `command` | Advanced |
    | `standardise` | Advanced |
    | `standardize` | Advanced |
  </Tab>
</Tabs>

<Note>
  Any command not in the map falls back to **Advanced** — nothing is ever hidden from `--help`.
</Note>

***

## How Grouping Is Applied

Each command is resolved lazily, then tagged with its panel on first use.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sequenceDiagram
    participant User
    participant CLI as praisonai CLI
    participant Registry as LazyCommandGroup
    participant Categories as help_categories

    User->>CLI: praisonai --help
    CLI->>Registry: get_command(name)
    Registry->>Categories: category_for(name)
    Categories-->>Registry: "Run & chat"
    Registry-->>CLI: command tagged with rich_help_panel
    CLI-->>User: 7 grouped panels
```

`LazyCommandGroup.get_command()` resolves each command lazily. If the command's `rich_help_panel` is unset, it assigns `category_for(name)`. Because grouping is lazy, no command is imported just to categorise it — the registry stays the source of truth.

***

## Configuration

Panels are code-driven — the single source of truth is `help_categories.py`.

| Behaviour | Rule |
| - | - |
| Explicit override | A command that sets its own `rich_help_panel="..."` keeps that panel. |
| Unmapped command | Falls back to **Advanced** via `DEFAULT_CATEGORY` — never disappears. |
| Environment variables | None. Changing panels means editing `help_categories.py`. |

The 7 panel titles are stable constants:

| Constant | Panel title |
| - | - |
| `CATEGORY_GET_STARTED` | `Get started` |
| `CATEGORY_RUN_CHAT` | `Run & chat` |
| `CATEGORY_SESSIONS` | `Sessions & state` |
| `CATEGORY_CONFIG` | `Config & setup` |
| `CATEGORY_TOOLS` | `Tools & knowledge` |
| `CATEGORY_SERVE` | `Serve & integrate` |
| `CATEGORY_ADVANCED` | `Advanced` (also `DEFAULT_CATEGORY`) |

<Note>
  Every command keeps its exact name, flags, and behaviour. Only the rendered `--help` output changes.
</Note>

***

## Best Practices

<AccordionGroup>
  <Accordion title="Learn the 7 panels once">
    Every current and future command lives in one of the 7 panels. Memorising the panel titles turns `--help` into a map you can navigate by muscle memory.
  </Accordion>

  <Accordion title="Set rich_help_panel explicitly for custom subcommands">
    A custom Typer subcommand that sets `rich_help_panel="Tools & knowledge"` opts into that panel. Leave it unset to inherit the default (**Advanced**).
  </Accordion>

  <Accordion title="Use the exact panel strings">
    Reference panels with the exact SDK constants — `Get started`, not `Getting Started`. Consistent strings keep grouping predictable across tutorials and screencasts.
  </Accordion>

  <Accordion title="Rely on panel stability">
    Panel titles are stable, so it is safe to reference them in documentation, tutorials, and recordings without them shifting between releases.
  </Accordion>
</AccordionGroup>

***

## Related

<CardGroup cols={2}>
  <Card title="CLI Reference" icon="terminal" href="/docs/cli/cli">
    Full command and flag reference
  </Card>

  <Card title="CLI Dispatcher" icon="arrows-split-up-and-left" href="/docs/features/cli-dispatcher">
    How the CLI routes commands
  </Card>

  <Card title="CLI Command Lazy Dispatch" icon="bolt" href="/docs/features/cli-command-lazy-dispatch">
    Lazy command resolution for fast startup
  </Card>

  <Card title="Unknown Command Guard" icon="shield-check" href="/docs/cli/cli#unknown-command-guard">
    How mistyped commands are caught
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.