# First run: cady setup

`cady setup` gets this machine ready in one go: it signs you in, selects your company, schedules sync and checks the result.

The CLI is not released yet; see [Install the CLI](https://cadyworks.com/docs/install.md).

```sh
cady setup
```

Your browser opens for sign-in the first time, and setup waits up to three minutes for it. Each step prints one line:

```text
sign-in: done
company: done: 3f6c1e0a-9b2d-4c7e-8a11-5d2f0c9e7b44
schedule: done
sync: done
verdict: done
```

A step that is already in place prints `skipped` with the reason, so running it again is safe. The sync step is skipped only when this machine synced in the last 5 minutes.

## See the plan first

```sh
cady setup --dry-run
```

This prints what each step would do. It changes nothing and contacts nothing. `--no-schedule` runs setup without installing the recurring sync.

## What can go wrong

- `company: failed: several companies; choose one`: setup lists each company with its id. Run `cady local company set <id> --global`, then `cady setup` again. See [Choose a company](https://cadyworks.com/docs/company.md).
- `company: failed: no company is available`: create or join a company at [app.cadyworks.com](https://app.cadyworks.com), then run `cady setup` again.
- `schedule: failed: the installed schedule syncs another company`, or its `cady` does not run: run `cady sync uninstall --apply`, then `cady setup` again.
- “schedule: failed: this machine has no `crontab` command”: run `cady setup --no-schedule` and schedule `cady sync` every 5 minutes yourself.
- `sync: failed`: the line gives the reason. See [Report usage](https://cadyworks.com/docs/sync.md).
- `verdict: failed`: the line names the fix. `cady status --check` shows every check.

Setup exits 0 when every step is done or skipped and 2 when a step before sync fails. A failed sync or final check exits with that step’s own code, 1 or 3.

Next: [Check this machine: cady status](https://cadyworks.com/docs/status.md)
