From r-package-skills
Use when code loads ellmer, btw, mcptools, ragnar, or vitals, building LLM-powered R applications, implementing RAG workflows, or choosing between R AI packages (meta-skill for ellmer/btw/mcptools/ragnar/vitals)
npx claudepluginhub arthurgailes/r-package-skills --plugin r-package-skillsThis skill uses the workspace's default tool permissions.
**This is a meta-skill** that helps you choose the right R AI package. The R AI stack consists of 5 specialized packages, each with its own skill.
Use when code loads or uses ellmer (library(ellmer), chat_openai, chat_claude, chat_ollama), chatting with LLMs from R, building chatbots, or extracting structured data from text with LLMs
Provides production-ready patterns for LLM apps including RAG pipelines, chunking strategies, embeddings, vector DBs like Pinecone/pgvector, AI agents, LLMOps. Use for RAG implementation and agent design.
Builds production-ready LLM applications, advanced RAG systems, and AI agents with vector search, multimodal AI, agent orchestration, and enterprise integrations. Use for LLM features, chatbots, or AI apps.
Share bugs, ideas, or general feedback.
This is a meta-skill that helps you choose the right R AI package. The R AI stack consists of 5 specialized packages, each with its own skill.
Install all: install.packages(c("ellmer", "btw", "mcptools", "ragnar", "vitals"))
API keys: Set OPENAI_API_KEY or ANTHROPIC_API_KEY in .Renviron
references/integration-patterns.md - How packages work together in workflowsFor per-package API docs, invoke the corresponding package skill (/r-ellmer, /r-btw, /r-mcptools, /r-ragnar, /r-vitals).
| Package | Use When | Skill |
|---|---|---|
| ellmer | Chat with any LLM from R | /r-ellmer |
| btw | Provide R context (docs, data) to LLMs | /r-btw |
| mcptools | Let agents (Claude Code) run R code | /r-mcptools |
| ragnar | LLM searches your documents (RAG) | /r-ragnar |
| vitals | Test LLM output quality | /r-vitals |
Navigation: When you know which package you need, invoke the specific skill above.
btw vs mcptools:
ellmer vs ragnar:
library(ellmer)
library(btw)
chat <- chat_openai()
chat$set_tools(btw_tools())
library(ellmer)
library(ragnar)
chat <- chat_openai()
ragnar_register_tool_retrieve(chat, store)
library(mcptools)
mcp_session() # In console, each startup
# Now Claude Code can run R code
library(ellmer)
chat <- chat_ollama(model = "llama3.2")
library(ragnar)
store <- ragnar_store_create("local.duckdb",
embed = ragnar_embed_ollama(model = "nomic-embed-text"))
library(vitals)
library(ellmer)
library(ragnar)
chat <- chat_openai()
ragnar_register_tool_retrieve(chat, store)
task <- Task$new(
dataset = test_cases,
solver = function(input) chat$chat(input, echo = "none"),
scorer = model_graded_qa()
)
task$run()
See references/ for:
For package-specific documentation, invoke the individual package skills above.