> ## 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.

# General

> Common questions about accounts, providers, and local vs cloud usage

<AccordionGroup>
  <Accordion title="Do I need an account to use ByteRover?">
    No — ByteRover CLI is **local-first** and works entirely on your machine without an account when using a third-party LLM provider.

    An account is required in two cases:

    * **ByteRover built-in provider** — Selecting or using the built-in LLM requires a logged-in ByteRover account.
    * **Cloud sync** — `/vc push` and `/vc pull` require authentication to sync your context tree across machines and share with teammates.

    Third-party providers (OpenAI, Anthropic, OpenRouter, etc.) work with just an API key — no ByteRover account needed.

    To log in:

    ```bash theme={null}
    brv login -k <your-api-key>
    ```

    Get your API key from [app.byterover.dev/settings/keys](https://app.byterover.dev/settings/keys).

    Run `brv status` at any time to check your account state.
  </Accordion>

  <Accordion title="What is the difference between local and cloud mode?">
    **Local mode** (no account needed) covers the core workflow:

    * `/curate` — add context to your knowledge tree
    * `/query` — query your context tree
    * `/providers` — connect and switch LLM providers (ByteRover built-in requires login)
    * `/connectors` — manage agent connectors
    * `/hub` — browse and install skills & bundles

    **Cloud mode** (requires login) adds:

    * `/vc push` and `/vc pull` — sync context to/from the cloud
    * `/vc remote` — manage remote space connections
    * `/vc clone` — clone a remote space
    * Team collaboration and multi-machine access

    See the [Local vs Cloud](/local-vs-cloud) page for the full command-by-command breakdown.
  </Accordion>

  <Accordion title="How do I switch LLM providers?">
    ByteRover supports nearly 20 LLM providers. The default provider is **ByteRover** (built-in, requires a logged-in ByteRover account for limited free usage).

    **In the REPL:**

    ```
    /providers              # manage providers
    /providers list         # list all available providers
    /providers connect      # connect a new provider
    /providers switch       # switch active provider
    ```

    **From the CLI:**

    ```bash theme={null}
    brv providers list
    brv providers connect <provider-id> -k <api-key>
    brv providers switch <provider-id>
    ```

    Some providers (e.g., OpenAI) support OAuth — authenticate via your browser instead of entering an API key:

    ```bash theme={null}
    brv providers connect openai --oauth
    ```

    In the REPL, choose "Sign in with OAuth" when prompted by `/providers`.

    **To change the model** within your active provider:

    ```
    /model                  # select a model (REPL)
    brv model list          # list available models (CLI)
    brv model switch <id>   # switch model (CLI)
    ```

    See the [LLM Providers](/external-llm-providers/overview) page for the full list of supported providers.
  </Accordion>

  <Accordion title="Can I use OAuth or /login on a headless (non-GUI) server?">
    OAuth and `/login` require a browser, so they won't work directly on headless machines without a desktop environment.

    However, when connecting via SSH through VSCode-based IDEs such as Cursor, VSCode, or Antigravity, OAuth becomes feasible. These IDEs can forward ports from the remote machine to your local environment, allowing the authentication flow to open in a local browser and complete successfully.

    This applies to both:

    * **Provider OAuth** — e.g., `brv providers connect openai --oauth` or selecting "Sign in with OAuth" in `/providers`
    * **Account login** — `/login` in the TUI

    For fully headless environments (CI/CD, scripts) where no IDE is involved, use API key authentication instead:

    ```bash theme={null}
    # Provider connection
    brv providers connect openai -k <api-key>

    # Account login
    brv login -k <api-key>
    ```
  </Accordion>
</AccordionGroup>
