RubyLLM Ecosystem
Extend RubyLLM with MCP servers, structured schemas, instrumentation, monitoring and community-built tools for production AI apps.
After reading this guide, you will know:
- Which community projects add integrations, testing, observability, and storage.
- Which related features already ship with RubyLLM.
- Where to find each project’s setup instructions and examples.
These projects are maintained by their authors. Follow each project’s documentation for installation and compatibility with your RubyLLM version.
Schematist
Schematist ships with RubyLLM. Use its Ruby DSL to describe structured responses and tool parameters:
class TaskList < Schematist::Schema
array :tasks, of: :string
end
response = RubyLLM.chat.with_schema(TaskList).ask "Plan a first Ruby study session."
response.parsed["tasks"]
See Structured Output and Tool Parameters for the built-in integration.
RubyLLM::MCP
RubyLLM::MCP connect to MCP servers from Ruby and use their tools, resources, and prompts in conversations.
For provider-executed MCP tools, also see the built-in Server Tools.
RubyLLM::Skills
RubyLLM::Skills adds Agent Skills to chats and agents, so the model can discover and load instructions from SKILL.md directories, slash-command markdown files, and database records.
Stay on ruby_llm-skills ~> 0.3.0 with RubyLLM 1.x. For RubyLLM 2.0, use the published prerelease 0.4.0.pre1.
RubyLLM::Instrumentation
RubyLLM::Instrumentation adds ActiveSupport notifications to RubyLLM 1.x.
RubyLLM 2.0 emits instrumentation events itself. Start with the Instrumentation guide on 2.0.
RubyLLM::Monitoring
RubyLLM::Monitoring adds a Rails dashboard for cost, throughput, latency, and errors, with configurable alerts.
Check its supported RubyLLM and instrumentation versions when upgrading.
RubyLLM::RedCandle
RubyLLM::RedCandle runs quantized models inside your Ruby process through Red Candle, with streaming and local inference.
See its setup instructions for model downloads, hardware acceleration, and the Rust toolchain.
OpenTelemetry RubyLLM Instrumentation
OpenTelemetry RubyLLM Instrumentation exports traces for RubyLLM calls and tools to OpenTelemetry-compatible backends.
See its documentation for supported versions, exporters, and event coverage.
RubyLLM::Tribunal
RubyLLM::Tribunal tests AI outputs with deterministic assertions and model-based evaluations in RSpec or Minitest.
Use its evaluation reports to compare prompt or model changes on your own examples.
RubyLLM::Contract
RubyLLM::Contract adds input and output contracts, business-rule validation, retries with model escalation, and regression evaluations.
It checks application rules beyond the shape described by a schema.
RubyLLM::TopSecret
RubyLLM::TopSecret filters sensitive information before a conversation reaches the provider and restores the corresponding values in responses.
See the project documentation for filter configuration and supported chat integrations.
RubyLLM::Test
RubyLLM::Test stubs model responses for application tests, with RSpec and Minitest support.
Use controlled responses to exercise application behavior and error paths without calling a provider.
RubyLLM::Instructor
RubyLLM::Instructor builds Ruby objects from model responses, validates them, and feeds validation errors back to the model for another attempt.
Use built-in Structured Output when a parsed Hash meets your needs.
RubyLLM::Registry
RubyLLM::Registry stores versioned prompt artifacts with labels, ERB rendering, and revision comparisons.
For templates that ship with your application code, RubyLLM includes Prompt Rendering.
RubyLLM::Tokenizer
RubyLLM::Tokenizer counts and truncates text locally using model-to-tokenizer mappings.
RubyLLM also provides provider-side token counting for supported providers.
RubyLLM::Turbovec
RubyLLM::Turbovec adds vector search inside your Ruby process, with quantized indexes and disk persistence.
The native extension requires a Rust toolchain. See its documentation for index types and setup.
Community Projects
Built something with RubyLLM? Open a documentation PR to add your project, share it in GitHub Discussions, or use the ruby-llm topic on its repository.