# Report usage: cady sync

`cady sync` reports this machine’s AI app usage to your company: one short request every five minutes, with no background service.

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

`cady setup` installs the schedule for you. To see exactly what a sync would send, without sending it:

```sh
cady sync --dry-run
```

This prints the batch as JSON with account ids and emails masked. A sync carries token counts by session and model, the plan and allowance left for each AI app account, and which sessions are active. It is the only command that reports; a real sync also sends the account id and email.

## The schedule

```sh
cady sync install
cady sync install --apply
cady sync check
```

`install` prints the one crontab line it would add and writes nothing. `--apply` writes it. `check` confirms the line’s `cady` exists and runs. `cady sync uninstall --apply` removes only that line.

## What can go wrong

- The server refused the sync, or sign-in or the network failed: the next run sends the same data again, counted once. The exit code says which: see [Troubleshooting and help](https://cadyworks.com/docs/troubleshooting.md).
- Linux without a desktop session: the saved sign-in cannot be read from cron. Set `CADY_ACCESS_TOKEN` instead.
- `install` refuses when no company is selected, or when `cady` lives inside a Python virtualenv.

Next: [Read usage locally](https://cadyworks.com/docs/local-usage.md)
