# Use the Arena project editor

Edit an Arena project's files in the dashboard, check them for problems, save them and start a run.

## Prerequisites

- `enterprise.enabled=true` in your Helm values. See [Install with a License](/how-to/operations/install-license/).
- `enterprise.promptkitLsp.enabled=true` for validation. It defaults to `true` and has no effect unless Enterprise is on.
- Editor access to the workspace.
- A project. See [Create an Arena project](/how-to/evaluation/create-an-arena-project/).

## Open the editor

1. In the sidebar, select **Projects**, then select the project.
2. Select **Edit**. A project linked from an external repository opens the same editor, on a branch of that repository. For committing and pushing, see [Work on an external repository](/how-to/evaluation/work-on-an-external-repository/).

The editor has three tabs above the files: **Files**, **Builder** and **Try it**. This page covers **Files**. [Try a project's dev agent](/how-to/evaluation/try-an-arena-project/) covers **Try it**, and [Edit a project with the builder](/how-to/evaluation/edit-a-project-with-the-builder/) covers **Builder**.

## Edit files

1. Select a file in the tree to open it. Opened files appear as tabs.
2. Right-click a file or folder for **New**, **Import**, **Copy Path**, **Rename** and **Delete**.
   - **New** offers Prompt, Provider, Scenario, Tool and Persona starters, plus a plain **File...** and **Folder...**.
   - **Import** > **Provider...** opens **Import Providers**: tick workspace Providers and each is written to a file in the project.
   - **Import** > **Tool...** opens **Import Tools**: pick a ToolRegistry, then the tools to import.
3. To hide the tree, select the button at the top of the files panel. Select the same button on the strip to bring it back.

The project's entry point is `config.arena.yaml`. File formats follow the [PromptKit documentation](https://promptkit.altairalabs.ai).

## Save

1. Press `Ctrl/Cmd + S` in the editor, or select **Save** in the title bar. The title bar shows `N files unsaved` and **Discard** while any tab has unsaved edits.
2. Saving writes to your own working clone of the project, then re-checks the project and refreshes the Problems tab.

Saving does not publish to the project's main branch. Commit and sync from the **Source control** tab under the editor.

## Validate

1. Select **Validate All** in the toolbar.
2. Read the toast, then the **Problems** tab under the editor. Select a problem to open the file at that spot.

The editor also checks the open file as you type and underlines problems in it. Cross-file checks run only under **Validate All**.

Problems come from three checks:

- Each YAML file against the PromptKit schemas, including that every `file:` reference points at a file in the project.
- The `deploy.config` provider, tool and skill bindings in `config.arena.yaml`.
- Tool wiring. A prompt offers the model only the tools in its `spec.allowed_tools`. The check reports a tool the project declares but no prompt allows, and a scenario that asserts a tool is called when its prompt cannot call it. It warns when `allowed_tools` lists a tool the project does not declare.

Validate All reads only `.yaml` and `.yml` files. It skips the top-level `out/` directory and hidden entries, and it reports a file over 512 KiB or not valid UTF-8 as `skipped` in Problems. A project with too many or too large files reports that as a single problem.

## Run the project

1. Select **Run this project** in the title bar.
2. Select the run type: **Evaluation**, **Load test** or **Data generation**.
3. To run some scenarios, tick them in the **Scenarios** list, or select **Needs attention** for the ones not passing. A project that has never run has no list, and the run covers every scenario.
4. Confirm the run. The dashboard opens the run page.

A run executes the project as committed to its repository. If the editor holds unsynced work, the dialog offers to sync it first. See [Monitor Arena jobs](/how-to/evaluation/monitor-arena-jobs/) and [Run an Arena load test](/how-to/evaluation/run-arena-load-test/).

## Verify

**Validate All** shows a **Validation Passed** toast and the Problems tab lists no errors.

## Troubleshooting

### Problems says the validation service could not be reached

Check that the PromptKit LSP pod is running:

```bash
kubectl get pods -n <omnia-namespace> -l app.kubernetes.io/component=promptkit-lsp
```

### Save does not reach the project's main branch

Saving writes to your working clone only. Commit and sync from the **Source control** tab.

## Related pages

- [Create an Arena project](/how-to/evaluation/create-an-arena-project/)
- [Try a project's dev agent](/how-to/evaluation/try-an-arena-project/)
- [Deploy an Arena project as an agent](/how-to/evaluation/deploy-an-arena-project/)
- [Monitor Arena jobs](/how-to/evaluation/monitor-arena-jobs/)
- [PromptKit documentation](https://promptkit.altairalabs.ai)