# CLI Reference

<!-- This file is auto-generated by scripts/gen_cli_docs.py. Do not edit manually. -->

Vodoo provides a Typer-based CLI with the following subcommands:

| Command | Description |
|---------|-------------|
| [`helpdesk`](helpdesk.md) | Helpdesk ticket operations |
| [`project-task`](project-task.md) | Project task operations |
| [`project`](project.md) | Project operations |
| [`knowledge`](knowledge.md) | Knowledge article operations |
| [`model`](model.md) | Generic model operations (create, read, update, delete) |
| [`crm`](crm.md) | CRM lead/opportunity operations |
| [`security`](security.md) | Security group utilities |
| [`timer`](timer.md) | Timer / timesheet operations (start, stop, status) |

## Global Options

| Option | Description |
|--------|-------------|
| `--version` / `-v` | Show version and exit |
| `--simple` | Plain TSV output instead of rich tables (for piping) |
| `--help` | Show help and exit |

```
vodoo --help
vodoo <command> --help
```

## Output Modes

By default, Vodoo uses Rich tables for colorful terminal output. Use `--simple` for plain TSV output suitable for piping:

```bash
vodoo --simple helpdesk list | cut -f1,2
```

### HTML Handling

Odoo stores all rich-text content (descriptions, knowledge article bodies, chatter messages) as HTML. Vodoo converts this for terminal display depending on the context:

| Content | Default mode | `--simple` mode | `--show-html` |
|---------|-------------|-----------------|---------------|
| **Descriptions** (tickets, tasks, leads) | HTML → Markdown | HTML → Markdown | Raw HTML |
| **Knowledge article bodies** | HTML → Markdown | HTML → Markdown | Raw HTML |
| **Chatter messages** | HTML → plain text (tags stripped) | HTML → plain text (tags stripped) | Raw HTML |

Descriptions and article bodies are converted to **Markdown** (preserving headings, bold, lists, links, etc.) since they tend to be longer, structured content. Chatter messages are stripped to **plain text** since they're typically short comments and notifications where formatting isn't essential.

When writing content back to Odoo (via `comment`, `note`, or `set`), Vodoo converts your input **to HTML** — with optional `--markdown` support for rich formatting.

## Common Patterns

All domain subcommands (`helpdesk`, `project-task`, `project`, `crm`) share a consistent interface:

| Action | Command |
|--------|---------|
| List records | `vodoo <cmd> list [--stage ...] [--limit N]` |
| Show details | `vodoo <cmd> show <ID>` |
| Add comment | `vodoo <cmd> comment <ID> "message"` |
| Add note | `vodoo <cmd> note <ID> "message"` |
| Update fields | `vodoo <cmd> set <ID> field=value ...` |
| List fields | `vodoo <cmd> fields` |
| List tags | `vodoo <cmd> tags` |
| Add tag | `vodoo <cmd> tag <ID> <TAG_ID>` |
| Message history | `vodoo <cmd> chatter <ID>` |
| List attachments | `vodoo <cmd> attachments <ID>` |
| Upload file | `vodoo <cmd> attach <ID> <FILE>` |
| Download one | `vodoo <cmd> download <ATTACHMENT_ID>` |
| Download all | `vodoo <cmd> download-all <ID>` |
| Get URL | `vodoo <cmd> url <ID>` |

