# codaid CLI (/docs/environments/codaid)

Install the codaid command-line client and daemon on Linux, macOS or Windows, sign in, update it, and verify what you downloaded.

`codaid` is one binary with two jobs: a command-line client for your codai account (chat, sessions, schedules, Resolve, keys, usage) and the daemon that turns a machine into a [bring-your-own environment](./byo-install.mdx).

## Install [#install]

<Tabs items={['Linux / macOS', 'Windows']}>
<Tab value="Linux / macOS">

```bash
curl -fsSL https://codai.ro/install-codaid.sh | sh
```

</Tab>
<Tab value="Windows">

```powershell
irm https://codai.ro/install-codaid.ps1 | iex
```

</Tab>
</Tabs>

Both installers download the build for your system from the [GitHub release](https://github.com/codai-ro/codaid/releases/latest) and check it against the release's `SHA256SUMS` before installing anything. They **fail closed**: if the release publishes no checksum, if no SHA-256 tool is available, or if the hash differs, they stop with an error and leave nothing behind. When the GitHub CLI (`gh`) is installed they also check the build provenance; set `CODAID_REQUIRE_ATTESTATION=1` to make that check mandatory.

| | Linux / macOS | Windows |
| --- | --- | --- |
| Installs to | `/usr/local/bin/codaid` (`INSTALL_DIR`) | `%LOCALAPPDATA%\codai\bin\codaid.exe`, added to your user `PATH` |
| Pin a version | `VERSION=0.4.2 sh` | `$env:CODAID_VERSION='0.4.2'` before `irm` |
| Needs | `curl` or `wget`, `sha256sum` or `shasum` | PowerShell 5.1 or 7 |

macOS builds are not published yet; on a Mac the installer stops with a download error until they are.

The same scripts are attached to every release as `install.sh` and `install.ps1`. To check a download by hand, see [verify downloads](../apps/verify-downloads.mdx).

## Sign in [#sign-in]

```bash
codaid login        # device-code sign-in in the browser; stores a codai_ key
codaid whoami       # the account the stored key belongs to
codaid logout       # forget the stored key (revoke it in the hub to invalidate it)
```

`login` opens `auth.codai.ro/device` with the code filled in. On a server without a browser, open that address on any device and type the code shown in the terminal. Set `CODAI_API_KEY=codai_…` instead to skip the sign-in (CI, fleets).

## Update [#update]

Run the installer again; it replaces the binary with the latest release (or the pinned `VERSION`). Check the result with:

```bash
codaid version
```

On Windows, stop a running `codaid run` first: an open `codaid.exe` cannot be replaced.

## Everyday commands [#everyday-commands]

| Command | What it does |
| --- | --- |
| `codaid chat "…"` | One streamed chat turn with `codai` |
| `codaid sessions list` | Your conversation sessions |
| `codaid usage` | Usage breakdown for your account |
| `codaid keys list` | Your API keys (prefix only, never the secret) |
| `codaid resolve --help` | Submit an issue to [Resolve](../resolve/index.mdx) and wait for the verified fix |
| `codaid env --help` | Create, list and attach to environments |
| `codaid status` | Daemon configuration (key redacted) and local probes |

Every command has `--help`. To run the machine as an environment, continue with [install on your own server](./byo-install.mdx).
