---
title: "plm parts"
description: "Manage parts"
---

{/* AUTO-GENERATED by packages/cli/scripts/generate-docs.ts — do not edit by hand. */}
## plm parts

Manage parts

**Usage**

```bash
plm parts
```

**Subcommands**

- [`list`](#plm-parts-list)
- [`get`](#plm-parts-get)
- [`create`](#plm-parts-create) — Create a part
- [`update`](#plm-parts-update) — Update an existing part by part number
- [`delete`](#plm-parts-delete)
- [`bulk-delete`](#plm-parts-bulk-delete)
- [`bulk-obsolete`](#plm-parts-bulk-obsolete)
- [`revisions`](#plm-parts-revisions)
- [`relationships`](#plm-parts-relationships) — Manage part relationships
- [`impact-analysis`](#plm-parts-impact-analysis)
- [`hierarchy`](#plm-parts-hierarchy)
- [`dependencies`](#plm-parts-dependencies)
- [`where-used`](#plm-parts-where-used)
- [`numbering-scheme`](#plm-parts-numbering-scheme) — Show the org's active part-numbering scheme (formula, required variables)
- [`next-number`](#plm-parts-next-number)
- [`validate-number`](#plm-parts-validate-number)
- [`reserve`](#plm-parts-reserve)

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts",
  "description": "Manage parts",
  "arguments": [],
  "options": [],
  "subcommands": [
    "list",
    "get",
    "create",
    "update",
    "delete",
    "bulk-delete",
    "bulk-obsolete",
    "revisions",
    "relationships",
    "impact-analysis",
    "hierarchy",
    "dependencies",
    "where-used",
    "numbering-scheme",
    "next-number",
    "validate-number",
    "reserve"
  ]
}
```

</details>

### plm parts list

**Usage**

```bash
plm parts list
```

**Options**

- `-f, --filter <kv...>` — key=value filters
- `--page <n>` — page number (1-based)
- `--limit <n>` — results per page (max 100)
- `--offset <n>` — row offset (alternative to --page)
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts list",
  "description": null,
  "arguments": [],
  "options": [
    {
      "flags": "-f, --filter <kv...>",
      "description": "key=value filters",
      "required": false,
      "default": null
    },
    {
      "flags": "--page <n>",
      "description": "page number (1-based)",
      "required": false,
      "default": null
    },
    {
      "flags": "--limit <n>",
      "description": "results per page (max 100)",
      "required": false,
      "default": null
    },
    {
      "flags": "--offset <n>",
      "description": "row offset (alternative to --page)",
      "required": false,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts get

**Usage**

```bash
plm parts get <partNumber>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts get",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts create

Create a part

**Usage**

```bash
plm parts create
```

**Options**

- `--file <path>` — JSON/YAML file with the part payload (pn, description, revision, attributes, etc.)
- `--format <fmt>` — output format _(default: `"json"`)_
- `--bypass-validation` — skip active-scheme pattern validation (for legacy/migration part numbers). Server enforces admin role.

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts create",
  "description": "Create a part",
  "arguments": [],
  "options": [
    {
      "flags": "--file <path>",
      "description": "JSON/YAML file with the part payload (pn, description, revision, attributes, etc.)",
      "required": false,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    },
    {
      "flags": "--bypass-validation",
      "description": "skip active-scheme pattern validation (for legacy/migration part numbers). Server enforces admin role.",
      "required": false,
      "default": null
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts update

Update an existing part by part number

**Usage**

```bash
plm parts update <partNumber>
```

**Options**

- `--file <path>` — JSON/YAML file with the fields to update (partial update; only included keys are changed)
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts update",
  "description": "Update an existing part by part number",
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--file <path>",
      "description": "JSON/YAML file with the fields to update (partial update; only included keys are changed)",
      "required": false,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts delete

**Usage**

```bash
plm parts delete <partNumber>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts delete",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts bulk-delete

**Usage**

```bash
plm parts bulk-delete
```

**Options**

- `--file <path>` **required** — JSON file with an array of part numbers, or an object \{ partNumbers: [...] \}
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts bulk-delete",
  "description": null,
  "arguments": [],
  "options": [
    {
      "flags": "--file <path>",
      "description": "JSON file with an array of part numbers, or an object { partNumbers: [...] }",
      "required": true,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts bulk-obsolete

**Usage**

```bash
plm parts bulk-obsolete
```

**Options**

- `--file <path>` **required** — JSON file with an array of part numbers, or an object \{ partNumbers: [...] \}
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts bulk-obsolete",
  "description": null,
  "arguments": [],
  "options": [
    {
      "flags": "--file <path>",
      "description": "JSON file with an array of part numbers, or an object { partNumbers: [...] }",
      "required": true,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts revisions

**Usage**

```bash
plm parts revisions <partNumber>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts revisions",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts relationships

Manage part relationships

**Usage**

```bash
plm parts relationships
```

**Subcommands**

- [`list`](#plm-parts-relationships-list)
- [`add`](#plm-parts-relationships-add)
- [`remove`](#plm-parts-relationships-remove)

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts relationships",
  "description": "Manage part relationships",
  "arguments": [],
  "options": [],
  "subcommands": [
    "list",
    "add",
    "remove"
  ]
}
```

</details>

#### plm parts relationships list

**Usage**

```bash
plm parts relationships list <partNumber>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts relationships list",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

#### plm parts relationships add

**Usage**

```bash
plm parts relationships add <partNumber> <target> <type>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts relationships add",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    },
    {
      "name": "target",
      "required": true,
      "variadic": false,
      "description": ""
    },
    {
      "name": "type",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

#### plm parts relationships remove

**Usage**

```bash
plm parts relationships remove <partNumber> <target> <type>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts relationships remove",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    },
    {
      "name": "target",
      "required": true,
      "variadic": false,
      "description": ""
    },
    {
      "name": "type",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts impact-analysis

**Usage**

```bash
plm parts impact-analysis <partNumber>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts impact-analysis",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts hierarchy

**Usage**

```bash
plm parts hierarchy <partNumber>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts hierarchy",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts dependencies

**Usage**

```bash
plm parts dependencies <partNumber>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts dependencies",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts where-used

**Usage**

```bash
plm parts where-used <partNumber>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts where-used",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts numbering-scheme

Show the org's active part-numbering scheme (formula, required variables)

**Usage**

```bash
plm parts numbering-scheme
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts numbering-scheme",
  "description": "Show the org's active part-numbering scheme (formula, required variables)",
  "arguments": [],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts next-number

**Usage**

```bash
plm parts next-number
```

**Options**

- `--type <type>` — shorthand for --var CATEGORY=`<type>`
- `--var <kv...>` — scheme variable as KEY=VALUE (repeatable). Required when the active scheme declares required variables.
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts next-number",
  "description": null,
  "arguments": [],
  "options": [
    {
      "flags": "--type <type>",
      "description": "shorthand for --var CATEGORY=<type>",
      "required": false,
      "default": null
    },
    {
      "flags": "--var <kv...>",
      "description": "scheme variable as KEY=VALUE (repeatable). Required when the active scheme declares required variables.",
      "required": false,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts validate-number

**Usage**

```bash
plm parts validate-number <partNumber>
```

**Options**

- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts validate-number",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>

### plm parts reserve

**Usage**

```bash
plm parts reserve <partNumber>
```

**Options**

- `--workspace <id>` — workspace id (defaults to whoami.workspaceId — the personal workspace)
- `--ttl <seconds>` — reservation TTL in seconds
- `--purpose <text>` — free-form note describing what the reservation is for
- `--format <fmt>` — output format _(default: `"json"`)_

<details>
<summary>Agent-readable summary</summary>

```json
{
  "command": "plm parts reserve",
  "description": null,
  "arguments": [
    {
      "name": "partNumber",
      "required": true,
      "variadic": false,
      "description": ""
    }
  ],
  "options": [
    {
      "flags": "--workspace <id>",
      "description": "workspace id (defaults to whoami.workspaceId — the personal workspace)",
      "required": false,
      "default": null
    },
    {
      "flags": "--ttl <seconds>",
      "description": "reservation TTL in seconds",
      "required": false,
      "default": null
    },
    {
      "flags": "--purpose <text>",
      "description": "free-form note describing what the reservation is for",
      "required": false,
      "default": null
    },
    {
      "flags": "--format <fmt>",
      "description": "output format",
      "required": false,
      "default": "json"
    }
  ],
  "subcommands": []
}
```

</details>
