Run

One driver for chat. The right tool for the rest.

Chat and streaming are the same call whether the driver is Claude, GPT, or Ollama running locally, so swapping providers is a config change. Vision runs on Claude and GPT, image generation runs through DALL-E, and Bedrock sits alongside as its own driver for teams standardised on AWS-hosted models. RAG, vector search, and an MCP client are the same package, not a separate integration to bolt on.

What you get.

All of it in the same install, with nothing to wire together first.

Chat and streaming

anthropic.chat(), openai.chat(), ollama.chat(), and their streaming counterparts share a message shape, so a prompt written for one driver runs on the others, including a local model for development or for data that should not leave the box.

Vision

Analyze an uploaded image through the Claude or GPT drivers, using the same message shape as chat.

Image generation

Generate an image from a prompt through the OpenAI driver, using DALL-E.

Bedrock

A separate driver for Amazon Titan and other AWS-hosted models, with fine-tuning and model management for teams standardised on Bedrock.

RAG and embeddings

Embed content with OpenAI or Ollama, then query an in-memory vector index for retrieval, without a separate vector database to run.

MCP client

Call tools on a Model Context Protocol server from an action or a job, the same way the buddy assistant does.

Personalization

Sentiment, classification, and recommendation helpers over content and event data already in the app.

From the command line.

Buddy scaffolds, runs, and ships this the same way it does the rest of the app.

buddy env:set ANTHROPIC_API_KEY sk-ant-... buddy make:action SummarizeArticle

These share the same models, config, and types, so using them together costs nothing extra.