Manage → Configuration → Commands
The Commands tab lives on the Configuration panel of the Manage page — open Manage, then choose Configuration at the bottom of the browse tree.
The Commands catalog defines the ready-made actions operators can run against resources — the entries that appear on a resource’s Actions tab and in the database diagnostics catalog. Curating them here means operators get a consistent, vetted set of operations per resource type instead of ad-hoc commands.
What you can do
- Review the commands available for each resource type.
- Add or edit custom commands for a resource type.
- Control which commands operators see and can run.
How commands are organized
Commands are scoped to a resource type and grouped into categories (for example connection, performance, or schema checks for a database). Each command has a name, a description, and the underlying operation it performs; some expose parameters operators fill in before running.
Built-in commands ship with the platform and act as sensible defaults; you can add your own alongside them.
Writing a command template
A command template is the text sent to the resource, plus a small notation for the parts operators fill in. Everything you do not mark up is sent exactly as you typed it.
| Notation | Meaning |
|---|---|
{name:type} | A parameter the operator fills in. The type is required. |
[ ... ] | An optional part. It must contain at least one parameter, and the operator supplies all of its parameters or none. |
\ before [ ] { } \ | Send that character literally instead of treating it as notation. |
A backslash before any other character is ordinary text, so paths such as C:\Windows\System32 and expressions such as grep -E '\d+' need no special handling.
Because a parameter must carry a type, ordinary shell text is left alone: ${HOME}, awk '{print $1}' and @{Total=$x} are all sent as-is.
Examples
| Template | Result |
|---|---|
show version | Always sent as show version. |
show ip route[ vrf {vrf:string}] | show ip route vrf CUST_A when a VRF is given, otherwise show ip route. |
show mac[ vlan {vlan:vlan}][ interface {interface:interface}] | Two independent optional parts; either, both, or neither. |
show mac[ vrf {vrf:string} detail {n:integer}] | Both values or neither — supplying only one is rejected. |
type C:\Windows\System32\drivers\etc\hosts | Sent unchanged. |
grep "\[0-9\]" /var/log/syslog | Sent as grep "[0-9]" /var/log/syslog — the brackets are literal. |
grep "\[{pattern:string}\]" /var/log/syslog | Literal brackets around the operator’s value. |
Put the separating space inside an optional part (show ip route[ vrf {vrf:string}], not show ip route [vrf {vrf:string}]) so nothing is left behind when the part is omitted.
Parameter types
| Type | Accepts |
|---|---|
string | Any text |
integer | A positive whole number |
ipv4 / ipv6 | An IP address |
prefix | An IP prefix, for example 10.0.0.0/24 |
vlan | A VLAN ID (1–4094) |
interface | An interface name |
region | A cloud region |
database | A database name |
The type decides how the field is presented to the operator and what it accepts, so a VLAN field rejects 5000 before anything is sent.
When a template is rejected
The form refuses to save a template that cannot work, naming the problem:
- A parameter whose type is not one of the supported types —
{vlan:valn}is rejected as a typo rather than silently losing its validation. - An optional part containing no parameter — write
\[if you meant a literal bracket. - An optional part that is never closed.
- Optional parts nested inside one another.
- The same parameter name used more than once in the template — give each parameter a unique name.
A command is also refused before anything is sent to the resource if a required value is missing or empty, or if only part of an optional group is supplied.
Common tasks
Add a custom command
- Select the resource type.
- Click Add Command.
- Give the command a name, category, and description, then write the command template (see Writing a command template) and choose its mode.
- Optionally adjust how the output is handled:
- Parse source — how the raw output is turned into structured rows: Raw output (no parsing), Shipped template (a parsing template that ships with the platform), NTC template (a template from the community network-CLI template library), or JSON rows (the command already returns JSON).
- Parser name — the identifier of the parsing template, when a template source is selected.
- Read timeout (s) — how long to wait for the resource to finish responding.
- Use timing-based reads — collect output by waiting for it to go quiet instead of watching for a prompt; useful for commands whose output interferes with prompt detection.
- Save. The command then appears on the Actions tab for resources of that type.
Custom commands can be authored for SSH-reachable resource types. Cloud types expose their operations through the platform’s own integrations, so only the description, category, mode, and enabled state are editable there.
Authoring custom commands requires the Base edition or higher. Without it, the Add Command and per-row edit buttons stay visible but locked, with a padlock explaining what is missing.
Edit or remove a command
Use the per-row controls to adjust or delete a custom command.
Related
- Resource → Actions — how operators run these commands and read results.
- Resource → Database Shell — the database diagnostics catalog in action.
Permissions
- View the catalog:
app.commands.read. - Create / edit commands:
app.commands.write. - Delete commands:
app.commands.delete.