rails-query — Claude Code plugin: what it does, how to install
Answers database questions about Rails 8.2+ applications via rails query locally or through Kamal. Safely inspects schemas and records without opening a console.
/plugin marketplace add anthropics/claude-plugins-community
/plugin install rails-query@claude-communityWhat rails-query does
This plugin guides Claude Code to inspect Ruby on Rails application data using the native rails query command. Instead of starting console sessions or writing scratch scripts, the assistant executes structured JSON queries. Database writes remain blocked at the connection level.
The tool supports four input modes: ActiveRecord expressions, raw SQL using --sql, schema introspection, and EXPLAIN execution plans. Remote execution runs through bin/kamal query -d <env>. It also handles result pagination without manual limits.
Without Rails 8.2 or newer, this plugin cannot function. Earlier releases lack the underlying query command. Working with response extractions requires jq in your PATH. Remote queries depend on Kamal and need a dedicated query alias inside config/deploy.yml.
What it helps with
- query Rails 8.2+ databases safely with read-only connection limits
- inspect database tables and model associations without SSH access
- retrieve EXPLAIN query plans for ActiveRecord scopes
- fetch remote production replica data through Kamal commands
Example prompts for the agent
- How many active users signed up last week?
- Show me the schema for the orders table and models referencing accounts
- Explain the query plan for Post.published.limit(100)
How to install rails-query
Plugin marketplace
/plugin marketplace add anthropics/claude-plugins-community/plugin install rails-query@claude-communityStep by step, with commands for each platform: Claude Code plugins: marketplaces, installing, and building your own
Questions about rails-query
How do I install rails-query in Claude Code?
Run /plugin marketplace add anthropics/claude-plugins-community inside Claude Code, then execute /plugin install rails-query@claude-community.
What does rails-query do?
It enables Claude Code to inspect Rails 8.2+ application data and schemas using rails query, preventing accidental writes while returning structured JSON.
What are the prerequisites for rails-query?
Your application must run Rails 8.2 or later. You will also need jq on your system PATH and, for remote checks, a configured Kamal deployment alias in config/deploy.yml.
Source text
SKILL.md · MIT
# rails-query
A Claude Code plugin that teaches Claude to answer data questions about a Rails 8.2+ application using the [`rails query`](https://github.com/rails/rails/pull/57156) command — locally or against a deployed environment via Kamal.
## What it does
When you ask Claude something like:
- "How many active users do we have?"
- "Show me the orders table structure."
- "What models reference `accounts`?"
- "Explain the query plan for this scope."
…Claude reaches for `rails query` instead of opening a console, SSHing to a server, or writing a one-off script. Queries are structured (JSON output), read-only by construction (writes blocked at the connection level), and safe to run against production with a read replica.
The skill covers:
- **Both paths** — local (`bin/rails query`) and remote via Kamal (`bin/kamal query -d <env>`)
- **All four input modes** — ActiveRecord expressions, raw SQL (`--sql`), schema/model introspection (`schema`, `models`), and `EXPLAIN` plans
- **Pagination** — how to page through large results, and why you shouldn't add your own `LIMIT`
- **The Kamal quoting rule** — the one gotcha that bites when your SQL has parens or stars, and the reliable fix
## Installation
This repository is both the plugin and a single-plugin marketplace, so you can install it directly without waiting for Anthropic marketplace approval.
From your shell:
```shell
claude plugin marketplace add lewispb/rails-query-skill
claude plugin install rails-query@rails-query-skill
```
Or equivalently, from inside an interactive Claude Code session:
```
/plugin marketplace add lewispb/rails-query-skill
/plugin install rails-query@rails-query-skill
/reload-plugins
```
The first command registers this repo as a marketplace; the second installs the plugin. In-session, `/reload-plugins` picks it up without restarting. The plugin will also be submitted to the official Anthropic marketplace — once approved, a shorter `claude plugin install rails-query@claude-plugins-official` will work too.
## Requirements
- **Rails 8.2+** (the app you're querying). Earlier versions don't ship the `rails query` command.
- **`jq`** on your PATH if you want the skill's suggested extraction patterns to work (`jq '.rows[0][0]'`).
- **For remote use: Kamal** with an alias added to `config/deploy.yml`:
```yaml
aliases:
query: 'app exec -q --reuse -p -r console "rails query"'
```
Your `console` role should be configured with read-replica DB access. See the skill body for the reasoning behind each flag.
## How triggering works
The skill is described broadly so Claude invokes it whenever a task would naturally be solved by querying a Rails database — not just when the user types `/rails-query:rails-query`. Try:
> "How many users registered last week?"
> "What's in the `mailboxes` table?"
> "Explain this query: `Post.published.limit(100)`"
## Further reading
- [rails/rails#57156](https://github.com/rails/rails/pull/57156) — the PR that added `rails query` to Rails 8.2. Read this for the full design, rationale, and command surface.
- [Kamal `app` commands](https://kamal-deploy.org/docs/commands/app/) — for wiring `bin/kamal query` to `rails query` on deployed environments.
## Contributing
Issues and PRs welcome at https://github.com/lewispb/rails-query-skill.
## License
MIT
© lewispb · MIT · lewispb/rails-query-skill