# Deploy a PromptPack to Omnia

In this tutorial we deploy a PromptPack from PromptArena to an Omnia workspace.
We export a deploy profile from the dashboard, add it to the arena config, and
run `promptarena deploy`.

The profile holds the dashboard URL, the workspace name, a workspace-scoped API
token and the workspace's Ready Providers, so we copy no names by hand.

```mermaid
flowchart LR
  D["Dashboard: workspace Settings, Deploy tab"] -->|"deploy profile and omnia_sk_ token"| C["config.arena.yaml: spec.deploy.config"]
  C --> P["promptarena deploy"]
  P -->|"promptarena-deploy-omnia adapter"| W["Omnia workspace"]
  W --> A["PromptPack and AgentRuntime"]
```

## Prerequisites

- An Omnia workspace with a ready service group and at least one Ready `llm`
  Provider. See [Configure workspace service groups](/how-to/workspaces/configure-service-groups/).
- The `editor` role in that workspace.
- The `promptarena` CLI and an arena project with a `config.arena.yaml`.
- The Omnia adapter. Install it with `promptarena deploy adapter install omnia`.

## Export the deploy profile

1. In the dashboard, open **Workspace Settings** for your workspace and select
   the **Deploy** tab.
2. Select **Export deploy profile**.

   The **Configure deploy profile** dialog lists the workspace's Ready `llm`
   Providers and Ready SkillSources.
3. Leave the Providers checked and select **default** beside the Provider that
   should be the agent's primary LLM. Leave the skills unchecked.
4. If the dialog shows a **Token** section, choose **Regenerate**.
5. Select **Generate**.

The **Deploy profile** dialog shows the profile and a minted `omnia_sk_`
token. The token is scoped to this workspace and shown once. The profile is the
contents of `spec.deploy.config`, with no `config:` key of its own:

```yaml
api_endpoint: https://omnia.example.com
workspace: team-acme
api_token: omnia_sk_...
providers:
  - name: default
    ref: claude-sonnet
    role: llm
```

There is no `skills` key because no skills were checked.

The export names your chosen Provider `default` and sets `ref` to the real
Provider. The runtime uses the Provider named `default` as its primary.

:::caution[The token is a real credential]
Download or copy the profile now: the token is not shown again. The token acts with your role
in this workspace. Revoke it under **Settings → API keys** when you stop using
it.
:::

## Add the profile to the arena config

Merge the downloaded profile into `config.arena.yaml`:

```bash
promptarena deploy config import deploy-profile-team-acme.yaml
```

`deploy config import` deep-merges the file into `spec.deploy.config`. To add it
by hand instead, paste it under `spec.deploy.config`, beside
`provider: omnia`. Either way, the result looks like this:

```yaml
spec:
  deploy:
    provider: omnia
    config:
      api_endpoint: https://omnia.example.com
      workspace: team-acme
      api_token: omnia_sk_...
      providers:
        - name: default
          ref: claude-sonnet
          role: llm
```

The config now carries everything the adapter needs.

## Deploy

Run the deploy from the project directory.

```bash
promptarena deploy --config config.arena.yaml
```

The command plans the changes, then applies them:

```text
Deploying with provider "omnia" to environment "default"

Step 1: Planning deployment...
Plan: ...

Step 2: Applying deployment...
Deployment complete.
```

Open the **Agents** page in the dashboard. The deployed agent is listed there.

## Next steps

- [Set up the deploy config without the export](/how-to/agents/configure-deployment-setup/)
  for browser login and manual setup.
- [The PromptPack Deploy Program](/explanation/platform/deploy-program/) for how
  the profile and the adapter fit together.
- [Deploy-intent contract](/reference/platform/deploy-intent/) for the API the
  deploy uses.
- [Durable API keys](/how-to/security/api-keys/) for where the token is stored.