ruby_llm
RubyLLM describes itself as the Ruby AI framework: models, tools, agents, sandboxed code, evaluations and Rails conventions designed together behind one consistent API. The README advertises 19 providers behind one API, with hosted and local providers interchangeable and OpenAI-compatible endpoints supported, and a model registry that lists capabilities, limits and pricing across providers. The site says it is battle tested in a production app, and the README invites users to share their stories.
The feature list is long. Alongside chat, streaming, vision, audio, documents, OCR, image and video generation, embeddings, reranking and moderation, it lists agents (RubyLLM::Agent) and a step-by-step agentic loop, tools that call your Ruby methods with a requires_approval option that parks a run until a human approves, MCP via RubyLLM::MCP with OAuth and tool filtering, structured output with Ruby schemas, prompt caching, fallbacks to backup models, cancellation, a per-attempt cost ledger, fiber-based async, and workflows. Rails support covers Active Record persistence, Active Storage attachments, Hotwire streaming and generators. Code execution in a Ruby, Python, JavaScript or shell sandbox, skills in the Agent Skills format, and evaluations are marked as available on main rather than in the released gem.
Install with `bundle add ruby_llm`; the install command we have lists version 2.1.1. It is MIT licensed and the last push was 2026-10-15. This review is based on the README and repository data; we have not run it ourselves.
Features
Why choose it
Trade-offs
Maintenance check
- Last commit
- 2026-10-20
- Commits, last 90 days
- 100+
- Releases, last 90 days
- 7
- Latest release
- v2.1.1 (2026-10-11)
- Open issues
- 8
- Recent issues with at least one comment
- 1/4
Oldest week on the left; the latest four weeks are orange. Source: GitHub commit activity.
Status rule: archived on GitHub = Archived; last commit within 90 days = Active; 91 to 365 days = Slowing; older = Stale. All figures come from the GitHub API on the date shown.
Most discussed open issues
- #1246 [FEATURE] Continue Gemini long-decode responses as one generation0 comments · 2026-10-19
- #1245 [FEATURE] Preserve native client-toolset identity and results0 comments · 2026-10-19
- #1244 [BUG] `as_json` on an acts_as_chat record renders an array instead of the chat0 comments · 2026-10-19
Issue titles are quoted from GitHub. Open the link to check whether a problem still applies to the version you use.
Compatibility
Quick start
Use cases
Alternatives
Comments
No comments yet. Be the first!