alt.hn

6/24/2026 at 2:41:41 PM

RubyLLM: A Ruby framework for all major AI providers

https://rubyllm.com/

by doener

6/24/2026 at 3:11:26 PM

I found Ruby LLM to be surprisingly good - in terms of usability it's close to Vercel's AI framework.

It tries to strike a balance between working out of the box and being flexible... which has its challenges, still nice overall.

One big real-life pain I experienced is that caches don't always work, e.g. for xAI, since it only supports completions API and thought signatures are returned wrong.

by swe_dima

6/24/2026 at 3:15:55 PM

Thank you!

Responses API is now implemented and it's coming in RubyLLM 2.0

https://github.com/crmne/ruby_llm/blob/main/lib/ruby_llm/pro...

by earcar

6/24/2026 at 3:27:07 PM

Do you have any details published around 2.0? Would love to learn more.

by techscruggs

6/24/2026 at 3:31:11 PM

Not yet. I'll do a series of blog posts and tweets in the next weeks.

by earcar

6/24/2026 at 6:27:43 PM

[flagged]

by curtisboortz

6/24/2026 at 7:34:11 PM

I'm building something that is only pointed at Claude, and I don't anticipate moving away from the Anthropic ecosystem. Does RubyLLM offer me an advantage over directly using Anthropic's Ruby SDK?

To put it differently, is this more like choosing between Fog and aws-sdk-s3, or choosing between Active Storage and aws-sdk-s3?

by aaronbrethorst

6/24/2026 at 7:08:23 PM

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.

by mogox

6/24/2026 at 7:16:40 PM

I spent a lot of time with RubyLLM a few months ago. Very nicely designed and implemented. I have my own LLM clients written in various Lisp languages and I thought about appropriating some of the design of RubyLLM. Imitation is flattery.

by mark_l_watson

6/24/2026 at 4:22:17 PM

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

by obiefernandez

6/24/2026 at 3:46:23 PM

RubyLLM is very easy to use. Made extensive use of it for a project last year. Drawbacks are it was difficult to instrument for true trace observability and it has a pattern where retries will delete the underlying models so the history you see is clean but not necessarily great for seeing exactly what the sequence of API calls was.

by Finbarr

6/24/2026 at 6:15:25 PM

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 check that out.

by MitziMoto

6/24/2026 at 6:36:02 PM

Thank you!

Since a few mentioned Responses API: the reason why it wasn't implemented in 1.x is because RubyLLM 1.x effectively assumes a 1:1 mapping between provider and protocol. That assumption no longer holds since OpenAI has 2 protocols with different capabilities, and to access all VertexAI models we need to support a bunch under that single provider.

Therefore, a major refactoring to split Protocols and from Providers was needed, as well as a way to route different models to different Protocols under the same Provider, transparently.

That's one of the many things that's gonna ship with RubyLLM 2.0.

If you're curious: https://github.com/crmne/ruby_llm/commit/d398354da493570b050... https://github.com/crmne/ruby_llm/commit/0875ce2dfeae9d28a3a...

by earcar

6/24/2026 at 5:33:09 PM

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.

by rohitpaulk

6/24/2026 at 5:07:43 PM

We use this in production for a few apps. Great project.

by digitaltrees

6/24/2026 at 3:21:05 PM

thank you for bringing ruby into AI community and your open-source work. Great language must be explored and get more attention :)

by zhisme

6/24/2026 at 3:23:32 PM

Thank you!

I love how MINASWAN Hacker News is when talking about Ruby!

by earcar

6/24/2026 at 3:34:11 PM

I have created an open source chatgpt clone with rubyllm, check it out here: https://www.railschat.org/

by fragkakis

6/24/2026 at 6:38:48 PM

tried it and got this:

> Error: You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. * Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash Please retry in 41.543129369s.

by reg_dunlop

6/24/2026 at 3:08:23 PM

It is quite nice, but not as nice as you'd want. You still have to set platform specifics when running completions when you want to tune things like temperature, effort, max tokens, etc.

by mosselman

6/24/2026 at 3:12:47 PM

RubyLLM author here.

I'm not sure where you got that.

`chat.with_temperature(0.2)`

https://rubyllm.com/chat/#controlling-response-behavior

`chat.with_thinking(effort: :high, budget: 8000)`

https://rubyllm.com/thinking/#controlling-extended-thinking

Max tokens is the only one of your list that require provider specific params:

https://rubyllm.com/chat/#provider-specific-parameters

I'm one guy doing it for free. Happy to see your contribution!

by earcar

6/24/2026 at 6:45:21 PM

Well put!!!

