- RoboRuby
- Posts
- Ruby AI News - July 8th, 2025
Ruby AI News - July 8th, 2025
Ship, baby, ship! Rubyists are launching with AI faster than ever

Welcome to the 10th edition of Ruby AI News! This edition features the launch of Code for America’s new AI Studio, a supercharged, AI-powered email inbox, Claude Swarms coming to take over Rails development, and much more.
Newsletter update: No Jobs and Opportunities section this edition, as I had to shorten it to prepare for RailsConf. However, there were over 50 opportunities compiled, so I will post a separate Jobs update this weekend. If you are in Philadelphia this week for RailsConf, don’t forget to say hi!
Contents
Top Stories
Code for America Launches New AI Studio
Code for America has launched its new AI Studio with an open-source, Ruby on Rails-based PDF accessibility tool. The tool is designed to help state and local governments meet the upcoming April 2026 Americans with Disabilities Act compliance deadline by classifying and summarizing thousands of documents. The Rails app crawls government websites to index PDFs, uses machine learning to sort by type, and leverages Large Language Models to generate summaries and detect exemption candidates. The application supports swapping AI models, and may expand to features like conversion to HTML or archive removal. Built on Rails for transparency and extensibility, and the source code is available on Github.
Colin Wood covers Code for America's launch of an AI Studio built with Ruby on Rails in PDFs are the tip of the spear for Code for America’s new AI studio.
Cora Computer Supercharges Your Email Inbox
Kieran Klaassen launched Cora Computer, an AI-powered email client that screens your inbox, drafts responses in your voice, and briefs you on incoming emails twice a day. The application uses Ruby on Rails, RubyLLM, Stepper Motor, Ahoy, and pgvector to power the artificial intelligence capabilities. X/Twitter announcement
Kieran Klaassen continues to share his secrets building Cora Computer with some Claude Code magic, demonstrating a workflow using FeatureBase, Model Context Protocol, and Github to bridge tools so feedback becomes implementation. One workflow can update issue statuses, ask for clarification, or spawn dev tickets.
Claude Swarms Rails Development
Obie Fernandez released a new Ruby gem that turns Claude into an AI-powered Rails development team of specialized agents in Introducing ClaudeOnRails. ClaudeOnRails leverages Claude Swarm to create agents that follow best practices and work together by describing what you want to build in natural language, and letting the swarm handles the rest. According to Obie, potential agents include:
Architect (coordinates everything)
Models, Controllers, Views specialists
Testing expert
Services, Background Jobs
DevOps
Since the release, ClaudeOnRails has been updated to version 0.2.0, bringing Rails MCP server integration for real-time documentation access.
One of Obie’s colleagues, Daniel Doubrovkine explained how to use the new claude-swarm gem to orchestrate multiple Claude Code agents in Using Claude-Swarm to Upgrade Ruby Projects. Shopify is currently attempting to use Claude Swarm to create an army of AI testing agents, such as a Ruby Expert, Test Driven Development Practitioner, and Code Review Nitpicker to perfect Rails applications at scale.
Article: As part of the “Works on my Machine” series, Scott Werner detailed MCP: An (Accidentally) Universal Plugin System. Scott argues that Model Context Protocol is a simple standard that unexpectedly enables broad interoperability between tools, reigniting the dream of vendor-agnostic “everything APIs.” As part of the exploration, Scott also announced Actions Per Minute, a Real Time Strategy game-inspired command center for AI-augmented work. Reach out to Scott if you want early access!
Tutorial: Mikkel Malmberg recorded an in-depth video on using Claude Code to build and ship new features in a real, almost-decade-old Rails app in production.
Article: John Callahan demonstrates building a moonphase project in A Ruby Implementation of Moonphase Using 3 AI Engines: Gemini CLI, Anthropic Claude and OpenAI Codex. John walks through how each model generates lunar phase calculations within each model’s respective CLI tools, comparing outputs and reliability. He plans to create a moonphase gem and Rails app to replicate the moonphase website.
Tutorial: Andy Waite detailed Using Claude Code Custom Slash Commands with Ruby. Andy walks through defining slash commands, parsing arguments, and integrating actions directly within a Claude-powered chat interface. If you want to try them out yourself, he packaged them into a convenient Ruby gem claude_code_slash_commands.
Launch: Samuel Williams released agent-context, a simple way for Ruby gems to provide rich, structured context files to AI agents. Samuel also shared a take on Agent Context Specification, arguing that files like CLAUDE.md
and .cursor/rules
are anti-patterns. Additionally, he highlighted tooling he uses to have agents write documentation for entire codebases in this X/Twitter thread.
Article: João Victor Vogler wrote The Overlooked Power of Rails in the Age of AI. João argues Rails remains a powerful tool for AI-driven development, and covers the top Ruby AI resources.
Launch: Arto Bendiken introduced ASIMOV, a platform for trustworthy neurosymbolic AI. ASIMOV aims to set a new standard for verifiable, auditable AI systems that can be deployed confidently. The project focuses on making advanced AI workflows transparent and resilient against misuse, for example, by enforcing Isaac Asimov’s Three Laws of Robotics. While the project is implemented in Rust, it has a software development kit for Ruby.
Article: Charlie Tarr shared four principles for using AI responsibly in How to Use AI Sustainably in Software Engineering. Charlie explains why engineers should take responsibility for AI outputs, write strong tests, use autopilot features carefully, and build for long-term maintainability.
Article: Charlie Tarr also demonstrated the power and value of Large Language Models in Using RubyLLM to Supercharge Your Rails Apps. He walks through integrating RubyLLM into Rails controllers and models to streamline AI interactions with minimal setup.
Podcast: Rhiannon Payne and Justin Bowen visited the IndieRails podcast to share how they built Active Agents, an AI framework for Rails, highlighting their unique collaboration as a couple and blending expertise from marketing to computer vision in the episode Agents of Change.
Podcast: Justin Bowen also chatted with Valentino Stoll and Joe Leo for the third episode of the Ruby AI Podcast. Together they unpack Active Agent, a Rails-native gem that turns every agent into a controller and every prompt into a view. They also look at the real-world mechanics of shipping AI: defining datasets, replay-ready evaluations, and retry logic that keeps hallucinations out of production systems.
Tutorial: Dewayne VanHoozer published Building AI Workflows: AIA’s Prompt Sequencing and Pipelines, outlining a streamlined, modular AI workflow focused on defining responsibilities, managing prompt lifecycles, and integrating evaluation hooks for more maintainable AI pipelines. This is the third part in Dewayne’s series on AIA, a Ruby gem command-line utility that facilitates interaction with AI models through dynamic prompt management.
Announcement: The Chatwoot team shared an early-stage AI Agents Ruby SDK that lets developers build multiple LLM-powered agents capable of interacting, sharing context, using tools, and handing off conversations within a Rails monolith. A primary differentiating goal of the library is to be provider-agnostic and thread-safe. Pranav Raj S goes into further detail in this LinkedIn post.
Tutorial: Dion Almaer takes a closer look at Shopify’s snarky new framework in Roast-ing AI Workflows with Ruby. Dion uses Roast to create Glaser, an AI-powered code review and commentary tool to “gently critique” your codebase. Point Glaser at a codebase, run steps in a workflow, and get silly roast-like commentary on said codebase.
Update: Ben Roesch announced an update to Raif, releasing version 1.2.0. The Rails engine for LLM-powered applications now includes drop-in support for streaming chat with built-in admin and conversation views. Additionally, the release adds LLM-managed tools like web search, code execution, and image generation.
Tips: Kody Kendall documented Upgrading from Rails 6.0 to Rails 7.0 using Cursor Agent Max with Claude 4 Sonnet. Kody shares the prompt used and eleven videos working through the entire process.
Article: Andrei Kaleshka published Ruby and Rails Upgrade: Personal Experience. The post shares instances where AI tools were used to speed up the process, and reflects on the challenges and shortcomings of current AI-assisted tooling for the upgrade.
Video: Pete Hawkins demoed Happi, a streamlined AI helpdesk replacement, in the video This AI Support Tool Replaces Your Helpdesk. This Rails-powered application uses AI to draft replies, summarize threads, and manage your helpdesk support inbox.
Article: João Mateus Scarpa explores Agents on Rails: How AI Agents Are Changing The Way We Build Apps. João shares a practical example of choosing an LLM, the right Ruby gems (in this case, Langchain.rb), defining tools, writing an agent, and putting it all together to get to work.
Tips: Nikos Katsikanis shows how to structure Rails apps for AI-friendly, testable code in Harnessing Rails for AI‑Friendly, Testable Code.
Announcement: Michael Pious created a new Ruby gem open_router_usage_tracker, a Rails engine to log OpenRouter API usage and provide methods for tracking user consumption over time, enabling easier rate-limiting based on actual API costs.
Article: Andrés Chacón wrote When Machines Talk: ChatGPT and DeepSeek, demonstrating how DeepSeek enhances ChatGPT's retrieval ability, allowing natural language queries over document collections without manual embeddings. The result is a fluid agent-style setup where browsing and understanding data feels intuitive.
Feedback: Radamés Roriz has been hard at work and is looking for feedback on ActiveGenie, A set of Ruby modules to work with Generative AI.
Article: Rich Steinmetz dives into the surge of agentic coding powered by tools like Claude Code Max, showing how modern LLM agents can tackle large codebases. In The New AI Wave, Rails Builders III and Mom Test Reading Group, Rich shows that everything from generating features to dynamically building API clients is transformed by this new wave of LLM-powered products. Rich posted additional thoughts on X/Twitter, along with resources and best practices for getting started with Claude Code.
Video: Landon Gray recorded The Strategic Software Decision: Code, Train, or Prompt? In the video, Landon tackles the question “When should you use traditional code, machine learning, or large language models to solve a problem?”
Opinion: Test Double discusses why you should shift from resistance to AI coding tools in From Resistance to Results: Why Agentic Coding Requires a New Mindset. They discuss how developers find productivity improves when prompts and agent constraints are specific, not abstract. They go on to frame agentic coding as a new layer of abstraction that focuses human effort on system-level judgment rather than line-by-line coding.
Interview: Rhiannon Payne sat down with Ratnadeep Deshmane, founder of BetaCraft and longtime Rubyist, for Ruby Talks: Design Decisions in Rails, Vibe Coding, & RailsConf 2025.
Opinion: Ernesto Tagwerker shared a strong belief that AI will make your Ruby on Rails upgrades smoother, and hinted at some exciting new AI-tooling from FastRuby and OmbuLabs.
Article: Dalibor Nasevic wrote about how he balances Vim's speed and simplicity with modern AI tools in I Still Use Vim. I Also Use AI. It Still Feels Like Me. Dalibor explains how AI assistants help write tests, specs, and debug Rails code without replacing the developer's judgment.
Update: Sergio Bayona updated VectorMCP to version 0.3.2 and shared the changes in this X/Twitter post. Highlights include priority-based and conditional execution for middleware, along with pre-built hooks for PII redaction, retry requests, rate limiting, and enhanced logging.
Opinion: Lelouch Lamperouge examines the intersection of Ruby and AI in A Brief Discussion on Ruby's Philosophy and AI Integration. Lelouch highlights Ruby's focus on developer happiness and readability as key strengths in the new AI landscape, suggesting that the language's design makes enhancements with AI more intuitive and maintainable.
Article: Tim Riley and Sean Collins introduce themselves as Hanami core contributors during the ongoing sponsorship drive in Meet Tim and Sean. While the post doesn’t showcase AI directly, it highlights their strategic vision for Hanami that will set the stage for future integrations, including AI tools.
Opinion: Nate Berkopec listed his thoughts on what LLM-assisted coding is really good at and what its bad at in this X/Twitter thread.
Tips: Rob Zolkos shared this tip for Claude Code to reflect on what it has learned and add context to CLAUDE.md
to save insights for future use.
Opinion: Recently a new remote AI runtime for the Elixir framework Phoenix was released in the form of Phoenix.new. It is billed as a service for getting basic applications working quickly. You describe your app and Phoenix.new designs a mockup and builds towards a working real-time piece of software. Avi Flombaum is convinced it it amazing at generating Rails apps as well. What are your thoughts? Has anyone else tried Phoenix.new to bootstrap anything with Ruby?
omg Phoenix.new is amazing. It can AppGen Rails apps. Like really well.
Events
Previous
Guillaume Briday shared a video from his presentation at the Lyon.rb meetup from June 2025 titled Smarter Rails apps with AI, how to use LLM in real life. There is also a companion slidedeck.
Riccardo Carlesso posted a slidedeck for his talk at Railshock at Renuo from June 19th, Create a Rails8 responsive app with Gemini and RubyLLM. The source code from the presentation is available on Github.
Upcoming
July 8th - Conference: Day 1 of RailsConf on July 8th, in Philadelphia, Pennsylvania has added a Ruby AI talk: Chime Presents: Getting More Out of LLMs for Ruby Developers. Justin Wienckowski will share lessons from Chime's programs piloting tools for developer use, and Jake Gribschaw will talk about lessons learned building an AI code review bot. Noel Rappin will host and talk about AI as part of the history of coding tools.
July 9th - Conference: Day 2 of RailsConf on July 9th, in Philadelphia, Pennsylvania will include a “hack space” on Active Agent with Justin Bowen and Rhiannon Payne, designed to bring Rails developers and open source maintainers together for a day of hands-on collaboration. Additionally, Justin will present a lightning on Active Agent at the end of Day 2.
July 16th - Meetup: ArtificialRuby is hosting a meetup at Betaworks in New York City on July 16th. If you are interested in presenting at an ArtificialRuby meetup, please fill out this form and let them know!
July 18th - Conference: RubyConf Africa includes a talk by Purity Maina on Your First Robotic Process Automation Bot in Nairobi, Kenya on July 18th and 19th.
July 19th - Hackathon: The San Francisco Ruby Meetup Group is hosting a Ruby AI Hackathon on July 19th in San Francisco. This one-day hackathon will explore how AI can help solo developers supercharge their Rails application development.
September 4th - Conference: Rails World 2025 on September 4th and 5th in Amsterdam, Netherlands will have two Ruby AI presentations:
Kinsey Durham Grace: Beyond the Prompt: Building Real-World LLM Features in Rails
Paweł Strzałkowski: Make Rails AI-Ready by Design with the Model Context Protocol
September 18th - Conference: The EuRuKo (European Ruby Conference) on September 18th and 19th in Viana do Castelo, Portugal has announced five Ruby AI-related speakers:
Obie Fernandez: Roasting Code for Fun & Profit with Structured AI Workflows
Paweł Strzałkowski: Making Rails AI-Native with the Model Context Protocol
Carmine Paolino: RubyLLM: Making AI Development Beautiful Again
Lucian Ghinda: Don't Let Your AI Guess: Teach It to Test!
Ivan Nemytchenko: Slingshot Development: Vibe Coding with Ruby Done Right
Open Source Updates
Code Spotlight
Abdelkader Boudih has created a modern circuit breaker for Ruby and Rails, one that is thread-safe with fiber-ready asynchronous support. This new Ruby gem has built-in fallbacks, rich introspection, and a clean DSL. It is intended to be memory-efficient with jitter and monitoring capabilities.
Abdelkader was kind enough to demonstrate the new gem with some Ruby AI-specific code examples. In them, he presents an AiResponder class that has a few issues:
class AiResponder
def handle(text)
response = call_llm(text) # This could crash
save_response!(response) # 🧨 This crashes sometimes
send_notification!(response) # 🧨 This too
response
rescue => e
puts "Error: #{e.message}, retrying whole thing..."
retry
end
def call_llm(text)
"Summary: #{text}" # totally fine
end
def save_response!(text)
DB.save!(text) # let's say this times out randomly
end
def send_notification!(text)
NotificationMailer.reply(text).deliver_now! # sometimes raises
end
end
Specifically:
The LLM could give you the same answer multiple times while you keep retrying
Your DB or email service gets hammered until it crashes
AI API calls and costs explode without explanation
Abdelkader then presents another scenario:
class AiResponder
def handle(text)
response = call_llm(text)
save_response!(response) # ✅ DB save succeeds
send_notification!(response) # 💥 SMTP crashes
rescue => e
puts "Something broke: #{e.message}, retrying..."
retry
end
def call_llm(text)
"Summary: #{text}"
end
def save_response!(text)
DB.save!(text) # ✅ First time: works
end
def send_notification!(text)
raise Net::SMTPFatalError, "Mailer exploded"
end
end
In this case, the LLM response is successfully saved, but the SMTP notification fails, causing unnecessary retry functionality to kick in. However, this creates an endless failure loop that will eventually crash.
The solution? Using the breaker_machines gem to contain error fallout:
class AiResponder
include BreakerMachines::DSL
circuit :database do
threshold 3
reset_after 60
fallback { puts "🛑 Skipping DB persist — circuit open." }
handle ActiveRecord::ConnectionTimeoutError, PG::Error
end
circuit :notification do
threshold 1
reset_after 30
fallback { puts "📭 Mailer is down, fallback triggered." }
handle Net::SMTPFatalError
end
def handle(text)
response = call_llm(text)
circuit(:database).wrap do
save_response!(response)
circuit(:notification).wrap do
send_notification!(response)
end
end
response
end
def call_llm(text)
"Summary: #{text}"
end
def save_response!(text)
DB.save!(text) # 🧱 Might fail
end
def send_notification!(text)
raise Net::SMTPFatalError, "Mailer exploded"
end
end
New Versions
A new and improved open-source report is coming soon, featuring changelog summaries, dependent reporting, and open-source Rails application tracking. In the mean time, this edition will temporarily forego the New Versions report.
New Gems
Links to RubyGems page.
claude-on-rails - Leverages claude-swarm to create an intelligent team of AI agents specialized in different aspects of Rails development. Describe what you want to build, and the swarm handles the rest.
rails-dev-mcp - Model Context Protocol server that allows AI agents to start, stop, and monitor Rails development servers.
breaker_machines - Circuit breaker implementation for Ruby that prevents cascade failures in distributed systems.
code_qualia - Helps developers express their subjective understanding about code quality to AI systems by combining quantitative metrics with configurable weights that reflect development priorities.
code_sage - An intelligent code review assistant using LLMs.
obscene_gpt - Integrates with OpenAI's API to detect whether given text contains obscene, inappropriate, or NSFW content.
claude_code_slash_commands - A tool for distributing Claude Code slash commands.
rubydeako - Implementation of the pydeako library for controlling Deako smart switches via local network discovery and control.
browse_ai - Ruby wrapper for the Browse AI API.
better_prompt - A Ruby Gem for tracking and analyzing LLM prompt interactions, designed to work with smart_prompt.
ffi-llvm-jit - Extends Ruby FFI and uses LLVM to generate JIT wrappers for attached native functions.
foobara-agent-backed-command - Provides a way to create a command without an execute method that is instead executed by a Foobara::Agent.
sc-ruby_llm-mcp - Client for the Model Context Protocol that seamlessly integrates with RubyLLM.
pulp_hugging_face_client - A Pulp plugin for managing Hugging Face Hub content with pull-through caching support.
tencentcloud-sdk-ai3d - Tencent Cloud service AI3D.
Jobs & Opportunities
Are you an organization searching for an expert Ruby AI developer, or a Rubyist looking for your next development role with AI? Please reach out and let me know the type of opportunity you’re pursuing: [email protected]
One Last Thing
The GitHub Next initiative is bringing CI/CD-style automation to software collaboration with LLM-powered tasks like documentation, issue triage, code quality checks, and accessibility audits with Continuous AI. This open-ended concept integrates AI workflows that are triggered by commits or pull requests via GitHub Actions, Github Models, GenAIScript, and related tools. Continuous AI serves as the next evolution in developer collaboration, similar to CI/CD, with early examples already live on GitHub.
That’s all for this edition! Be sure to reach out if you have any stories, content, jobs, or events you want featured in the newsletter.