finds.dev← search

// the find

andrewyng/aisuite

★ 14,971 · Python · MIT · updated Jul 2026

Simple, unified interface to multiple Generative AI providers

aisuite is a thin Python abstraction that normalizes the chat completions API across 20+ LLM providers behind an OpenAI-shaped interface. It has grown to include an agents layer with tool calling, MCP support, and a full desktop app (OpenWorker). Primarily useful if you're writing code that needs to swap between providers without touching call sites.

The provider:model string convention (`anthropic:claude-sonnet-4-6`) is clean and keeps routing logic out of your application code. The auto-generated tool schemas from plain Python functions with docstrings is genuinely useful — you don't have to write JSON schemas by hand. MCP support via a simple dict config is a nice addition that most equivalent libraries don't have. The provider adapter pattern is simple enough that adding a new provider is a one-file job.

The abstraction leaks badly at the edges: streaming tool calls can't be combined with `max_turns`, and provider-specific features (structured output, prompt caching, extended thinking) have no path through the unified API — you'd drop down to the raw SDK anyway. The repo has grown in three directions at once (chat API, agents framework, desktop app) without a clear story for what the core library actually is; the README spends as much time on OpenWorker as on the Python package. The state store and artifact system in the agents layer are thin enough that you'll outgrow them quickly in any production workload — Postgres state store is one file with no connection pooling. Testing is almost entirely against mocks, so cross-provider behavioral differences aren't caught until you hit them in production.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →