diff --git a/CHANGELOG.md b/CHANGELOG.md
index 40a3ebae2..1dcae5d51 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,16 @@
All notable user-facing changes to ByteRover CLI will be documented in this file.
+## [3.8.3]
+
+### Changed
+- **`brv login` opens your browser by default** — Just run `brv login` and sign in in your browser. On CI or a remote shell, use `--api-key ` instead (get one at https://app.byterover.dev/settings/keys). SSH and non-interactive shells are detected automatically and skip the browser step.
+- **Provider picker shows what each provider is** — `brv providers list` and the web provider picker now show a short description under each name, so you can pick by what a provider does instead of guessing from the brand.
+
+### Fixed
+- **No more "Logged in as undefined"** — `brv login` now says "Logged in successfully" when the server doesn't return your email.
+- **`brv webui` works when installed under a hidden folder** — Reloading a page like `/contexts` no longer 404s when `brv` lives under a dotfile path such as `~/.nvm/...` or `~/.asdf/...`.
+
## [3.8.2]
### Fixed
diff --git a/CLAUDE.md b/CLAUDE.md
index cee3de77d..c2206ac39 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -85,6 +85,7 @@ npm run dev:ui # Vite dev server for the web UI
- Browser bootstraps by fetching `/api/ui/config` to discover the daemon's dynamic Socket.IO port, then connects cross-origin
- Daemon `ClientType` includes `'webui'` alongside `'tui' | 'cli' | 'agent' | 'mcp' | 'extension'`
- Build/dev: `npm run build:ui` (Vite, runs as part of `npm run build`); `npm run dev:ui` for live reload. `typecheck` runs both the root and `src/webui/tsconfig.json`
+- Shared UI components live in a git submodule at `packages/byterover-packages/` (published as `@campfirein/byterover-packages`). `dev:ui` / `build:ui:submodule` read from the submodule; `build:ui` / `dev:ui:package` read from the installed `node_modules` copy. Override Vite's resolution with `BRV_UI_SOURCE=submodule|package`
### VC, Worktrees & Knowledge Sources
@@ -100,12 +101,13 @@ npm run dev:ui # Vite dev server for the web UI
- All commands are daemon-routed: `oclif/` and `tui/` never import from `server/`
- Oclif: `src/oclif/commands/{vc,worktree,source}/`; TUI: `src/tui/features/{vc,worktree,source}/`; slash commands (`vc-*`, `worktree`, `source`) in `src/tui/features/commands/definitions/`
- `brv curate` blocks execution by default and rejects overlapping runs for the same project; pass `--detach` to run in background. Behavioral contract lives in `src/server/templates/sections/` (`brv-instructions.md`, `workflow.md`, `skill/SKILL.md`) — the in-daemon agent reads these at runtime
+- `brv login` defaults to OAuth (interactive provider picker); pass `--api-key` only for CI. `brv logout` clears credentials
### Agent (`src/agent/`)
- Tools: definitions in `resources/tools/*.txt`, implementations in `infra/tools/implementations/`, registry in `infra/tools/tool-registry.ts`
- Tool categories: file ops (read/write/edit/glob/grep/list-dir), bash (exec/output), knowledge (create/expand/search), memory (read/write/edit/delete/list), swarm (query/store), todos (read/write), curate, code exec, batch, detect domains, kill process, search history
-- LLM: 20 providers in `infra/llm/providers/`; 6 compression strategies in `infra/llm/context/compression/`
+- LLM: 20 providers in `infra/llm/providers/`; compression strategies in `infra/llm/context/compression/`
- System prompts: contributor pattern (XML sections) in `infra/system-prompt/`
- Map/memory: `infra/map/` (agentic map, context-tree store, LLM map memory, worker pool); `infra/memory/` (memory-manager, deduplicator)
- Storage: file-based blob (`infra/blob/`) and key storage (`infra/storage/`) — no SQLite
@@ -135,6 +137,10 @@ npm run dev:ui # Vite dev server for the web UI
## Environment
- `BRV_ENV` — `development` | `production` (dev-only commands require `development`, set by `bin/dev.js` and `bin/run.js`)
+- `BRV_WEBUI_PORT` — override the web UI port (default `7700`)
+- `BRV_UI_SOURCE` — `submodule` | `package` — forces Vite's shared-UI resolution mode
+- `BRV_DATA_DIR` — override the global data dir (default `~/.brv`)
+- `BRV_GIT_REMOTE_BASE_URL` — override git remote base URL (beta vs prod testing)
## Stack
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index bbc590828..fccfeadd3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -79,6 +79,33 @@ npx mocha --forbid-only "test/path/to/file.test.ts"
- **Pre-commit**: Runs `lint-staged` (ESLint on staged `.ts`/`.tsx` files)
- **Pre-push**: Runs `npm run typecheck`
+### Web UI Development
+
+The web UI supports a local-first development flow for the shared component library. `npm run dev:ui` uses the git submodule at `packages/byterover-packages/ui` so edits to shared UI components hot-reload immediately in Vite.
+
+```bash
+# Clone with submodules, or initialize them after clone
+git clone --recurse-submodules
+# or
+git submodule update --init --recursive
+
+# Install dependencies
+npm ci
+
+# Start or restart the daemon
+./bin/dev.js restart
+
+# Start the web UI in local development mode
+npm run dev:ui
+```
+
+Notes:
+
+- Edit shared components in `packages/byterover-packages/ui/src`.
+- `npm run dev:ui` uses the submodule source.
+- `npm run build:ui` uses the installed package path.
+- If `/api/ui/config` or transport bootstrap fails, restart the Vite dev server after restarting the daemon.
+
## Project Structure
```
diff --git a/README.md b/README.md
index 47b2b20c3..0d392dffd 100644
--- a/README.md
+++ b/README.md
@@ -30,6 +30,7 @@ Or download our self-hosted PDF version of the paper [here](https://byterover.de
**Key Features:**
+- 🌐 Web dashboard for curating and querying context (`brv webui`)
- 🖥️ Interactive TUI with REPL interface (React/Ink)
- 🧠 Context tree and knowledge storage management
- 🔀 Git-like version control for the context tree (branch, commit, merge, push/pull)
@@ -101,35 +102,6 @@ The REPL auto-configures on first run - no setup needed. Type `/` to discover al
/query How is authentication implemented?
```
-## Web UI Development
-
-The web UI supports a local-first development flow for the shared component library.
-
-`npm run dev:ui` uses the git submodule at `packages/byterover-packages/ui` so edits to shared UI components hot-reload immediately in Vite.
-
-```bash
-# Clone with submodules, or initialize them after clone
-git clone --recurse-submodules
-# or
-git submodule update --init --recursive
-
-# Install dependencies
-npm ci
-
-# Start or restart the daemon
-./bin/dev.js restart
-
-# Start the web UI in local development mode
-npm run dev:ui
-```
-
-Notes:
-
-- Edit shared components in `packages/byterover-packages/ui/src`.
-- `npm run dev:ui` uses the submodule source.
-- `npm run build:ui` uses the installed package path.
-- If `/api/ui/config` or transport bootstrap fails, restart the Vite dev server after restarting the daemon.
-
## ByteRover Cloud
ByteRover Cloud is a hosted platform for teams to sync, share, and manage context knowledge across projects and machines.
@@ -139,12 +111,12 @@ Everything works locally by default - Cloud adds collaboration and persistence w
-Sign in with your ByteRover account via `/login` (TUI) or
-an [API key](https://app.byterover.dev/settings/keys) (`brv login`) to get started.
+Sign in from the dashboard, or run `brv login` with an [API key](https://app.byterover.dev/settings/keys).
- 🔄 **Team context sync** — push and pull shared knowledge across teammates
- 📂 **Shared spaces** — organize context across multiple projects and teams
- 💻 **Multi-machine access** — sync your context tree across devices with cloud backup
+- 💻 **Multi-machine access** — sync your context tree across devices
- 🧠 **Built-in hosted LLM** — start immediately with limited free usage
- 👥 **Team management** — manage members, spaces, and permissions via the web app
- 📊 **Usage analytics** — track seat allocation and monthly credit consumption
@@ -153,10 +125,13 @@ an [API key](https://app.byterover.dev/settings/keys) (`brv login`) to get start
CLI Usage
+Most users only need `brv webui`. The commands below are for advanced users and automation. Run `brv --help` for the full, up-to-date reference.
+
### Core Workflow
```bash
brv # Start interactive REPL
+brv webui # Open the ByteRover dashboard (primary UI)
brv status # Show project and daemon status
brv curate # Add context to knowledge storage
brv curate view # View curate history
@@ -245,7 +220,7 @@ Run `brv --help` for the full command reference.
Supported LLM Providers
-ByteRover CLI supports 18 LLM providers out of the box. Use `brv providers connect` to set up a provider and `brv providers switch` to change the active one.
+ByteRover CLI supports 18 LLM providers out of the box. Connect and switch providers from the dashboard, or use `brv providers connect` / `brv providers switch`.
| Provider | Description |
|----------|-------------|
@@ -310,13 +285,12 @@ We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for deve
ByteRover CLI is built and maintained by the [ByteRover team](https://byterover.dev/).
- Join our [Discord](https://discord.com/invite/UMRrpNjh5W) to share projects, ask questions, or just say hi
-- [Report issues](https://github.com/campfirein/byterover-cli/issues) on GitHub
+- [Report issues](https://github.com/campfirein/byterover-cli/issues) on GitHub
- If you enjoy ByteRover CLI, please give us a star on GitHub — it helps a lot!
- Follow [@kevinnguyendn](https://x.com/kevinnguyendn) on X
## Contributors
-
[](https://github.com/campfirein/byterover-cli/graphs/contributors)
## Star History
diff --git a/package.json b/package.json
index 48f042bb4..9211d9d18 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"coding-assistant",
"knowledge-management"
],
- "version": "3.8.2",
+ "version": "3.8.3",
"author": "ByteRover",
"bin": {
"brv": "./bin/run.js"