# Deploy commands

> Deploy a project with helix deploy, see what the first deploy provisions, and check a deployment's status and build errors.

`helix deploy` ships your project to Tray's cloud in one command, and prints the URL where it's running. There's no separate build step to run first: deploy builds what it needs. `helix deployment get` looks up what happened on a given deploy.

## helix deploy

```bash
helix deploy
```

Deploys the project in the current directory. What happens depends on whether the project has been deployed before.

**The first deploy provisions the project.** Helix creates the project on the platform, generates a name for it, writes an AI-generated description of what the app does, and records the project ID. If no workspace is set yet, the command asks you to pick one.

**Later deploys upload a new artifact** to the project that already exists. The AI description is regenerated on each deploy, so it tracks what your app currently does.

| Flag | What it does |
|---|---|
| `--name <name>` | Name to provision the project under, used on the first deploy only. Defaults to `name` in `helix.config.ts` |

Because `--name` only applies at provisioning time, passing it to a later deploy won't rename an existing project.

### What you get back

A successful deploy prints three things:

| Output | What it's for |
|---|---|
| Project ID | The project's identifier, also written into `helix.config.ts` |
| App URL | Where the app runs: `https://{project-id}.helix-app.ai` |
| Dashboard link | The project in the Helix dashboard at `https://app.helix.tray.ai` |

:::note{title="Deployed apps are never public"}
Every Helix app sits behind login. Visitors must be users in your Tray organization who have been granted access to the project. Sharing the URL isn't enough to give someone access, and there's no anonymous mode.
:::

To roll back, deploy again from an earlier commit of your project. There's no rollback command yet.

## helix deployment get

```bash
helix deployment get <deploymentId>
```

Shows the status of one deployment: whether it succeeded, any warnings raised during the build, and the build errors if it failed. Use it when a deploy doesn't come back clean, or when you want to confirm which deployment is live.

```bash
helix deployment get 4f2b8c1e-9d3a-4e77-b5c0-6a1f8e2d4b90
```

The Helix dashboard shows the same deployment history per project, alongside execution logs.

Commands for variables, custom domains, and build-only runs appear in the platform design but aren't in the CLI.

---

Canonical: https://helix.tray.ai/documentation/reference/cli/deploy/
Any link on this page is available as markdown by appending .md to its URL.
Full corpus: https://helix.tray.ai/documentation/llms-full.txt