# Deploy with koo up

`koo up` deploys the directory on your machine: it packs your code into an archive, uploads it, builds it on Koo, and rolls it out. No git remote and no registry needed.

## First run

1. Install the [Koo CLI](/docs/developers/cli).
2. Sign in:

   ```bash
   koo login
   ```
3. From your project directory, deploy:

   ```bash
   koo up
   ```

If the directory isn't linked to a service yet, `koo up` offers to pick — or create — the account, project, environment, and service to deploy to, then records that link in a `koo.json` file next to your code. Every later `koo up` from the directory deploys the same service; commit `koo.json` to share the link with your team.

## What koo up does

1. 
2. 
3. 
4.

The command waits by default. Pass `--detach` to start the deploy and return immediately, then check on it later with `koo status`:

```bash
koo up --detach
```

## Redeploying

A service deployed this way ships only when you run `koo up` — creating it stages nothing to build, and there is no branch or registry for Koo to watch. To release a new version, run `koo up` again: each run creates the next numbered version, and rollback works like any other deploy.

> **Note:**
>
> `koo up` needs a fully set-up account. If you haven't finished setting yours up in the console — signing in, claiming a handle and verifying your phone — the CLI stops with `onboarding_incomplete` and the message _"Finish setting up your account in the Koo console (verify your phone) before deploying."_ Finish setup in the console, then run `koo up` again.