You work your arse off for free and the guy who made the disparaging comment didn't even bother to research to see if he had the details right.

Hat's off to you Carmine for all your work. Many people really do appreciate it.

by realty_geek

6/24/2026 at 3:49:49 PM

Hi! Valid challenge, I am probably misremembering. We were playing with various 'one-interface to all providers' solutions and I might have mixed up RubyLLM there. Sorry for that.

I will have a deep dive into which things I felt we needed to adapt per provider.

I didn't mean to imply that you have to solve all of our wants of course.

One thing we did do was monkey-patch the spot where tool_calls are performed by RubyLLM. We had our own mechanism for that and were able to skip RubyLLM's and still extract the tool calls and run them through our own tool harness. That all worked beautifully. I don't know if that type of stuff is something you want PRs on or that you want to keep steering towards the route that does everything within RubyLLM classes. Happy to contribute some of that.

by mosselman

6/24/2026 at 4:01:03 PM

Interesting! What were you guys trying to achieve by running them in your own tool harness?

by earcar

6/24/2026 at 6:35:10 PM

We had already implemented tool_calls in our own database and have a system that executes them and creates our conversation array, etc. So we wanted to leverage the providers that RubyLLM supports without having to change the tool execution in our platform.

by mosselman

6/24/2026 at 3:20:27 PM

And thank you! It is absolutely awesome and a true joy to work with.

by techscruggs

6/24/2026 at 5:47:29 PM

Using RubyLLM in production for https://usetix.io It drives our event chat agent that is enhanced with toolcalls etc. Super happy with it.

by hit8run

6/24/2026 at 6:01:14 PM

I haven't tried it but it looks promising.

by aniokono

6/24/2026 at 3:47:30 PM

Thank you

by bitedeck

6/24/2026 at 5:17:27 PM

"What is the best language in the world (say ruby)" ;)

by meerita

6/24/2026 at 5:44:12 PM

[flagged]

by randomuser558

6/24/2026 at 4:02:04 PM

[flagged]

by maxothex

6/24/2026 at 3:14:56 PM

[dead]

by balicien

6/24/2026 at 5:28:40 PM

[dead]

by guesswho_

6/24/2026 at 4:26:06 PM

Why would anyone still build in dynamically typed languages in 2026? Why relinquish the crystal clear signals that static typing is able to provide to the LLM?

by notpachet

6/24/2026 at 6:25:50 PM

You static typed evangelists have lost your damn minds. You seem to have completely misunderstood what this library even is because you have some primal urge to boast static typing at every chance.

You can build high quality software with dynamically typed languages, and Ruby is an absolute dream to read and write.

by MitziMoto

6/24/2026 at 7:32:21 PM

Why do you think that follows?

I was on team dynamic typing for about 12 years, and Ruby was a big part of that. I still think dynamic languages can be wonderful to read and write.

But after using modern statically typed languages with good inference, I changed my mind. Many of my old objections were really objections to verbose type systems, not static typing itself. With inference, you can keep a lot of the readability while gaining safer refactoring, better tooling, and earlier feedback.

That doesn’t mean dynamic languages can’t produce high-quality software. They obviously can. But I don’t think appreciating modern static typing is just evangelism.

And yes, I understand what this library is about, it's for "beautiful" easy to use interface to AI providers for Ruby apps. It's the popular play nowadays with litellm, bifrost, gomodel and vercel gateway. We have at least couple AI gateways, libraries like that every week on HN.

by lackoftactics

6/24/2026 at 4:30:49 PM

Well, LLMs have an obscene amount of context built into their weights about Ruby on Rails, and can work within it extremely quickly.

by taylorlapeyre

6/24/2026 at 6:13:16 PM

Even as rails dev, I am seeing that you might be right. It’s really hard to find specific pros nowadays that Ruby brings to the table. All that talk about conventions over configurations and vast presence of Rails in weights is fun, but if writing speed isn’t an issue anymore, then Ruby on Rails has serious problems with larger codebases

by lackoftactics

6/24/2026 at 6:28:38 PM

Codebases like Stripe?

by cutler

6/24/2026 at 7:42:07 PM

they introduced static typing (Sorbet) to avoid problems, it's completely different app and looks nowhere close to what you experience in standard Rails app

by lackoftactics

6/24/2026 at 4:27:41 PM

This is not a tool for using LLMs to write Ruby code.

by jimbokun

6/24/2026 at 6:04:06 PM

I have been a fan of Ruby for many years, but in this fast paced era the Ruby ecosystem always struggled with the dependency versioning. Gems I relied on were never available or compatible with the rest of the ecosystem.

by arbirk