> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reactor.inc/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Reactor hosts multiple models, each with its own connect slug (modelName) and command/event schema. The catalog of every model — slug, typed SDK package, and links to its schema — is at /model-api-reference/overview. Some models expose one slug per experience (e.g. HappyOyster); always take the slug from the model's own pages, never guess it.
> Fastest path to a working app: `npx create-reactor-app my-app --model=<slug>` scaffolds a complete app with secure auth wired up. Typed TypeScript SDKs are published as @reactor-models/<model>; Python uses the base reactor-sdk package.
> Auth: exchange an API key (rk_...) for a JWT via POST https://api.reactor.inc/tokens from your server. Never put the API key in client-side code.
> Append .md to any docs URL for clean Markdown. Search these docs via the MCP server at https://docs.reactor.inc/mcp.

# reactor model register

> Register a new model with the Reactor platform

```sh theme={"theme":{"light":"github-light","dark":"github-dark-high-contrast"}}
reactor model register [flags]
```

## Description

Register a new AI model. The model is private by default.

Provide a model name with `--name`, or supply a model spec file via
`--model-file` (YAML or JSON). When neither is given, the CLI auto-detects a
`reactor.yaml` by walking up from the current directory (stopping at
the enclosing repository root) and loads it as if it had been passed via
`--model-file`. With neither flag set and no enclosing `reactor.yaml` to
find, the existing required-flag error fires.

**Precedence (highest to lowest):**

1. CLI flags (`--name`, `--description`, `--gpu`, ...) explicitly set on the
   command line ALWAYS win, even when `--model-file` is also supplied.
2. `--model-file` values (whether passed explicitly or auto-detected) fill
   in fields not set on the command line.

Model names are lowercase, ECR-safe identifiers. Use a short per-account name
such as `vision-model`, or a canonical `org/name` identifier when the org is
your account slug.

**Accelerators:**

Models that need accelerator hardware (NVIDIA / AMD GPUs, AWS Trainium /
Inferentia) declare the device with `--gpu` plus `--gpu-type`. The flag name
is historical; `--gpu-type` also accepts the Neuron families
(AWS\_TRAINIUM\_2/3, AWS\_INF\_2) and the model is scheduled onto the right
hardware automatically. For Trainium/Inferentia, `--gpu-type` alone is
enough - the CLI infers `--gpu` so partners don't have to type a misleading
flag.

**Examples:**

```sh theme={"theme":{"light":"github-light","dark":"github-dark-high-contrast"}}
reactor model register                                        # auto-detect enclosing reactor.yaml
reactor model register --name vision-model
reactor model register --name vendor/awesome-model --gpu --gpu-type NVIDIA_H100
reactor model register --name vendor/rolling-model --gpu-type AWS_TRAINIUM_2
reactor model register --model-file model.yaml
reactor model register --model-file model.json --name override-name
```

**Example model.yaml:**

```
model:
  name: my-model              # required
  description: |
    Free-form description.
  public: false
  resources:
    gpu:
      # GPU types: NVIDIA_H100, NVIDIA_B200, AMD_MI300X, ...
      # Neuron types: AWS_TRAINIUM_2, AWS_TRAINIUM_3, AWS_INF_2
      type: NVIDIA_H100
      count: 1
    cpu:
      request: 500m
      limit: "2"
    memory:
      request: 4Gi
      limit: 32Gi
  extra-args:
    - --batch-size
    - "4"
```

## Options

| Flag                      | Description                                                                                        |
| ------------------------- | -------------------------------------------------------------------------------------------------- |
| `--description string`    | Model description                                                                                  |
| `--extra-arg stringArray` | Extra CLI argument for the model container (repeatable)                                            |
| `--gpu`                   | Model requires an accelerator (GPU, Trainium, or Inferentia)                                       |
| `--gpu-count int`         | Number of accelerators per instance (requires `--gpu` or a Neuron `--gpu-type`; defaults to 1)     |
| `--gpu-type string`       | Accelerator type (NVIDIA\_*/AMD\_*/AWS\_TRAINIUM\_*/AWS\_INF\_*); implies `--gpu` for Neuron types |
| `--model-file string`     | Path to a YAML or JSON file describing the model                                                   |
| `--name string`           | Model name: \<name> or \<org>/\<name> (lowercase letters, digits, '.', '\_', '-')                  |
| `--public`                | Make the model publicly accessible                                                                 |

## Global options

| Flag              | Description                                                                           |
| ----------------- | ------------------------------------------------------------------------------------- |
| `--server string` | Reactor API server URL (default "[https://api.reactor.inc](https://api.reactor.inc)") |
| `-v, --verbose`   | Enable verbose output                                                                 |

## See also

* [reactor model](/deploy/cli-reference/reactor_model) - Model management commands
