# app custom
URL: https://synquic.tech/docs/cli/reference/app/custom.md

Commands, arguments, and options for synq app custom.

See the [workflow guide](/docs/cli/projects) for examples. Global flags such as `--json` go before the command; see [global options](/docs/cli/reference#global-options).

## synq app custom

Manage this organization's custom app definitions

```text
synq app custom [options] [command]
```

| Subcommand | Purpose |
| --- | --- |
| [`list\|ls`](/docs/cli/reference/app/custom#synq-app-custom-list) |  |
| [`add <file>`](/docs/cli/reference/app/custom#synq-app-custom-add) | Validate and save a custom app definition |
| [`get\|export <id>`](/docs/cli/reference/app/custom#synq-app-custom-get) | Print a custom template's JSON (for editing or export) |
| [`update <id> <file>`](/docs/cli/reference/app/custom#synq-app-custom-update) | Replace an existing custom template (its id cannot change) |
| [`validate <file>`](/docs/cli/reference/app/custom#synq-app-custom-validate) | Check a template without saving it (errors and warnings with paths) |
| [`from-compose <file>`](/docs/cli/reference/app/custom#synq-app-custom-from-compose) | Convert a compose file into template services, config fields and endpoints |
| [`from-project <project>`](/docs/cli/reference/app/custom#synq-app-custom-from-project) | Draft a template from an existing project (secret values are never copied) |
| [`remove\|rm <id>`](/docs/cli/reference/app/custom#synq-app-custom-remove) | Remove a custom catalog definition |

## synq app custom add

Validate and save a custom app definition

```text
synq app custom add [options] <file>
```

| Argument | Meaning |
| --- | --- |
| `file` | AppTemplate JSON file |

## synq app custom from-compose

Convert a compose file into template services, config fields and endpoints

```text
synq app custom from-compose [options] <file>
```

| Argument | Meaning |
| --- | --- |
| `file` | docker-compose YAML file |

## synq app custom from-project

Draft a template from an existing project (secret values are never copied)

```text
synq app custom from-project [options] <project>
```

| Argument | Meaning |
| --- | --- |
| `project` | Project ID |

## synq app custom get

Print a custom template's JSON (for editing or export)

```text
synq app custom get|export [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Custom app ID |

## synq app custom list

Use this command with the arguments below.

```text
synq app custom list|ls [options]
```

## synq app custom remove

Remove a custom catalog definition

```text
synq app custom remove|rm [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Custom app ID |

## synq app custom update

Replace an existing custom template (its id cannot change)

```text
synq app custom update [options] <id> <file>
```

| Argument | Meaning |
| --- | --- |
| `id` | Custom app ID |
| `file` | AppTemplate JSON file |

## synq app custom validate

Check a template without saving it (errors and warnings with paths)

```text
synq app custom validate [options] <file>
```

| Argument | Meaning |
| --- | --- |
| `file` | AppTemplate JSON file |
