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

# Quickstart

> Create and connect to your first Mount Thor machine

Mount Thor provides bare-metal Apple Silicon Macs and macOS virtual machines.
Use the `mthr` CLI for the standard workflow.

## Sign Up

[Request access](https://portal.mountthor.com/request-access) to Mount Thor. We
review and approve access within 24 hours. You can complete account
configuration while we review.

## Install the CLI

```bash theme={null}
curl -fsSL https://get.mountthor.com/install.sh | sh
mthr version
```

Homebrew is also supported:

```bash theme={null}
brew install Mount-Thor/mountthor/mthr
```

## Sign in

```bash theme={null}
mthr login
```

`mthr login` opens your browser for single sign-on and stores a short-lived
session on your workstation. The CLI keeps that session fresh automatically, so
you rarely sign in again during a work session. If your identity can reach more
than one customer or tenant, add `--customer` and `--tenant`; otherwise the CLI
resolves them from your account.

Use [Account](/platform/account) to confirm the active customer and tenant. For
automation, use an [API key](/platform/api-keys), or
[workload identity](/platform/identity-principals) for CI that can issue OIDC
tokens.

## Create a virtual machine

List available images:

```bash theme={null}
mthr image ls
```

Replace `IMAGE_NAME` with a name from the list:

```bash theme={null}
mthr vm create build-vm --image IMAGE_NAME --wait
mthr vm ssh build-vm
```

Create asks you to confirm a prepaid hold before committing; pass `-y` to skip
the prompt. Check funds and readiness with `mthr billing account`.

Release the VM when finished:

```bash theme={null}
mthr vm delete build-vm --wait
```

See [Virtual machines](/compute/virtual-machines) for desktop access, port
forwarding, and direct Kubernetes use.

## Allocate a bare-metal Mac

```bash theme={null}
mthr bm allocate
mthr bm ls
```

After the machine reaches `Ready`, connect over SSH:

```bash theme={null}
mthr bm ssh MACHINE_NAME
```

Release it when finished:

```bash theme={null}
mthr bm free MACHINE_NAME --wait
```

Replace `MACHINE_NAME` with the name chosen during allocation. See
[Bare metal](/compute/bare-metal) for explicit class and image selection.

## Use kubectl

```bash theme={null}
mthr kubeconfig
```

The compute guides include the supported Kubernetes resource shapes.

## Observe lifecycle

`--wait` holds a CLI operation until the resource is ready or the timeout
expires. Without it, create and delete commands return after acceptance.

For automation, add `--json` to data commands. A successful command writes one
JSON document to stdout and exits `0`. Errors write to stderr: `2` usage, `3`
not found, `4` authentication, `5` conflict, `6` API, `7` network, `8` tenant
not ready, and `9` billing setup.

For controllers, trust status when `status.observedGeneration` matches
`metadata.generation`. Bare metal is usable in `Ready`; a VM is usable in
`Running`. In both cases, `status.readyForAccess` must be `true`. `Failed` is
terminal. Other phases are in progress. Delete and recreate a resource to
change its spec. Deletion is complete when a read returns `404 Not Found`.
