{"adoption": {"forks": 1715, "observed_at": "2026-08-28T04:11:14.877391+00:00", "stars": 16174}, "canonical_url": "https://ross.abutalabs.com/products/aisuite", "card": {"archived": false, "artifact_type": "library", "description": "Simple, unified interface to multiple Generative AI providers ", "domain": ["large-language-models", "artificial-intelligence", "developer-tools"], "enriched": true, "function": ["llm-inference", "agent-framework", "mcp", "sdk", "chatbot"], "health_score": 98, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["andrewyng/aisuite"], "name": "andrewyng/aisuite", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-13T18:46:20+00:00", "repo": "andrewyng/aisuite", "stars": 16174, "tags": ["unified-api", "chat-completions", "multi-provider", "tool-use", "openai-compatible", "ai-agents"], "topics": [], "urls": [], "use_cases": ["call multiple llm providers with one unified api", "swap between openai and anthropic without rewriting code", "build ai agents with python function tools", "connect mcp servers to llm agents", "run local models with ollama through a standard interface", "prototype chat completions across providers", "add tool calling and multi-turn agent loops to an app"], "what_it_is": "aisuite is a lightweight Python library providing a unified, OpenAI-style Chat Completions API across many LLM providers (OpenAI, Anthropic, Google, Ollama, and more), plus an Agents API with tools, toolkits, and MCP support. It lets developers swap LLM providers by changing a single string.", "when_to_avoid": ["you need provider-specific features not covered by the unified API", "you need a full agent harness desktop application (use OpenWorker instead)", "you need advanced orchestration like graphs or complex workflows", "you work outside Python"], "when_to_choose": ["you want a single OpenAI-style interface across many LLM providers", "you need lightweight provider abstraction without heavy framework overhead", "you want to build agents with tools, toolkits, or MCP support", "you want to switch providers by changing one string"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/aisuite", "repo": "andrewyng/aisuite", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:14.877391+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:05:12.393478+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a81ad725735e8a383cfbaf89b2689b0ae760bab8b31dd93fc6778bdb2af43538", "fetched_at": "2026-08-28T04:11:14.877391+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andrewyng/aisuite"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 56, "rhythm": 81}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 794, "days_push": 20, "days_rel": 44, "gap_med": 35.0, "n_releases_24m": 5}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}