Marc KöhlbruggeFounder/CEO, Startup JobsRuby-esque DSL and the right level of abstraction: composable, flexible on architecture, opinionated on lower-level implementation.
One delightful Ruby framework for every major AI provider. Build AI agents, chatbots, RAG apps, and multimodal workflows in beautiful, expressive code.
Integrate with 13 major providers and all OpenAI-compatible ones. Use local models through Ollama and GPUStack. Without changing your code.
chat = RubyLLM.chat(model: "claude-opus-4-7")
chat.say "Hello!"
All with a comprehensive, refreshable model registry, so you can track costs.
RubyLLM.chat.ask "What's the best way to learn Ruby?"
chat = RubyLLM.chat
chat.ask "What's in this image?", with: "ruby_conf.jpg"
chat.ask "What's happening in this video?", with: "video.mp4"
chat.ask "Describe this meeting", with: "meeting.wav"
chat.ask "Summarize this document", with: "contract.pdf"
chat.ask "Explain this code", with: "app.rb"
chat = RubyLLM.chat
chat.ask "Analyze these files", with: ["diagram.png", "report.pdf", "notes.txt"]
chat = RubyLLM.chat
chat.ask "Tell me a story about Ruby" do |chunk|
print chunk.content
end
RubyLLM.paint "a sunset over mountains in watercolor style"
RubyLLM.embed "Ruby is elegant and expressive"
RubyLLM.transcribe "meeting.wav"
RubyLLM.moderate "Check if this text is safe"
chat = RubyLLM.chat
class Weather < RubyLLM::Tool
desc "Get current weather"
def execute(latitude:, longitude:)
url = "https://api.open-meteo.com/v1/forecast?latitude=#{latitude}&longitude=#{longitude}¤t=temperature_2m,wind_speed_10m"
JSON.parse(Faraday.get(url).body)
end
end
chat.with_tool(Weather).ask "What's the weather in Berlin?"
class WeatherAssistant < RubyLLM::Agent
model "gpt-5-nano"
instructions "Be concise and always use tools for weather."
tools Weather
end
WeatherAssistant.new.ask "What's the weather in Berlin?"
class ProductSchema < RubyLLM::Schema
string :name
number :price
array :features do
string
end
end
chat = RubyLLM.chat
response = chat.with_schema(ProductSchema).ask "Analyze this product", with: "product.txt"
Plus RAG, agentic workflows, Fiber support, extended thinking, prompt caching, custom endpoints, multi-tenant contexts, MCP, instrumentation, monitoring, error handling, and much more.
Persist chats with ActiveRecord, generate a Hotwire chat UI, all without learning a new interface.
bundle add ruby_llm
bin/rails generate ruby_llm:install
bin/rails db:migrate
bin/rails ruby_llm:load_models
bin/rails generate ruby_llm:chat_ui # http://localhost:3000/chats
chat = Chat.create! model: "claude-opus-4-7"
chat.ask "What's in this file?", with: "report.pdf"
bin/rails generate ruby_llm:agent Support
bin/rails generate ruby_llm:tool Weather
bin/rails generate ruby_llm:schema Product
Trusted by hundreds of companies, serving millions of users
Using RubyLLM? Get featured or sponsor us
Marc KöhlbruggeFounder/CEO, Startup JobsRuby-esque DSL and the right level of abstraction: composable, flexible on architecture, opinionated on lower-level implementation.
Jorge ManrubiaPrincipal Programmer, 37signalsWe are using OpenAI API using the fantastic RubyLLM gem from @paolino.
Kieran KlaassenFounder, CoraLove deleting code when adding a library, and love the thought that goes into the gem.
Elvinas PredkelisCEO, PrimeviseRubyLLM is pretty much the devise of this generation. Adding it to any application is pretty much a no-brainer.
Nick WarwickFounding Engineer, Nodal NetworksOur Langgraph agent was failing. I took a gamble and rebuilt it using RubyLLM. Not only was it far simpler, it performed better.
Brendan SamekFounding Software Engineer, Build CanadaIt feels natural. At Yuma, serving over 100,000 end users, our unified AI interface had accumulated so much cruft. RubyLLM is so much nicer than all of that.
Axel GrubbaFounder, CrevioLove how Ruby-like it feels. The DSL is incredibly intuitive and follows all the conventions I would expect.
Luis EzcurdiaSoftware EngineerRubyLLM is awesome, easy and intuitive. You should try it, even if you don’t work with Ruby.
Chris SonnierRuby/Rails EngineerIf you can find a better Ruby AI library than RubyLLM, I will only write JavaScript for the rest of the year!
Joe LeoFounder/CEO, Def MethodMost tools add layers. This one removes them. It keeps the mental load low.
Mauro EldritchFounder, BCA LTDWe built our own quick and dirty wrapper, then your project came up and rocked it.
Hamid SiddiquiFounder, ReelMoneyI replaced my internal provider implementation with RubyLLM and it just worked nicely. Deleted a lot of code.
Philippe LehouxCEO, MissiveMulti-provider support. Agentic loop support. Can we sponsor?
Ruslan LeteyskiCEO, ZipchatImplementation-agnostic access to models helps us simplify our flow and experiment with agentic systems.
Jonathan SatovskyCEO, FinDashWhen a tool removes noise instead of adding it, you get to stay focused on the real work.
Aaron SnyderCTO / Co-founder, CorepilotWe got our proof of concept up in one day and the first beta in about a week. Really impressive.
Cole RobertsonCo-founder and CTO, dScribe AIThe speed of development and the closest thing to the AI SDK in JavaScript land. Easiest Rails integration.
Rich ChetwyndGeneralist, Bunny IncSuper easy way to start adding magic to our app. Love the speed of improvements.
Ale SolanoSoftware Engineer, OpenRegulatoryJust having a framework to structure all our LLM processes is gigantic value. Tool integration works like a charm.
Eric WrightChief Content Officer, GTM DeltaIt just works. I do not want to keep dealing with wrappers and fast-moving provider changes.
Hadrien BlancFreelancer, Hadrien Blanc InnovationI delivered a lot of value to my customers because of your work.
Dewayne VanHoozerThe MadBomber, MadBomber SoftwareLetting someone else manage the fast-moving infrastructure of the LLM API landscape allowed me to focus on applications.
John DeSilvaChief Architect, RevelaReally solid overall, well thought out, and seamless across Rails model-backed chats and one-off chats.
Angel MendezCEO, YatoMy clients and my clients' clients are very happy because we can iterate and improve our system quickly.
Nina RevkoSenior Software Engineer, InstrumentlRubyLLM made the future of Ruby and AI feel easier, more accessible, and completely within reach.
Daniel FriisCreator, RubyLLM::SchemaFoundational tooling for working with AI in Ruby and Rails applications.
Giovanni PanasitiCo-founder, ConsultalaI’m kinda fitting RubyLLM into all of my projects.
Using RubyLLM? Share your story! Takes 5 minutes.