---
title: "Playground"
description: "Two chat UIs: the org playground for any OpenAI-compatible endpoint, and the project playground for your fine-tuned adapters."
---

Arkor Cloud has two playgrounds with different jobs.

## Org playground

`arkor.ai/<org>/playground` chats with **any OpenAI-compatible endpoint**: your Arkor endpoints, a local vLLM, or a third-party provider. Point it at a base URL and go.

- **Requests go straight from your browser** to the endpoint. Your API key is held in memory only, never stored, and never sent to the dashboard backend — it reaches only the endpoint you point the playground at (when that target is an Arkor endpoint, its `*.arkor.app` ingress receives the key to authenticate the request, like any other client would send it).
- **The endpoint must allow browser (CORS) requests.** Because the call comes from page JavaScript, the target has to permit cross-origin requests from `arkor.ai`. Arkor endpoints already do; for a local vLLM or a third-party provider that blocks browser calls, enable CORS on that server (for vLLM, e.g. `--allowed-origins '["https://www.arkor.ai"]'`) or the request will fail even though the API itself is compatible.
- **Endpoint picker.** A dropdown lists your org's enabled Arkor endpoints, grouped by project. Selecting one fills in the base URL (and marks open endpoints as needing no key).
- **Controls** for model override, temperature, max tokens, system prompt, and thinking mode (reasoning effort) on supported models.
- **Code example.** The current configuration can be exported as a ready-to-run snippet.
- **Frontier compare.** An optional second pane streams the same conversation through a frontier model, so you can judge your model side by side. The frontier call is proxied server-side; your endpoint key is not involved.

Settings persist per organization in your browser, except the API key, which is deliberately forgotten.

![The org playground](/images/cloud/playground-org-light.png "www.arkor.ai/oddphin-org/playground")
![The org playground](/images/cloud/playground-org-dark.png "www.arkor.ai/oddphin-org/playground")

## Project playground

`arkor.ai/<org>/<project>/playground` chats with your **fine-tuned adapters**. Pick a completed [training job](/docs/cloud/training), then:

- **Final** — the adapter from the end of the run.
- **Checkpoint N** — any mid-run checkpoint, to compare training stages.
- **Base only** — the job's base model with no adapter, for a baseline.

Responses stream token by token. The adapter loads dynamically on Arkor's inference workers, so switching between jobs and checkpoints takes seconds and needs no deployment. When a checkpoint chats well, serve it properly with an [endpoint](/docs/cloud/endpoints).

![The project playground with the adapter picker](/images/cloud/playground-project-light.png "www.arkor.ai/oddphin-org/support-bot/playground")
![The project playground with the adapter picker](/images/cloud/playground-project-dark.png "www.arkor.ai/oddphin-org/support-bot/playground")
