@shuyhere/bb-agent 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,31 @@
1
+ # Changelog
2
+
3
+ All notable changes to BB-Agent will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.0.5] - 2026-04-06
9
+
10
+ ### Added
11
+
12
+ - **Fullscreen TUI** with streaming output, markdown rendering, and syntax highlighting
13
+ - **Multi-provider support**: Anthropic (Claude), OpenAI, Google (Gemini), Groq, xAI, OpenRouter, and custom OpenAI-compatible endpoints
14
+ - **Built-in tools**: `read`, `write`, `edit`, `bash`, `find`, `grep`, `ls`, `web_search`, `web_fetch`, `browser_fetch`
15
+ - **Session persistence** with SQLite-backed storage, branching, forking, and tree navigation
16
+ - **Extensions** via JS/TS plugin system for custom tools, commands, and event hooks
17
+ - **Skills** — markdown-based instruction files that auto-load contextual knowledge
18
+ - **System prompt templates** — save named prompts in `~/.bb-agent/system-prompts/` and use with `bb -t <name>`
19
+ - **OAuth login** for Anthropic and OpenAI (browser-based PKCE flow)
20
+ - **`@` file mention** autocomplete in the input area
21
+ - **`/` slash commands** for session management, model switching, and more
22
+ - **Layered configuration** — global `~/.bb-agent/settings.json` merged with project `.bb-agent/settings.json`
23
+ - **`AGENTS.md`** support (like Claude's `CLAUDE.md`) for persistent system prompt additions
24
+ - **Custom models and providers** via settings.json
25
+ - **Auto-retry** with exponential backoff and server-hinted delays
26
+ - **Session compaction** to keep context within model limits
27
+ - **Package management** — install skills/extensions from npm, git, or local paths
28
+ - **Print mode** (`bb -p`) for non-interactive scripted usage
29
+ - **Session resume** (`bb -c` to continue, `bb -r` to pick)
30
+
31
+ [0.0.5]: https://github.com/shuyhere/bb-agent/releases/tag/v0.0.5
package/README.md CHANGED
@@ -23,18 +23,35 @@ cargo install --path crates/cli
23
23
 
24
24
  This compiles the `bb` binary and installs it to `~/.cargo/bin/bb` (which Rust adds to your PATH).
25
25
 
26
- ### npm (Linux x86_64 — prebuilt binary)
26
+ ### npm (Linux/macOS x86_64 + arm64 downloads matching prebuilt binary when available)
27
27
 
28
28
  ```bash
29
29
  npm install -g @shuyhere/bb-agent
30
30
  ```
31
31
 
32
- > **macOS / other platforms:** npm install will print instructions to build from source.
33
- > Prebuilt binaries for macOS coming soon. After install, run `bb` to start.
32
+ > If no matching prebuilt binary is available for your platform, npm install will print source-build instructions instead. After install, run `bb` to start.
34
33
 
35
34
  ## Getting Started
36
35
 
37
- ### 1. Login to a provider
36
+ ### 1. Start the TUI
37
+
38
+ ```bash
39
+ bb
40
+ ```
41
+
42
+ That's the recommended way to get started.
43
+
44
+ ### 2. Log in with `/login`
45
+
46
+ Inside the TUI, run:
47
+
48
+ ```text
49
+ /login
50
+ ```
51
+
52
+ This opens the provider picker and auth flow directly in the fullscreen UI.
53
+
54
+ If you prefer, you can also log in from a normal terminal:
38
55
 
39
56
  ```bash
40
57
  bb login # Interactive provider selection
@@ -45,12 +62,6 @@ bb login google # Login to Google (API key)
45
62
 
46
63
  Or set environment variables: `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GOOGLE_API_KEY`, etc.
47
64
 
48
- ### 2. Start the TUI
49
-
50
- ```bash
51
- bb
52
- ```
53
-
54
65
  That's it! Run `bb` to launch the fullscreen interactive terminal UI. Type your prompt and press Enter.
55
66
 
56
67
  ### More ways to use `bb`
@@ -75,7 +86,7 @@ bb --list-models # List all available models
75
86
  - **Extensions** — JS/TS plugin system for custom tools, commands, and hooks
76
87
  - **Skills** — markdown-based instruction files that auto-load contextual knowledge
77
88
  - **System prompt templates** — save and switch between named prompt configurations
78
- - **OAuth login** — browser-based login for Anthropic and OpenAI
89
+ - **OAuth login** — browser/device login for Anthropic, OpenAI, and GitHub Copilot
79
90
 
80
91
  ## System Prompt Templates
81
92
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shuyhere/bb-agent",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "BB-Agent — a Rust-native AI coding agent for the terminal",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,6 +28,7 @@
28
28
  "bin/",
29
29
  "scripts/",
30
30
  "README.md",
31
+ "CHANGELOG.md",
31
32
  "LICENSE"
32
33
  ],
33
34
  "scripts": {
@@ -8,7 +8,8 @@ const path = require("path");
8
8
  const os = require("os");
9
9
  const https = require("https");
10
10
 
11
- const VERSION = "0.0.3";
11
+ const packageJson = require("../package.json");
12
+ const BINARY_RELEASE_TAG = `v${packageJson.version}`;
12
13
  const REPO = "shuyhere/bb-agent";
13
14
  const NATIVE_DIR = path.join(__dirname, "..", "native");
14
15
  const DOWNLOAD_TIMEOUT_MS = 15_000;
@@ -56,13 +57,13 @@ function downloadBinary(url, dest, timeoutMs) {
56
57
 
57
58
  async function tryDownloadPrebuilt(target) {
58
59
  const assetName = `bb-${target}`;
59
- const url = `https://github.com/${REPO}/releases/download/v${VERSION}/${assetName}`;
60
+ const url = `https://github.com/${REPO}/releases/download/${BINARY_RELEASE_TAG}/${assetName}`;
60
61
 
61
62
  fs.mkdirSync(NATIVE_DIR, { recursive: true });
62
63
  const dest = path.join(NATIVE_DIR, "bb");
63
64
 
64
65
  try {
65
- console.log(`Downloading BB-Agent v${VERSION} for ${target}...`);
66
+ console.log(`Downloading BB-Agent ${BINARY_RELEASE_TAG} for ${target}...`);
66
67
  await downloadBinary(url, dest, DOWNLOAD_TIMEOUT_MS);
67
68
  fs.chmodSync(dest, 0o755);
68
69