# `frontline custom-tools`

Manage custom tools (API call tools the account creates and assigns to agents). Distinct from built-in system tools and connected-integration tools.

```bash
frontline custom-tools [options] [command]
```

**Options**

| Flag | Description | Default |
|  --- | --- | --- |
| `--api-key <key>` | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) |  |
| `--base-url <url>` | Advanced: override Public API base URL for this run |  |
| `--profile <name>` | Credentials profile: uses that profile's saved API key and Public API base URL (see `frontline auth profiles list`) |  |
| `--debug` | Show debug info on stderr (token is redacted) |  |
| `--pretty` | Pretty-print human-readable output (instead of default JSON) |  |
| `--table` | Render list results as a table (implies --pretty) |  |
| `--json` | Output raw JSON (default behavior — accepted as a no-op) |  |


## `frontline custom-tools list`

List custom tools (API call tools)

```bash
frontline custom-tools list [options]
```

**Options**

| Flag | Description | Default |
|  --- | --- | --- |
| `--status <status>` | Filter by status (ACTIVE or PAUSED) |  |
| `--filter-text <text>` | Filter by name or description |  |
| `--api-key <key>` | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) |  |
| `--base-url <url>` | Advanced: override Public API base URL for this run |  |
| `--profile <name>` | Credentials profile: uses that profile's saved API key and Public API base URL (see `frontline auth profiles list`) |  |
| `--debug` | Show debug info on stderr (token is redacted) |  |
| `--pretty` | Pretty-print human-readable output (instead of default JSON) |  |
| `--table` | Render list results as a table (implies --pretty) |  |
| `--json` | Output raw JSON (default behavior — accepted as a no-op) |  |


## `frontline custom-tools create`

Create a custom tool (API call tool)

```bash
frontline custom-tools create [options]
```

**Options**

| Flag | Description | Default |
|  --- | --- | --- |
| `--name <name>` | Tool name |  |
| `--description <description>` | Tool description |  |
| `--method <method>` | HTTP method (GET, POST, PUT, PATCH, DELETE) |  |
| `--url <url>` | Tool URL template |  |
| `--body <body>` | Raw request body template (e.g. a JSON string). Interpolate argument values with single braces: {argName} |  |
| `--arguments <json>` | Tool arguments JSON array, e.g. [{"name":"priority","dataType":"STRING","required":false,"defaultValue":"normal"}]. "required" defaults to true; "defaultValue" is a string coerced to dataType. |  |
| `--headers <json>` | Headers JSON array |  |
| `--query-params <json>` | Query params JSON array |  |
| `--api-key <key>` | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) |  |
| `--base-url <url>` | Advanced: override Public API base URL for this run |  |
| `--profile <name>` | Credentials profile: uses that profile's saved API key and Public API base URL (see `frontline auth profiles list`) |  |
| `--debug` | Show debug info on stderr (token is redacted) |  |
| `--pretty` | Pretty-print human-readable output (instead of default JSON) |  |
| `--table` | Render list results as a table (implies --pretty) |  |
| `--json` | Output raw JSON (default behavior — accepted as a no-op) |  |


## `frontline custom-tools describe`

Describe a custom tool

```bash
frontline custom-tools describe [options] <toolId>
```

**Options**

| Flag | Description | Default |
|  --- | --- | --- |
| `--api-key <key>` | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) |  |
| `--base-url <url>` | Advanced: override Public API base URL for this run |  |
| `--profile <name>` | Credentials profile: uses that profile's saved API key and Public API base URL (see `frontline auth profiles list`) |  |
| `--debug` | Show debug info on stderr (token is redacted) |  |
| `--pretty` | Pretty-print human-readable output (instead of default JSON) |  |
| `--table` | Render list results as a table (implies --pretty) |  |
| `--json` | Output raw JSON (default behavior — accepted as a no-op) |  |


## `frontline custom-tools test`

Execute a persisted tool with argument values and return the HTTP response

```bash
frontline custom-tools test [options] <toolId>
```

**Options**

| Flag | Description | Default |
|  --- | --- | --- |
| `--values <json>` | Argument values as JSON object keyed by argument name, e.g. '{"contactId":"42"}' |  |
| `--api-key <key>` | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) |  |
| `--base-url <url>` | Advanced: override Public API base URL for this run |  |
| `--profile <name>` | Credentials profile: uses that profile's saved API key and Public API base URL (see `frontline auth profiles list`) |  |
| `--debug` | Show debug info on stderr (token is redacted) |  |
| `--pretty` | Pretty-print human-readable output (instead of default JSON) |  |
| `--table` | Render list results as a table (implies --pretty) |  |
| `--json` | Output raw JSON (default behavior — accepted as a no-op) |  |


## `frontline custom-tools update`

Update a custom tool (API call tool)

```bash
frontline custom-tools update [options] <toolId>
```

**Options**

| Flag | Description | Default |
|  --- | --- | --- |
| `--name <name>` | Tool name |  |
| `--description <description>` | Tool description |  |
| `--status <status>` | Tool status (ACTIVE or PAUSED) |  |
| `--method <method>` | HTTP method (GET, POST, PUT, PATCH, DELETE) |  |
| `--url <url>` | Tool URL template |  |
| `--body <body>` | Raw request body template (e.g. a JSON string). Interpolate argument values with single braces: {argName} |  |
| `--arguments <json>` | Tool arguments JSON array, e.g. [{"name":"priority","dataType":"STRING","required":false,"defaultValue":"normal"}]. "required" defaults to true; "defaultValue" is a string coerced to dataType. |  |
| `--headers <json>` | Headers JSON array |  |
| `--query-params <json>` | Query params JSON array |  |
| `--api-key <key>` | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) |  |
| `--base-url <url>` | Advanced: override Public API base URL for this run |  |
| `--profile <name>` | Credentials profile: uses that profile's saved API key and Public API base URL (see `frontline auth profiles list`) |  |
| `--debug` | Show debug info on stderr (token is redacted) |  |
| `--pretty` | Pretty-print human-readable output (instead of default JSON) |  |
| `--table` | Render list results as a table (implies --pretty) |  |
| `--json` | Output raw JSON (default behavior — accepted as a no-op) |  |


## `frontline custom-tools delete`

Delete a custom tool

```bash
frontline custom-tools delete [options] <toolId>
```

**Options**

| Flag | Description | Default |
|  --- | --- | --- |
| `--api-key <key>` | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) |  |
| `--base-url <url>` | Advanced: override Public API base URL for this run |  |
| `--profile <name>` | Credentials profile: uses that profile's saved API key and Public API base URL (see `frontline auth profiles list`) |  |
| `--debug` | Show debug info on stderr (token is redacted) |  |
| `--pretty` | Pretty-print human-readable output (instead of default JSON) |  |
| `--table` | Render list results as a table (implies --pretty) |  |
| `--json` | Output raw JSON (default behavior — accepted as a no-op) |  |