Skip to content

What is Bub?

Bub is a lightweight agent runtime written in Python. It ships with a ready-to-use CLI app and a composable SDK, so you can run it directly or embed agent capabilities in your own programs.

An agent is at heart a loop: the model reads the context and decides which tool to call, the tool result goes back into the context, and the model reads it again. The loop ends when the model stops asking for tools and answers directly.

So an agent rests on four things: a model, tools, a context, and the loop that drives them. Working from that shared understanding, Bub keeps a small core and builds a ready-to-run application around it:

The core layer

Composable agent capabilities, including the loop, tools, context, the event bus, and the model client.

The app layer

A harness on top of the core that provides configuration, plugins, hooks, skills, message channels, and a gateway.

Which one should you use?

  • If you want to combine Bub with your existing codebase or service, use the core layer SDK directly;
  • If you want Bub to work out of the box, use the app layer App.

Bub is built around simplicity, composability, and extensibility. You can combine its capabilities as needed or build your own agent on top of it. Its key features include:

Append-only context

Conversation history is appended to the tape without modifying existing entries.

Event-driven

Every model and tool call emits events when it starts, finishes, and returns a result, so you can observe, modify, or intervene in the run.

Tools are functions

Write tools as ordinary Python functions and take advantage of the existing Python ecosystem.

Pluggable

Capabilities can be extended through plugins. A plugin can provide a tool, an event listener, a message channel, or a complete set of skills.

Now you can explore the Bub docs freely, or follow the next page and start your own journey with Bub.