{"slug": "rubyllm", "name": "RubyLLM", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "Ruby library providing a unified API for working with multiple LLM providers.", "recommenders": 6, "commenters": 7, "warners": 0, "score": 5.708, "rising": -1.96, "first": "2025-12-26", "latest": "2026-06-25", "why": "HN commenters like RubyLLM for its elegant, easy-to-use API design and use it in production apps as well as side projects.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 6, "neutral": 1, "compare": 0, "warn": 0}, "spark": [0, 1, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0], "listed": true, "loved": ["API design", "Production use"], "caveat": "Responses API", "short_quote": "We use RubyLLM in production too, the most elegant library in this space I've seen so far.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://rubyllm.com", "pricing": "open source", "aliases": ["RubyLLM"], "verdict": [{"text": "HN commenters like RubyLLM for its elegant, easy-to-use API design", "cites": [{"id": 778720720, "item_id": 48670045, "url": "https://news.ycombinator.com/item?id=48670045", "by": "strzibny", "date": "2026-06-25", "stance": "recommend", "quote": "I am using RubyLLM for quite some time and I am in love with the API design.", "excerpt": "Congrats Carmine on being featured! I am using RubyLLM for quite some time and I am in love with the API design. If someone wants to see how this looks in a real project including custom tools, you can have a look at the SerpTrail project on GitHub. The Chat model still is just: class Chat < ApplicationRecord acts_as_chat model: :llm_model end More: https://github.com/serpapi/serptrail I am quite excited for RubyLLM ", "context": "", "use_case": "LLM integration in Ruby apps", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778610384, "item_id": 48663149, "url": "https://news.ycombinator.com/item?id=48663149", "by": "rohitpaulk", "date": "2026-06-24", "stance": "recommend", "quote": "We use RubyLLM in production too, the most elegant library in this space I've seen so far.", "excerpt": "We use RubyLLM in production too, the most elegant library in this space I've seen so far. I also liked how they run the issue tracker. If you select \"Feature Request\", it makes you explain how you explored workarounds, why you believe it belongs in RubyLLM etc to prevent scope creep.", "context": "", "use_case": "LLM integration in production", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 742272976, "item_id": 46392061, "url": "https://news.ycombinator.com/item?id=46392061", "by": "mark_l_watson", "date": "2025-12-26", "stance": "recommend", "quote": "the same nicely designed RubyLLM gem used in the article", "excerpt": "I really enjoyed reading the code listings in the article. Many years ago I was a Ruby fanatic, even wrote a book on Ruby, but for work requirements I was pulled to Java and Python (and occasionally Clojure and Common Lisp). I liked how well designed the monolith application seems to be from the brief description in the article. Coincidentally I installed Ruby, first time in years, last week and spent a half hour exp", "context": "former Ruby author", "use_case": "LLM integration in Ruby", "switched_from": "", "story": "Building an AI agent inside a 7-year-old Rails monolith"}, {"id": 778618960, "item_id": 48663685, "url": "https://news.ycombinator.com/item?id=48663685", "by": "MitziMoto", "date": "2026-06-24", "stance": "recommend", "quote": "We use and love RubyLLM! A wonderful and easy to use framework.", "excerpt": "We use and love RubyLLM! A wonderful and easy to use framework. Agreed with another commenter on the frustration with the responses API not being naively supported; that seems like a huge miss. There is a connector from another dev, but it's buggy and not as high quality as the main gem. Really looking forward to future development and especially 2.0! Edit: Just saw that responses API is now native? I will definitely", "context": "", "use_case": "LLM integration", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}]}, {"text": " and use it in production apps as well as side projects.", "cites": [{"id": 778610384, "item_id": 48663149, "url": "https://news.ycombinator.com/item?id=48663149", "by": "rohitpaulk", "date": "2026-06-24", "stance": "recommend", "quote": "We use RubyLLM in production too, the most elegant library in this space I've seen so far.", "excerpt": "We use RubyLLM in production too, the most elegant library in this space I've seen so far. I also liked how they run the issue tracker. If you select \"Feature Request\", it makes you explain how you explored workarounds, why you believe it belongs in RubyLLM etc to prevent scope creep.", "context": "", "use_case": "LLM integration in production", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778605056, "item_id": 48662816, "url": "https://news.ycombinator.com/item?id=48662816", "by": "digitaltrees", "date": "2026-06-24", "stance": "recommend", "quote": "We use this in production for a few apps. Great project.", "excerpt": "We use this in production for a few apps. Great project.", "context": "", "use_case": "LLM integration in production apps", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778630160, "item_id": 48664385, "url": "https://news.ycombinator.com/item?id=48664385", "by": "mogox", "date": "2026-06-24", "stance": "recommend", "quote": "RubyLLM is awesome! I use it on side projects.", "excerpt": "RubyLLM is awesome! I use it on side projects. So interesting how questions and comments from last year SF Ruby conf, https://youtu.be/y535u1EWqAg?si=rbyv52T035apKwQk are already features shipped in the ecosystem.", "context": "", "use_case": "side projects with LLMs", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}]}, {"text": " The only complaint, from one commenter, was the lack of native OpenAI Responses API support", "cites": [{"id": 778618960, "item_id": 48663685, "url": "https://news.ycombinator.com/item?id=48663685", "by": "MitziMoto", "date": "2026-06-24", "stance": "recommend", "quote": "We use and love RubyLLM! A wonderful and easy to use framework.", "excerpt": "We use and love RubyLLM! A wonderful and easy to use framework. Agreed with another commenter on the frustration with the responses API not being naively supported; that seems like a huge miss. There is a connector from another dev, but it's buggy and not as high quality as the main gem. Really looking forward to future development and especially 2.0! Edit: Just saw that responses API is now native? I will definitely", "context": "", "use_case": "LLM integration", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}]}, {"text": ", which that commenter later noted may now be native.", "cites": [{"id": 778618960, "item_id": 48663685, "url": "https://news.ycombinator.com/item?id=48663685", "by": "MitziMoto", "date": "2026-06-24", "stance": "recommend", "quote": "We use and love RubyLLM! A wonderful and easy to use framework.", "excerpt": "We use and love RubyLLM! A wonderful and easy to use framework. Agreed with another commenter on the frustration with the responses API not being naively supported; that seems like a huge miss. There is a connector from another dev, but it's buggy and not as high quality as the main gem. Really looking forward to future development and especially 2.0! Edit: Just saw that responses API is now native? I will definitely", "context": "", "use_case": "LLM integration", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}]}], "praise": [{"label": "API design", "summary": "Commenters call the API elegant and nicely designed.", "quotes": [{"id": 778720720, "item_id": 48670045, "url": "https://news.ycombinator.com/item?id=48670045", "by": "strzibny", "date": "2026-06-25", "stance": "recommend", "quote": "I am using RubyLLM for quite some time and I am in love with the API design.", "excerpt": "Congrats Carmine on being featured! I am using RubyLLM for quite some time and I am in love with the API design. If someone wants to see how this looks in a real project including custom tools, you can have a look at the SerpTrail project on GitHub. The Chat model still is just: class Chat < ApplicationRecord acts_as_chat model: :llm_model end More: https://github.com/serpapi/serptrail I am quite excited for RubyLLM ", "context": "", "use_case": "LLM integration in Ruby apps", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778610384, "item_id": 48663149, "url": "https://news.ycombinator.com/item?id=48663149", "by": "rohitpaulk", "date": "2026-06-24", "stance": "recommend", "quote": "We use RubyLLM in production too, the most elegant library in this space I've seen so far.", "excerpt": "We use RubyLLM in production too, the most elegant library in this space I've seen so far. I also liked how they run the issue tracker. If you select \"Feature Request\", it makes you explain how you explored workarounds, why you believe it belongs in RubyLLM etc to prevent scope creep.", "context": "", "use_case": "LLM integration in production", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 742272976, "item_id": 46392061, "url": "https://news.ycombinator.com/item?id=46392061", "by": "mark_l_watson", "date": "2025-12-26", "stance": "recommend", "quote": "the same nicely designed RubyLLM gem used in the article", "excerpt": "I really enjoyed reading the code listings in the article. Many years ago I was a Ruby fanatic, even wrote a book on Ruby, but for work requirements I was pulled to Java and Python (and occasionally Clojure and Common Lisp). I liked how well designed the monolith application seems to be from the brief description in the article. Coincidentally I installed Ruby, first time in years, last week and spent a half hour exp", "context": "former Ruby author", "use_case": "LLM integration in Ruby", "switched_from": "", "story": "Building an AI agent inside a 7-year-old Rails monolith"}]}, {"label": "Production use", "summary": "Several teams report running it in production apps.", "quotes": [{"id": 778610384, "item_id": 48663149, "url": "https://news.ycombinator.com/item?id=48663149", "by": "rohitpaulk", "date": "2026-06-24", "stance": "recommend", "quote": "We use RubyLLM in production too, the most elegant library in this space I've seen so far.", "excerpt": "We use RubyLLM in production too, the most elegant library in this space I've seen so far. I also liked how they run the issue tracker. If you select \"Feature Request\", it makes you explain how you explored workarounds, why you believe it belongs in RubyLLM etc to prevent scope creep.", "context": "", "use_case": "LLM integration in production", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778605056, "item_id": 48662816, "url": "https://news.ycombinator.com/item?id=48662816", "by": "digitaltrees", "date": "2026-06-24", "stance": "recommend", "quote": "We use this in production for a few apps. Great project.", "excerpt": "We use this in production for a few apps. Great project.", "context": "", "use_case": "LLM integration in production apps", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778618960, "item_id": 48663685, "url": "https://news.ycombinator.com/item?id=48663685", "by": "MitziMoto", "date": "2026-06-24", "stance": "recommend", "quote": "We use and love RubyLLM! A wonderful and easy to use framework.", "excerpt": "We use and love RubyLLM! A wonderful and easy to use framework. Agreed with another commenter on the frustration with the responses API not being naively supported; that seems like a huge miss. There is a connector from another dev, but it's buggy and not as high quality as the main gem. Really looking forward to future development and especially 2.0! Edit: Just saw that responses API is now native? I will definitely", "context": "", "use_case": "LLM integration", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}]}, {"label": "Ease of use", "summary": "Described as a wonderful and easy-to-use framework.", "quotes": [{"id": 778618960, "item_id": 48663685, "url": "https://news.ycombinator.com/item?id=48663685", "by": "MitziMoto", "date": "2026-06-24", "stance": "recommend", "quote": "We use and love RubyLLM! A wonderful and easy to use framework.", "excerpt": "We use and love RubyLLM! A wonderful and easy to use framework. Agreed with another commenter on the frustration with the responses API not being naively supported; that seems like a huge miss. There is a connector from another dev, but it's buggy and not as high quality as the main gem. Really looking forward to future development and especially 2.0! Edit: Just saw that responses API is now native? I will definitely", "context": "", "use_case": "LLM integration", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778630160, "item_id": 48664385, "url": "https://news.ycombinator.com/item?id=48664385", "by": "mogox", "date": "2026-06-24", "stance": "recommend", "quote": "RubyLLM is awesome! I use it on side projects.", "excerpt": "RubyLLM is awesome! I use it on side projects. So interesting how questions and comments from last year SF Ruby conf, https://youtu.be/y535u1EWqAg?si=rbyv52T035apKwQk are already features shipped in the ecosystem.", "context": "", "use_case": "side projects with LLMs", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}]}, {"label": "Scope discipline", "summary": "The feature request template asks for workarounds and justification to prevent scope creep.", "quotes": [{"id": 778610384, "item_id": 48663149, "url": "https://news.ycombinator.com/item?id=48663149", "by": "rohitpaulk", "date": "2026-06-24", "stance": "recommend", "quote": "We use RubyLLM in production too, the most elegant library in this space I've seen so far.", "excerpt": "We use RubyLLM in production too, the most elegant library in this space I've seen so far. I also liked how they run the issue tracker. If you select \"Feature Request\", it makes you explain how you explored workarounds, why you believe it belongs in RubyLLM etc to prevent scope creep.", "context": "", "use_case": "LLM integration in production", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}]}, {"label": "Extensible foundation", "summary": "Other gems, such as Raix, build on its abstractions.", "quotes": [{"id": 778594753, "item_id": 48662172, "url": "https://news.ycombinator.com/item?id=48662172", "by": "obiefernandez", "date": "2026-06-24", "stance": "neutral", "quote": "builds on top of RubyLLM's abstractions", "excerpt": "I have an open source gem called Raix that builds on top of RubyLLM's abstractions and is quite popular. https://github.com/OlympiaAI/raix", "context": "", "use_case": "LLM abstraction layer", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}]}], "caveats": [{"label": "Responses API", "summary": "One user missed native Responses API support and found the third-party connector buggy, though it may now be native.", "quotes": [{"id": 778618960, "item_id": 48663685, "url": "https://news.ycombinator.com/item?id=48663685", "by": "MitziMoto", "date": "2026-06-24", "stance": "recommend", "quote": "We use and love RubyLLM! A wonderful and easy to use framework.", "excerpt": "We use and love RubyLLM! A wonderful and easy to use framework. Agreed with another commenter on the frustration with the responses API not being naively supported; that seems like a huge miss. There is a connector from another dev, but it's buggy and not as high quality as the main gem. Really looking forward to future development and especially 2.0! Edit: Just saw that responses API is now native? I will definitely", "context": "", "use_case": "LLM integration", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}]}], "who": [{"by": "mark_l_watson", "context": "former Ruby author", "url": "https://news.ycombinator.com/item?id=46392061", "date": "2025-12-26"}], "tags": ["for Ruby developers", "for Rails apps", "production-ready", "for side projects"], "use_cases": ["llm integration in ruby apps", "side projects with llms", "llm integration", "llm integration in production", "llm integration in production apps", "llm abstraction layer"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48660711", "title": "RubyLLM: A single, beautiful Ruby framework for all major AI providers", "mentions": 6}, {"url": "https://news.ycombinator.com/item?id=46390055", "title": "Building an AI agent inside a 7-year-old Rails monolith", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 1}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {"neutral": 1, "recommend": 5}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 778720720, "item_id": 48670045, "url": "https://news.ycombinator.com/item?id=48670045", "by": "strzibny", "date": "2026-06-25", "stance": "recommend", "quote": "I am using RubyLLM for quite some time and I am in love with the API design.", "excerpt": "Congrats Carmine on being featured! I am using RubyLLM for quite some time and I am in love with the API design. If someone wants to see how this looks in a real project including custom tools, you can have a look at the SerpTrail project on GitHub. The Chat model still is just: class Chat < ApplicationRecord acts_as_chat model: :llm_model end More: https://github.com/serpapi/serptrail I am quite excited for RubyLLM ", "context": "", "use_case": "LLM integration in Ruby apps", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778630160, "item_id": 48664385, "url": "https://news.ycombinator.com/item?id=48664385", "by": "mogox", "date": "2026-06-24", "stance": "recommend", "quote": "RubyLLM is awesome! I use it on side projects.", "excerpt": "RubyLLM is awesome! I use it on side projects. So interesting how questions and comments from last year SF Ruby conf, https://youtu.be/y535u1EWqAg?si=rbyv52T035apKwQk are already features shipped in the ecosystem.", "context": "", "use_case": "side projects with LLMs", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778618960, "item_id": 48663685, "url": "https://news.ycombinator.com/item?id=48663685", "by": "MitziMoto", "date": "2026-06-24", "stance": "recommend", "quote": "We use and love RubyLLM! A wonderful and easy to use framework.", "excerpt": "We use and love RubyLLM! A wonderful and easy to use framework. Agreed with another commenter on the frustration with the responses API not being naively supported; that seems like a huge miss. There is a connector from another dev, but it's buggy and not as high quality as the main gem. Really looking forward to future development and especially 2.0! Edit: Just saw that responses API is now native? I will definitely", "context": "", "use_case": "LLM integration", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778610384, "item_id": 48663149, "url": "https://news.ycombinator.com/item?id=48663149", "by": "rohitpaulk", "date": "2026-06-24", "stance": "recommend", "quote": "We use RubyLLM in production too, the most elegant library in this space I've seen so far.", "excerpt": "We use RubyLLM in production too, the most elegant library in this space I've seen so far. I also liked how they run the issue tracker. If you select \"Feature Request\", it makes you explain how you explored workarounds, why you believe it belongs in RubyLLM etc to prevent scope creep.", "context": "", "use_case": "LLM integration in production", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778605056, "item_id": 48662816, "url": "https://news.ycombinator.com/item?id=48662816", "by": "digitaltrees", "date": "2026-06-24", "stance": "recommend", "quote": "We use this in production for a few apps. Great project.", "excerpt": "We use this in production for a few apps. Great project.", "context": "", "use_case": "LLM integration in production apps", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 778594753, "item_id": 48662172, "url": "https://news.ycombinator.com/item?id=48662172", "by": "obiefernandez", "date": "2026-06-24", "stance": "neutral", "quote": "builds on top of RubyLLM's abstractions", "excerpt": "I have an open source gem called Raix that builds on top of RubyLLM's abstractions and is quite popular. https://github.com/OlympiaAI/raix", "context": "", "use_case": "LLM abstraction layer", "switched_from": "", "story": "RubyLLM: A single, beautiful Ruby framework for all major AI providers"}, {"id": 742272976, "item_id": 46392061, "url": "https://news.ycombinator.com/item?id=46392061", "by": "mark_l_watson", "date": "2025-12-26", "stance": "recommend", "quote": "the same nicely designed RubyLLM gem used in the article", "excerpt": "I really enjoyed reading the code listings in the article. Many years ago I was a Ruby fanatic, even wrote a book on Ruby, but for work requirements I was pulled to Java and Python (and occasionally Clojure and Common Lisp). I liked how well designed the monolith application seems to be from the brief description in the article. Coincidentally I installed Ruby, first time in years, last week and spent a half hour exp", "context": "former Ruby author", "use_case": "LLM integration in Ruby", "switched_from": "", "story": "Building an AI agent inside a 7-year-old Rails monolith"}]}