# VMYard documentation

> Isolated Linux machines you create, run commands in, and reach over HTTPS and SSH, from the CLI, the SDKs, or the HTTP API.

VMYard gives you isolated Linux machines on demand. Create a machine from a plan, an image, and a region; run commands in it and stream their output; move files in and out of its `/work` directory; open its ports as HTTPS URLs; reach it over SSH; and stop, start, or delete it when you are done. You pay per second while a machine runs.

Every change is an **operation**. The API accepts it, a worker carries it out, and the operation only reports success once VMYard has observed the result on the machine's host. Each change carries an idempotency key, so a retry after a dropped connection never creates a second machine or runs a command twice.

## Start here

- [Quickstart](/docs/quickstart): sign in, get an API key, and run your first machine in about five minutes.
- [Machines](/docs/concepts/machines): what a machine is and what it is made of.
- [Operations and idempotency](/docs/concepts/operations): how changes are accepted, tracked, and retried.
- [API reference](/docs/api): every route, generated from the OpenAPI document.

## Ways to use VMYard

| Tool | Use it for |
| --- | --- |
| [Console](/) | Signing in, API keys, webhooks, billing, and day-to-day machine work in the browser. |
| [`vy` CLI](/docs/cli) | Terminal and scripting: `vy new`, `vy exec`, `vy cp`, `vy usage`. |
| [TypeScript SDK](/docs/sdk/typescript) | Node.js 20+ applications and agents (`@vmyard/sdk`). |
| [Python SDK](/docs/sdk/python) | Python 3.9+ applications and agents (`vmyard-sdk`). |
| [HTTP API](/docs/api) | Anything else. JSON over HTTPS with `Authorization: Bearer vmy_…`. |

## What you can do today

- Create, list, rename, start, stop, restart, and delete machines; choose plan, image, and region from a versioned [catalog](/docs/concepts/catalog).
- [Run commands](/docs/guides/commands) with streamed output, and [background commands](/docs/guides/background-commands) with logs.
- [Write and read files](/docs/guides/files) up to 32 MiB.
- [Expose ports](/docs/guides/ports) as public or token-protected HTTPS URLs, and connect over [SSH](/docs/guides/ssh).
- Run a [setup script](/docs/guides/setup-scripts) once when a machine first starts.
- Keep variables and secret files in encrypted, versioned [environments](/docs/guides/environments) that VMYard installs in machines.
- Push stopped machines as [snapshots](/docs/guides/snapshots), save [templates](/docs/guides/templates), and [fork or restore](/docs/guides/fork-and-restore) machines into new ones.
- Stop idle spend with [auto-stop](/docs/concepts/auto-stop) and opt-in [idle sleep](/docs/concepts/idle-sleep).
- Receive signed [webhooks](/docs/guides/webhooks) when lifecycle operations finish.
- Track [usage, balances, and limits](/docs/guides/billing).

## Waking a machine

VMYard does not wake a stopped machine when a request arrives for it; start it to wake it. See [Sleep and wake](/docs/concepts/sleep-and-wake).

## For agents and LLMs

Every page is also available as Markdown: add `.md` to its URL, or use **Copy page** at the top. [/llms.txt](/llms.txt) lists every page, and [/llms-full.txt](/llms-full.txt) holds the whole documentation in one file.
