> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev.byterover.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation & Updates

> Setup, upgrades, and version management

<AccordionGroup>
  <Accordion title="How do I install ByteRover CLI?">
    **Recommended — native binary (no Node.js required):**

    ```bash theme={null}
    curl -fsSL https://byterover.dev/install.sh | sh
    ```

    This installs a self-contained binary to `~/.brv-cli/bin/brv` and updates your shell config (`.bashrc`, `.zshrc`, `.profile`, or fish) automatically.

    Supported platforms: **macOS ARM64**, **macOS x64 (Intel)**, **Linux x64**, **Linux ARM64**.

    **Alternative — npm:**

    ```bash theme={null}
    npm install -g byterover-cli
    ```

    Requires Node.js >= 20.

    **Verify your installation:**

    ```bash theme={null}
    brv --version
    ```
  </Accordion>

  <Accordion title="How do I uninstall ByteRover CLI?">
    **If installed via curl:**

    ```bash theme={null}
    curl -fsSL https://byterover.dev/uninstall.sh | sh
    ```

    Add `--yes` or `-y` to skip the confirmation prompt.

    This removes the installation directory (`~/.brv-cli/`), shell PATH entries, global config, logs, and stored credentials.

    **If installed via npm:**

    ```bash theme={null}
    npm uninstall -g byterover-cli
    ```

    <Note>
      Project-level `.brv/` directories (your local context trees) are **not** removed by either uninstall method. Delete them manually if needed.
    </Note>
  </Accordion>

  <Accordion title="How does the automatic update notifier work?">
    <Note>
      The automatic update notifier applies to the **npm installation method**. If you installed via the curl script, the CLI automatically updates in the background.
    </Note>

    When a new version of ByteRover CLI is available, you'll see a prompt before your command runs:

    ```
    ? Update available: 1.2.0 → 1.2.1. Would you like to update now? (Y/n)
    ```

    * Press **Enter** or type **y** to update immediately
    * Type **n** to skip and continue with your command

    <Note>
      If you accept the update, your original command will not run. You'll need to run it again after the update completes.
    </Note>

    **Opt out entirely.** If you manage `brv` versions on your own schedule (pinned in CI, controlled rollouts, air-gapped boxes) and don't want the prompt at all, set the [`update.checkForUpdates`](/reference/brv-settings) setting to `false`:

    ```bash theme={null}
    brv settings set update.checkForUpdates false
    ```

    The flag takes effect on the next `brv` invocation — no `brv restart` needed. It silences the y/n prompt and stops the background auto-update; manual `brv update` (curl install) still works whenever you want to upgrade.
  </Accordion>

  <Accordion title="What if the automatic update fails?">
    If the automatic update encounters an error, you'll see:

    ```
    Updating byterover-cli...
    <npm error output>
    ⚠️  Automatic update failed. Please run manually: npm update -g byterover-cli
    ```

    Your original command will still proceed. To update manually:

    **npm install:**

    ```bash theme={null}
    npm update -g byterover-cli
    ```

    **curl install:**

    ```bash theme={null}
    brv update
    ```

    <Note>
      `brv update` only works for curl/native binary installations. If you installed via npm, running `brv update` will show an error directing you to use `npm update -g byterover-cli` instead.
    </Note>
  </Accordion>

  <Accordion title="What does &#x22;brv restart&#x22; do?">
    `brv restart` stops all ByteRover processes (clients, daemon, agents, background servers). Use it when:

    * ByteRover is unresponsive or stuck
    * You've just installed an update
    * The TUI is behaving unexpectedly
    * The REPL header shows `[outdated, daemon vX.Y.Z]`, or MCP tool responses end with a daemon-version drift footer

    ```bash theme={null}
    brv restart
    ```

    The daemon will restart automatically on the next `brv` command. No flags or arguments are needed.
  </Accordion>

  <Accordion title="Why does the REPL show &#x22;[outdated, daemon vX.Y.Z]&#x22; after an update?">
    After upgrading `brv`, the background daemon keeps running on the version that started it. The REPL header tags this with `[outdated, daemon vX.Y.Z]`, and MCP tool responses (`brv-query`, `brv-curate`) include a matching drift footer when the daemon and CLI versions differ. New features in the upgraded CLI will not take effect until the daemon is restarted.

    **Fix:** run `brv restart` to restart the daemon, then restart your coding agent's host IDE so it re-spawns the MCP server against the new build.
  </Accordion>

  <Accordion title="How do I use ByteRover CLI behind a corporate proxy?">
    From v2.4.0, ByteRover CLI automatically routes internal service traffic (cloud sync, hub, authentication) through corporate proxies. Set `HTTPS_PROXY` and `HTTP_PROXY` environment variables before running any `brv` command. If your network uses SSL inspection, also set `NODE_EXTRA_CA_CERTS` to your corporate CA certificate path. Note that traffic to external LLM providers is not proxied.

    ```bash theme={null}
    export HTTPS_PROXY=http://proxy.corp.com:8080
    export HTTP_PROXY=http://proxy.corp.com:8080
    export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem
    ```

    For detailed setup and troubleshooting, see [Troubleshooting — Proxy Configuration](/faqs/troubleshooting#how-do-i-configure-byterover-cli-to-work-behind-a-corporate-proxy).
  </Accordion>
</AccordionGroup>
