Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Building applications with composability using Boxcars with LLM's.
| Date | Stars |
|---|---|
| 2026-07-31 | 463 |
| 2026-08-04 | 464 |
| 2026-08-06 | 464 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
<h2 align="center">Boxcars</h2>
<h4 align="center">
<a href="https://www.boxcars.ai">Website</a> |
<a href="https://www.boxcars.ai/blog">Blog</a> |
<a href="https://github.com/BoxcarsAI/boxcars/wiki">Documentation</a>
</h4>
<p align="center">
<a href="https://github.com/BoxcarsAI/boxcars/blob/main/LICENSE.txt"><img src="https://img.shields.io/badge/license-MIT-informational" alt="License"></a>
</p>
Boxcars is a Ruby framework for building LLM-powered systems with less cognitive load, especially for Ruby and Rails teams.
If you want one gem that can search, calculate, query data, call external APIs, run retrieval, and coordinate all of that in one runtime, Boxcars is built for that workflow.
Inspired by LangChain, Boxcars brings a Ruby-first design that favors practical composition over framework lock-in.
## Why Boxcars
- Tool composability by default: package domain logic as `Boxcar` objects and reuse them across assistants, jobs, and services.
- Lower cognitive load for Ruby/Rails developers: one consistent programming model (`Boxcar`, `Train`, `Engine`) for controllers, jobs, and service objects instead of one-off wrappers per provider.
- Multiple orchestration modes: keep legacy text ReAct (`Boxcars::ZeroShot`) or use native provider tool calling (`Boxcars::ToolTrain`).
- Structured output paths: enforce JSON contracts with JSON Schema through `JSONEngineBoxcar`.
- MCP-ready integration: connect MCP servers over stdio and merge MCP tools with local Boxcars in one tool-calling runtime.
- Provider flexibility without a rewrite: use OpenAI, Anthropic, Groq, Gemini, Ollama, Perplexity, and more through shared engine patterns.
- Data-aware workflows: combine SQL, ActiveRecord, vector search, and API-backed tools in one train for end-to-end tasks.
- Incremental migration strategy: modernize from older aliases/runtime paths without breaking existing apps in one big cutover.
## What You Can Build Quickly
- Internal copilots that can search docs, inspect SQL/ActiveRecord data, and answer with auditable tool traces.
- Operations bots that call Swagger-defined APIs and business tools to complete multi-step actions.
- Retrieval-first assistants that combine embeddings/vector search with deterministic follow-up tool calls.
- Local+remote agent workflows that blend your own Ruby tools with MCP-discovered tools.
## Concepts
All of these concepts are in a module named Boxcars:
- **Boxcar** — a single-purpose tool (search, math, SQL, Active Record query, API call). Can use an Engine for LLM work.
- **Train** — given a list of Boxcars and an Engine, breaks down a problem for individual Boxcars to solve. `Boxcars::ZeroShot` (legacy ReAct) and `Boxcars::ToolTrain` (native tool calling).
- **Prompt** — used by an Engine to generate text results. Built-in prompts are provided, but you can customize them.
- **Engine** — generates text from a Prompt. Supports OpenAI, Anthropic, Groq, Gemini, Perplexity, Ollama, Together, Cerebras, and more.
- **StationAgent** — a higher-level agent abstraction over Train with lifecycle callbacks, agent-as-tool nesting, handoffs, and event streaming. See the [Agents Guide](./docs/agents_guide.md).
- **VectorStore** — a place to store and query vectors.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'boxcars'
```
And then execute:
$ bundle install
Or install it yourself as:
$ gem install boxcars
### Optional Provider Dependencies
`boxcars` keeps provider/tooling dependencies optional so base installs stay lean.
Add only the gems you use:
```ruby
gem "openai", ">= 0.30" # OpenAI + OpenAI-compatible engines
gem "ruby-anthropic" # Boxcars::Anthropic
gem "google_search_results" # Boxcars::GoogleSearch
gem "faraday" # Boxcars::Perplexityai / Boxcars::Cohere
gem "activerecord" # Boxcars::ActiveRecord / Boxcars::SQLActiveRecord (non-Rails usage)
gem "sequel" # Boxcars::SQLSequel
gem "pg" # Pgvector vExcerpt of 8,612 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:35ac1fafd0cc3e8a, llm:Repository topics and description: activerecord, langchain, openai, ruby, sql; description: 'Building applications with composability using Boxcars with LLM's.'
matched fp:35ac1fafd0cc3e8a, llm:Repository topics and description: activerecord, langchain, openai, ruby, sql; description: 'Building applications with composability using Boxcars with LLM's.'
matched fp:35ac1fafd0cc3e8a, llm:Repository topics and description: activerecord, langchain, openai, ruby, sql; description: 'Building applications with composability using Boxcars with LLM's.'