Metadata-Version: 2.5
Name: bub
Version: 0.6.0a3
Summary: A tiny agent runtime, composable with plugins.
Project-URL: Homepage, https://bub.build
Project-URL: Repository, https://github.com/bubbuild/bub
Project-URL: Documentation, https://bub.build
Author-email: Chojan Shang <psiace@apache.org>, Frost Ming <me@frostming.com>, Yihong <zouzou0208@gmail.com>
License: Apache-2.0
License-File: LICENSE
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <4.0,>=3.12
Requires-Dist: loguru>=0.7.3
Requires-Dist: pydantic>=2.12.5
Requires-Dist: republic>=0.6.0a1
Requires-Dist: typing-extensions>=4.15.0
Provides-Extra: app
Requires-Dist: aiohttp>=3.14.3; extra == 'app'
Requires-Dist: httpx[socks]>=0.28.1; extra == 'app'
Requires-Dist: inquirer-textual>=0.8.0; extra == 'app'
Requires-Dist: pluggy>=1.6.0; extra == 'app'
Requires-Dist: prompt-toolkit>=3.0.52; extra == 'app'
Requires-Dist: pydantic-settings>=2.14.2; extra == 'app'
Requires-Dist: python-telegram-bot>=22.7; extra == 'app'
Requires-Dist: pyyaml>=6.0.3; extra == 'app'
Requires-Dist: rapidfuzz>=3.14.5; extra == 'app'
Requires-Dist: rich>=14.3.4; extra == 'app'
Requires-Dist: typer>=0.24.1; extra == 'app'
Provides-Extra: logfire
Requires-Dist: aiohttp>=3.14.3; extra == 'logfire'
Requires-Dist: httpx[socks]>=0.28.1; extra == 'logfire'
Requires-Dist: inquirer-textual>=0.8.0; extra == 'logfire'
Requires-Dist: logfire>=4.32.0; extra == 'logfire'
Requires-Dist: opentelemetry-api>=1.39.0; extra == 'logfire'
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.39.0; extra == 'logfire'
Requires-Dist: opentelemetry-sdk>=1.39.0; extra == 'logfire'
Requires-Dist: pluggy>=1.6.0; extra == 'logfire'
Requires-Dist: prompt-toolkit>=3.0.52; extra == 'logfire'
Requires-Dist: pydantic-settings>=2.14.2; extra == 'logfire'
Requires-Dist: python-telegram-bot>=22.7; extra == 'logfire'
Requires-Dist: pyyaml>=6.0.3; extra == 'logfire'
Requires-Dist: rapidfuzz>=3.14.5; extra == 'logfire'
Requires-Dist: rich>=14.3.4; extra == 'logfire'
Requires-Dist: typer>=0.24.1; extra == 'logfire'
Provides-Extra: trace
Requires-Dist: opentelemetry-api>=1.39.0; extra == 'trace'
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.39.0; extra == 'trace'
Requires-Dist: opentelemetry-sdk>=1.39.0; extra == 'trace'
Description-Content-Type: text/markdown

# Bub

<div align="center">

<picture>
  <source srcset="https://raw.githubusercontent.com/bubbuild/bub/refs/heads/main/website/src/assets/bub-logo-dark.png" media="(prefers-color-scheme: dark)">
  <img alt="Bub logo" src="https://raw.githubusercontent.com/bubbuild/bub/refs/heads/main/website/src/assets/bub-logo.png" width="200">
</picture>

<p><strong>Build your Bub.</strong></p>

[Website](https://bub.build) · [Docs](https://bub.build/docs/getting-started/) · [Hub](https://hub.bub.build)

</div>

Put an agent in your own Python program, or customize the Bub application. The application uses the same agent kernel and adds configuration, plugins, and channel integration.

## Build your own agent

Use `bub.core.Agent` to choose your model, tools, instructions, and conversation storage. The base `bub` package installs the kernel's dependencies.

In a Python 3.12+ project:

```bash
uv add bub
```

Run your first agent with the [SDK guide](https://bub.build/docs/build/sdk/), then [serve it with FastAPI](https://bub.build/docs/tutorials/fastapi/) when you need an HTTP endpoint.

You can also embed `BubAgent` to reuse the application's settings and plugin hooks in your service. This uses `bub[app]`; [Reuse application plugins](https://bub.build/docs/build/reuse-plugins/) explains the integration choices and their requirements.

## Customize the Bub app

Start a conversation, then add tools, skills, plugins, or channels for the work you want Bub to do.

Install on macOS or Linux:

```bash
curl -fsSL https://bub.build/install.sh | bash
```

On Windows:

```powershell
powershell -ExecutionPolicy ByPass -c "irm https://bub.build/install.ps1 | iex"
```

Follow the prompts to choose plugins and configure your model, then start a conversation:

```bash
bub chat
```

[Run your first conversation](https://bub.build/docs/getting-started/first-turn/) walks through a task in your workspace. [Customize the Bub app](https://bub.build/docs/build/) covers tools, plugins, and packaging. For `uv tool install` and other setup options, see [Install Bub](https://bub.build/docs/getting-started/install/#app-install).

## Documentation

- [Choose a starting point](https://bub.build/docs/getting-started/)
- [Shared concepts and capabilities](https://bub.build/docs/concepts/)
- [API and application reference](https://bub.build/docs/reference/)

## Background

- [Why We Rewrote Bub](https://bub.build/posts/why-rewrite-bub/)
- [Socialized Evaluation and Agent Partnership](https://bub.build/posts/socialized-evaluation/)
- [Context from Tape](https://tape.systems)

## License

[Apache-2.0](https://github.com/bubbuild/bub/blob/main/LICENSE)
