# Mechs

A mech is a persistent agent that belongs to one workspace. Compute exists only while one of its runs is
active; between runs, a mech is its saved checkpoint.

## Names

Names contain lowercase letters, numbers, `_`, and `-`. They start with a letter or number and are at most
64 characters. A name is unique within its workspace.

## Profile and settings

A mech's **profile** is fixed when it is created: the model and the harness that drives it. The current
harness is Codex 0.156.0. Changing the model is rejected; create another mech instead.

**Settings** can change: `instructions` and `reasoningEffort`. Update the defaults with
`PATCH /v1/mechs/{id}`, or override them for one run in the run request. Changing defaults never alters a
run that has already been accepted.

GPT-6 Luna accepts `none`, `low`, `medium`, `high`, `xhigh`, and `max` effort. An unspecified effort means
`medium`.

## Checkpoints

A checkpoint holds the mech's conversation and its files, up to 16 MiB and 10,000 files. A run that
completes saves a new checkpoint before it reports `completed`. A run that fails or is cancelled keeps the
previous checkpoint, so the next run starts from the last good state.

Actions a mech takes outside its sandbox, such as calling another service, are not undone by a failed run.

## Limits

| Limit           | Value                   |
| --------------- | ----------------------- |
| Runs per mech   | One at a time, no queue |
| Run deadline    | 15 minutes              |
| Checkpoint size | 16 MiB, 10,000 files    |
| Name length     | 64 characters           |
