
# Quickstart

This guide takes you from zero to a running agent using the **`dvx` CLI**. Daevix hosts the control plane and the enclave for you - there's no infrastructure to deploy. You'll install the CLI, create an account, sign in, and launch your first agent.

> The `dvx` CLI targets the hosted Daevix platform out of the box: it defaults to `https://accounts.daevix.com` (the **IAM URL**, where you authenticate) and `https://app.daevix.com` (the **control-plane URL**, where your agents are managed). The commands below work as-is. If you run a self-hosted deployment, pass `--iam-url` / `--control-plane-url` (or set `DVX_IAM_URL` / `DVX_CONTROL_PLANE_URL`) with the values you were given.

## 1. Install the CLI

<!-- TODO(install): distribution method not finalized. Replace this block with the
     real install instructions (binary download / install script / package manager)
     once decided. -->

> **Install instructions coming soon.** The `dvx` binary distribution is being finalized. Once installed, verify it's on your `PATH`:
>
> ```bash
> dvx version
> ```

## 2. Create your account

`dvx signup` creates a brand-new organization and your account in one step. Your password is prompted securely (or pass `--password`).

```bash
dvx signup \
  --email you@your-org.com \
  --org-name "Your Org" \
  --org-slug your-org
```

No token is issued by signup - you authenticate in the next step.

## 3. Sign in

`dvx login` uses a browser device flow. Against the hosted platform you don't need any flags; the default URLs are saved to your CLI profile so later commands reuse them. (Self-hosted: pass `--iam-url` / `--control-plane-url` the first time.)

```bash
dvx login
```

The CLI prints a verification URL and a code (and opens your browser when it can). Approve the request, and you'll see:

```
Logged in as you@your-org.com (org: 1)
Profile: default
```

Confirm anytime with:

```bash
dvx whoami
```

## 4. Add your LLM API key

Agents call their LLM provider through the Daevix LLM proxy, which injects the credential so the agent never sees it. Set your provider key once at the organization level and every agent can use it:

```bash
dvx secret set llmproxy:llm.api_key --value sk-ant-...
```

(You can override it per agent later with `dvx agent secret set`.)

## 5. Create your first agent

Agents run on an **enclave** - the on-premises component Daevix operates for you. (In the CLI, the enclave is the `broker` component.) List the enclave(s) available to you and create an agent on one:

```bash
dvx broker list
dvx agent create my-first-agent --broker-id <id>
```

The agent starts in `created`, then the enclave provisions it.

## 6. Watch it come up

```bash
dvx agent list
dvx agent get my-first-agent
```

The status moves `created` → `provisioning` → `active`. Once it's `active`, the agent is bootstrapped and running. Stream its output with:

```bash
dvx agent logs my-first-agent
```

## Next steps

- **[Set Up an Agent](/agent-setup/)** - give your agent a job: connect it to Telegram and Claude end to end.
- **[Agent Lifecycle](/agent-lifecycle/)** - what happens between `created` and `active`, and how renewal, suspension, and revocation work.
- **[Security Model](/security-model/)** - the trust boundaries and guarantees behind the platform.
