---
title: "Install"
description: "Install the Carina CLI and daemon — shell installer, Homebrew, npm, or source."
source: https://carina.nebutra.com/getting-started/installation/
---

# Install

> Install the Carina CLI and daemon — shell installer, Homebrew, npm, or source.

> After this page you can run `carina doctor` and start a session.

## What you'll get

- `carina` CLI on your `PATH`
- Ability to start the local daemon (`carina daemon start` or auto-start via `carina`)
- Optional workers and client surfaces (TUI is built into the CLI)

## Prerequisites

- **macOS 13+** or modern **Linux** (x86_64 / arm64)
- Network only if you install packages or call cloud models (the runtime itself is local-first)

## Install

Prefer the **shell installer** for a full local toolchain.

    ```bash title="install.sh" frame="none"
    curl -fsSL https://carina.nebutra.com/install.sh | sh
    ```

    ```bash title="brew" frame="none"
    brew install Nebutra/tap/carina
    ```
    Homebrew installs do not auto-update — run `brew upgrade` when you need a newer build, or use `carina update` when the install is owned by the standalone channel.

    ```bash title="npm" frame="none"
    npm install -g @nebutra/carina
    ```

    ```bash title="install-from-source.sh"
    git clone https://github.com/nebutra/carina.git
    cd carina
    make install
    ```
    Source builds are for contributors; see `docs/release.md` for packaging truth.

## Verify

    ```bash frame="none"
    carina version
    ```

    ```bash frame="none"
    carina init
    ```
    Creates `~/.carina` and prints a daemon hint.

    ```bash frame="none"
    carina doctor
    ```
    Checks daemon reachability, config paths, and common misconfigurations. Explicit repairs: `carina doctor --fix --yes`.

## Daemon

The long-running process owns sessions, policy evaluation, and the audit store.

| Command | Meaning |
| --- | --- |
| `carina daemon start` | Start the CLI-owned local daemon |
| `carina daemon status` | Status without auto-start |
| `carina daemon stop` | Stop only a daemon owned by this CLI |
| `carina daemon logs` | Recent logs |
| `carina status` | Health and counters |

Interactive `carina` (TUI) **auto-starts** the daemon when needed. You can still start it explicitly before headless `carina run`.

Default socket: `~/.carina/daemon.sock` (override with `-socket`).

## Updates

```bash frame="none"
carina update --check
carina update
```

`carina update` is daemon-free and follows **installation ownership** (Homebrew/npm/pnpm delegate to the package manager; standalone installs use the published archive + checksum). It does not stop a running task — restart the daemon after tasks finish.

## If it fails

| Symptom | What to try |
| --- | --- |
| `command not found: carina` | Open a new shell; confirm installer PATH hints |
| `daemon unreachable` | `carina daemon start` then `carina doctor` |
| Doctor reports tool gaps | Re-run installer / `make install` so Zig toolchain sits next to the binary |
| Stale build | `carina update` or package-manager upgrade |

More: [FAQ](/deployment/faq/).

## Source of truth

- Installer & packaging: `docs/release.md`
- Security posture after install: [Policy](/concepts/policy/)
- Feature map: `apps/docs/FEATURE_MAP.md`

## Next

→ [Quickstart](/getting-started/quickstart/) — first governed session on a real repo.

---
Source: https://carina.nebutra.com/getting-started/installation/
Markdown: https://carina.nebutra.com/getting-started/installation/index.md
