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

# TunePlane

> Run LLM post-training jobs on shared GPUs, from a project on your own machine.

![TunePlane — a control plane for LLM post-training: environments, train, evaluate, playground, deploy, with reflow closing the loop](https://mintcdn.com/starforge/InJS8EvGlZCp2PSg/images/banner.png?fit=max\&auto=format\&n=InJS8EvGlZCp2PSg\&q=85\&s=7f733b4f9685df15769f24a02b259f38)

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
uv tool install tuneplane
tp init my-lab && cd my-lab
tp new my-grpo --method nemo-rl/grpo
tp submit my-grpo --profile h200:8
```

Four commands from an empty directory to a GRPO run on a GPU cluster. The loss curve
streams into a web console. No cluster credential ever leaves the control plane.

> **[Quickstart](https://docs.tuneplane.ai/en/quickstart.md)**
>
> Install, log in, submit, and watch the first point land on the chart.

> **[Glossary](https://docs.tuneplane.ai/en/concepts/glossary.md)**
>
> Experiment, run, Fleet, profile, Resource Pool — the nouns the CLI and the console use.

## What it does

You declare an experiment in YAML. TunePlane validates it on your machine, sends it to a
cluster you never log in to, and brings the results back.

| | |
| - | - |
| **Submit** | `tp submit` packs the working tree and queues a job. Quota, method version and image allowlist are checked before it reaches hardware. |
| **Watch** | Loss, reward, KL, GPU utilisation, live logs and validation samples, in the console while the job runs. |
| **Score** | GSM8K, MMLU, C-Eval and others through standard harnesses. Or your own benchmark pack, or an LLM judge scoring against a rubric your team wrote. |
| **Serve** | Chat with a checkpoint in the Playground, or promote a version to a Model Deployment with a stable endpoint. |
| **Govern** | Quota, schedule windows, an image allowlist, an audit trail, and Volumes a job can read but nobody can download. |

## What it does not do

TunePlane does not own what runs inside a job. The training framework does, and so does your
code.

| Trains the model | Runs the job |
| - | - |
| NeMo-RL, verl, TRL, OpenRLHF, PyTorch, or a `train.sh` of your own | Docker on one host, a pool of registered machines, KubeRay, or Slurm |

One JobSpec expresses the intent. The same experiment runs on any of the four backends
without a change to your config.

## Pick a path

> **[Train a model](https://docs.tuneplane.ai/en/quickstart.md)**
>
> Quickstart, then [submitting](https://docs.tuneplane.ai/en/guides/submit.md), [sweeps](https://docs.tuneplane.ai/en/guides/sweep.md) and
> [multi-stage pipelines](https://docs.tuneplane.ai/en/guides/pipelines.md).

> **[Extend the platform](https://docs.tuneplane.ai/en/extend/overview.md)**
>
> Add a method, a benchmark, an agent environment, a rubric, or a runtime patch.

> **[Run a deployment](https://docs.tuneplane.ai/en/ops/overview.md)**
>
> Install the console, register a Fleet, set quota, keep it running.

## What runs where

| | Your machine | The control plane | The cluster |
| - | - | - | - |
| Config validation | ✓ | ✓ | |
| Cluster credentials | | ✓ | |
| Object-storage keys | | ✓ | |
| Training code | | | ✓ |
| Plugin code | | | ✓ |
| Dataset contents | | | ✓ |

The control plane never executes third-party code, and a training job never receives the raw
contents of a protected Volume. See [extension points](https://docs.tuneplane.ai/en/extend/overview.md) for what that
means when you add your own code.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.