惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
云风的 BLOG
云风的 BLOG
小众软件
小众软件
雷峰网
雷峰网
博客园 - 【当耐特】
V
V2EX
WordPress大学
WordPress大学
IT之家
IT之家
Last Week in AI
Last Week in AI
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
The Cloudflare Blog
Jina AI
Jina AI
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

Show HN

GitHub - astefanutti/shaderbang: Shebang for Shaders Show HN: Generate Claude Code Workflows using Spec Driven Development approach Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal).
GitHub - ymichael/bb: bb is an agentic IDE that can contr...
sawyerjhood · 2026-06-18 · via Show HN

bb

npm version

bb is an agentic IDE that can control itself. You can seamlessly orchestrate all of your favorite coding agents together and have them programmatically use bb too.

Every surface — the web app, CLI, and HTTP API — is a first-class way to drive bb. Work runs in threads you can follow live, steer at any point, or hand off to another agent.

Note

bb is in active development. Core architecture is stable, but workflows and surfaces are still evolving.

bb desktop app showing a thread sidebar, manager conversation, and live STATUS dashboard

Use bb

Download the desktop app

The recommended way to start using bb is the desktop app:

Download the latest desktop app

The desktop build is currently macOS Apple Silicon (arm64) only. Intel Mac, Linux, and Windows users should run bb with npx instead.

Or run it anywhere with npx

Then open http://localhost:38886.

bb uses the provider CLI you already have authenticated.

For install requirements, provider setup, configuration, and package-focused docs, start with packages/bb-app.

Telemetry

Production runs (the desktop app and npx bb-app) send anonymous usage telemetry (app starts and thread creation counts) to help us understand adoption. Identification is a random per-install id stored in your data dir — no user, host, project, or workspace data is ever attached. Development/source runs never send. Opt out any run with BB_TELEMETRY=false. See apps/server/src/services/system/telemetry.ts.

Repository Overview

This monorepo contains the packaged app plus the runtime services it bundles:

Package or app Role
packages/bb-app Published npm package and npx bb-app@latest launcher.
apps/app Web UI for inspecting projects, threads, environments, and running work.
apps/server HTTP API, WebSocket notifications, state management, and server-owned product policy.
apps/host-daemon Host-local runtime that provisions workspaces and runs provider processes.
apps/cli Scriptable bb CLI for users and agents.
apps/landing Static marketing landing page (TanStack Start, prerendered).
packages/server-contract HTTP and WebSocket contract between clients and the server.
packages/host-daemon-contract Command/event contract between the server and host daemons.

Development

Use the development loop when working on bb itself:

That starts the Vite app and proxies API and WebSocket traffic to a separate dev server. The launcher prints the actual ports at startup. Each checkout gets a data directory under ~/.bb-dev/<checkout-instance>/ and deterministic high ports derived from the checkout path. The checkout instance id is the sanitized path to the checkout, relative to your home directory, plus a short hash suffix. Separate worktrees can run alongside each other and the packaged npx bb-app@latest instance.

To use the dev app from another machine, for example over Tailscale, run:

Then open http://<remote-host-or-tailscale-ip>:<app-port>. Source dev binds the browser app to all interfaces and uses the browser host for WebSockets by default.

To use the component storybook from another machine, run:

Ladle also binds to all interfaces and configures its HMR WebSocket to use the browser's current host instead of localhost.

Development behavior is intentionally split:

  • the app hot reloads itself
  • the server does not hot reload
  • the host daemon does not hot reload

When you want the server and host daemon to pick up the latest build output, use:

pnpm dev:restart
pnpm dev:restart-server
pnpm dev:restart-host-daemon

These rebuild first, then restart only the targeted stateful services.

To test the release-style package launcher from a source checkout:

That builds the local bb-app package artifacts and runs packages/bb-app/dist/bb-app.js, matching the published npx bb-app@latest path without downloading from npm.

pnpm bb --help            # built CLI, targets the default/prod instance
pnpm reset                # clear production state

pnpm bb:dev --help        # source CLI, targets this checkout's dev instance
pnpm reset:dev            # clear this checkout's dev state

pnpm reset:all            # clear both production and dev states

These reset commands prompt for confirmation before deleting anything.

System Overview

The runtime pieces

Component Role
Server Central hub. Stores all state in a SQLite database, exposes an HTTP API, and pushes change notifications over WebSocket. Stateless itself — the DB is the source of truth. Routes work to hosts by queuing commands.
Host daemon Runs on the local machine. Connects to the server, picks up commands, provisions workspaces, runs agent provider processes, and streams events back. Exposes a local HTTP API for the app and CLI to do machine-local things (open editor, pick folders, check daemon status).
App Web UI for inspecting projects and threads, following progress, and steering work.
CLI (bb) First-class interface for both users and agents. Same capabilities as the app, scriptable.

Data model

The core entities and how they relate:

Project — the top-level container, usually mapped to a repository. A project has one or more sources that say where its code lives. Sources retain a host ID boundary, but supported project sources currently point at the primary local host.

Thread — the unit of work. Each thread tracks a conversation with an agent provider, has lifecycle state, and produces an append-only stream of events (messages, tool calls, file changes, etc.). Threads can be standard (does work directly) or manager (coordinates other threads). Threads can own child threads for delegation.

Environment — the execution context for a thread. It binds a workspace (a directory on disk) to a host. An environment can be unmanaged (point at an existing directory), or managed. Environments managed by bb will be cleaned up when there are no longer any unarchived threads using it. Multiple threads can share an environment.

Host — a long-lived daemon identity for the machine that runs work. bb currently supports one primary local host; the host boundary remains in the data model for future expansion.

Commands and events — the server talks to daemons by queuing commands (provision an environment, start a thread, stop a thread). Daemons report back by posting events. This is an asynchronous command/event protocol — the server queues work, the daemon picks it up, results flow back as events.

Contracts and boundaries

Two contract packages define the boundaries between components:

@bb/server-contract — the HTTP + WebSocket API between clients (app, CLI) and the server. Route schemas, request/response types, WebSocket notification types.

@bb/host-daemon-contract — the protocol between the server and host daemons. Command types, event types, session lifecycle, the local API for app/CLI.

Implementation packages never import across these boundaries. The server doesn't know how workspaces are provisioned. The daemon doesn't know about threads or projects beyond what commands tell it.

Further Reading

Contributing

The most useful contributions are feature requests and bug reports. If you run into something broken, confusing, or missing, open an issue with the workflow you were trying to accomplish and what happened instead.