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

# nsc github profile update

Update an existing GitHub runner profile.

`nsc github profile update` modifies an existing runner profile. You can update individual fields like the machine type, OS, or builder mode, or replace the entire spec from a file. The update supports optimistic concurrency control via the `--version` flag to prevent concurrent modifications.

## Usage

```bash theme={null}
nsc github profile update [flags]
```

### Examples

**Update the machine type:**

```bash theme={null}
nsc github profile update \
  --profile_id <profile-id> \
  --machine_type 8x16
```

**Update the OS and add a custom Dockerfile:**

```bash theme={null}
nsc github profile update \
  --profile_id <profile-id> \
  --os ubuntu-24.04 \
  --dockerfile Dockerfile.runner
```

**Update with optimistic concurrency control:**

```bash theme={null}
nsc github profile update \
  --profile_id <profile-id> \
  --description "Updated runners" \
  --version 3
```

**Update from a spec file:**

```bash theme={null}
nsc github profile update \
  --profile_id <profile-id> \
  --spec_file profile.json
```

## Required Flags

<h3 id="--profile_id-string">
  \--profile\_id string
</h3>

Profile ID to update.

## Optional Flags

<h3 id="--tag-string">
  \--tag string
</h3>

Stable user-configurable alias for the profile.

<h3 id="--description-string">
  \--description string
</h3>

Human-friendly description of the profile.

<h3 id="--os-string">
  \--os string
</h3>

Operating system label (e.g., `ubuntu-24.10`).

<h3 id="--machine_type-string">
  \--machine\_type string
</h3>

Machine type in the format `CPUxMemoryGB` (e.g., `4x8` for 4 vCPU and 8 GB memory).

<h3 id="--machine_arch-string">
  \--machine\_arch string
</h3>

Machine architecture (`amd64` or `arm64`).

<h3 id="--swap_memory-int32">
  \--swap\_memory int32
</h3>

Swap to provision on the runner, in MB. Must not exceed 2x the machine's memory.

<h3 id="--builder_mode-string">
  \--builder\_mode string
</h3>

Builder mode controlling how container builds are executed. Default: `USE_REMOTE_BUILDER`.
Alternative options are `USE_LOCAL_CACHE` when a local build cache within the runner should be used or `NO_CACHING` when caching should be disabled.

<h3 id="--emoji-string">
  \--emoji string
</h3>

Optional emoji to visually identify the profile in the UI.

<h3 id="--dockerfile-string">
  \--dockerfile string
</h3>

Path to a Dockerfile for a custom runner image. The Dockerfile is applied as a layer on top of the base image.

<h3 id="--egress_policy-string">
  \--egress\_policy string
</h3>

Egress policy for outbound network access. Set to `DOMAIN_ALLOW_LIST` to restrict outbound access to specific domains, or `NONE` to disable filtering.

<h3 id="--egress_domain_allow_list-strings">
  \--egress\_domain\_allow\_list strings
</h3>

Comma-separated list of allowed egress domains. Supports wildcards (e.g., `*.example.org`). Only valid with `--egress_policy=DOMAIN_ALLOW_LIST`.

<h3 id="--spec_file-string">
  \--spec\_file string
</h3>

Path to a JSON file containing the full profile spec. When provided, individual flags are ignored.

<h3 id="--version-int">
  \--version int
</h3>

Current version of the profile for optimistic concurrency control. If not provided, it will be fetched from the backend.

<h3 id="-o---output-string">
  -o, --output string
</h3>

Output format. Default: `plain`.

Supported values: `plain`, `json`.

## Related Topics

* [nsc github profile](/docs/reference/cli/github-profile) - Manage GitHub runner profiles
* [nsc github profile describe](/docs/reference/cli/github-profile-describe) - Describe a profile
* [nsc github profile delete](/docs/reference/cli/github-profile-delete) - Delete a profile
