> ## 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 create

Create a new GitHub runner profile.

`nsc github profile create` creates a new runner profile that defines the configuration for ephemeral GitHub Actions runners. A profile specifies the instance shape, operating system, cache volumes, builder mode, and optional custom image or network policy. The profile's tag must be unique within the workspace and is used to reference the profile in GitHub Actions workflow files via `runs-on` labels.

## Usage

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

### Examples

**Create a basic profile:**

```bash theme={null}
nsc github profile create \
  --tag "my-runners" \
  --description "Standard CI runners" \
  --os ubuntu-24.10 \
  --machine_type 4x8
```

**Create a profile with ARM architecture:**

```bash theme={null}
nsc github profile create \
  --tag "arm-runners" \
  --machine_arch arm64 \
  --machine_type 8x16
```

**Create a profile with egress restrictions:**

```bash theme={null}
nsc github profile create \
  --tag "secure-runners" \
  --egress_policy DOMAIN_ALLOW_LIST \
  --egress_domain_allow_list "*.github.com,*.npmjs.org"
```

**Create a profile from a spec file:**

```bash theme={null}
nsc github profile create --spec_file profile.json
```

## Flags

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

Stable user-configurable alias for the profile (required unless `--spec_file` is used). This is used in GitHub Actions workflow files to target runners (e.g., `runs-on: nscloud-my-runners`). Must be unique within the workspace.

<h3 id="--description-string-optional">
  \--description string (optional)
</h3>

Human-friendly description of the profile.

<h3 id="--os-string-optional">
  \--os string (optional)
</h3>

Operating system label. Determines the base image used for runners. Default: `ubuntu-24.04`.

**Examples:** `ubuntu-24.04`, `ubuntu-22.04`, `ubuntu-20.04`.

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

Machine type in the format `CPUxMemoryGB`. Default: `4x8`.

For example, `4x8` means 4 vCPU and 8 GB memory.

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

Machine architecture. Default: `amd64`.

Supported values: `amd64`, `arm64`.

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

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

<h3 id="--builder_mode-string-optional">
  \--builder\_mode string (optional)
</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-optional">
  \--emoji string (optional)
</h3>

Optional emoji to visually identify the profile in the UI.

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

Egress policy for outbound network access. Set to `DOMAIN_ALLOW_LIST` to restrict outbound access to specific domains. Leave empty for no filtering. Only supported on Linux runners.

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

Comma-separated list of allowed egress domains. Supports wildcards (e.g., `*.example.org`). Only valid with `--egress_policy=DOMAIN_ALLOW_LIST`. A minimal set of GitHub- and Namespace-owned domains needed to run GitHub jobs is always added automatically.

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

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

<h3 id="-o---output-string-optional">
  -o, --output string (optional)
</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 list](/docs/reference/cli/github-profile-list) - List profiles
* [nsc github profile update](/docs/reference/cli/github-profile-update) - Update a profile
* [nsc github profile delete](/docs/reference/cli/github-profile-delete) - Delete a profile
