rlm

Verified·Scanned 2/17/2026

Use RLM (Recursive Language Models) for verified code execution, calculations, data analysis, and task decomposition. Executes Python code iteratively until producing verified results - no LLM guessing.

from clawhub.ai·v353cc8d·6.5 KB·0 installs
Scanned from 1.4.0 at 353cc8d · Transparency log ↗
$ vett add clawhub.ai/eesb99/rlm

RLM - Recursive Language Models

Execute tasks with verified code execution via mcporter MCP bridge.

RLM writes and executes Python code iteratively until it produces a verified answer. Unlike direct LLM responses, RLM computations are 100% accurate for calculations.

Prerequisites

1. Install mcporter (MCP bridge)

npm install -g mcporter

2. Install RLM MCP Server

Option A: Clone and setup (recommended)

# Clone RLM project
git clone https://github.com/alexzhang13/rlm.git $HOME/rlm
cd $HOME/rlm
pip install -e .

# Create MCP server directory
mkdir -p $HOME/.claude/mcp-servers/rlm/src

# Download MCP server files
curl -o $HOME/.claude/mcp-servers/rlm/src/server.py \
  https://raw.githubusercontent.com/eesb99/rlm-mcp/main/src/server.py
curl -o $HOME/.claude/mcp-servers/rlm/run_server.sh \
  https://raw.githubusercontent.com/eesb99/rlm-mcp/main/run_server.sh
curl -o $HOME/.claude/mcp-servers/rlm/setup.sh \
  https://raw.githubusercontent.com/eesb99/rlm-mcp/main/setup.sh
curl -o $HOME/.claude/mcp-servers/rlm/requirements.txt \
  https://raw.githubusercontent.com/eesb99/rlm-mcp/main/requirements.txt

# Setup venv and install dependencies
chmod +x $HOME/.claude/mcp-servers/rlm/*.sh
cd $HOME/.claude/mcp-servers/rlm
python3 -m venv venv
venv/bin/pip install -r requirements.txt

Option B: Manual setup

# Create server directory
mkdir -p $HOME/.claude/mcp-servers/rlm/src

# Create venv and install dependencies
cd $HOME/.claude/mcp-servers/rlm
python3 -m venv venv
venv/bin/pip install mcp litellm

# Create run_server.sh
cat > $HOME/.claude/mcp-servers/rlm/run_server.sh << 'EOF'
#!/bin/bash
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR"
export PYTHONPATH="$HOME/rlm:$PYTHONPATH"
export RLM_MODEL="${RLM_MODEL:-openrouter/x-ai/grok-code-fast-1}"
export RLM_SUBTASK_MODEL="${RLM_SUBTASK_MODEL:-openrouter/openai/gpt-4o-mini}"
export RLM_MAX_DEPTH="${RLM_MAX_DEPTH:-2}"
export RLM_MAX_ITERATIONS="${RLM_MAX_ITERATIONS:-20}"
exec "$SCRIPT_DIR/venv/bin/python" -m src.server
EOF
chmod +x $HOME/.claude/mcp-servers/rlm/run_server.sh

3. Configure MCP (for Claude Code)

Add to ~/.mcp.json (replace YOUR_HOME with your actual home path, e.g., /Users/john or /home/john):

{
  "mcpServers": {
    "rlm": {
      "command": "bash",
      "args": ["YOUR_HOME/.claude/mcp-servers/rlm/run_server.sh"]
    }
  }
}

Get your home path: echo $HOME

4. Set API Key

RLM requires an OpenRouter API key:

export OPENROUTER_API_KEY="your-key-here"

5. Verify Installation

# Check mcporter sees RLM
mcporter list | grep rlm

# Test RLM
mcporter call 'rlm.rlm_status()'

Available Tools

ToolUse ForParameters
rlm_executeGeneral tasks, calculationstask (required), context (optional)
rlm_analyzeData analysisdata, question (both required)
rlm_codeGenerate tested codedescription (required), language (optional, default: python)
rlm_decomposeComplex multi-step taskscomplex_task, num_subtasks (default: 5)
rlm_statusCheck system status(none)

Quick Commands

Simple calculation:

mcporter call 'rlm.rlm_execute(task: "calculate 127 * 389")'

First N primes:

mcporter call 'rlm.rlm_execute(task: "calculate the first 100 prime numbers")'

Data analysis:

mcporter call 'rlm.rlm_analyze(data: "[23, 45, 67, 89, 12, 34]", question: "what is the mean, median, and standard deviation?")'

Generate code:

mcporter call 'rlm.rlm_code(description: "function to check if a number is prime")'

Complex task (decomposed):

mcporter call 'rlm.rlm_decompose(complex_task: "analyze a $500K portfolio with 60/30/10 allocation, calculate risk metrics and 10-year projection", num_subtasks: 5)'

Check status:

mcporter call 'rlm.rlm_status()'

When to Use RLM

Use RLM for:

  • Mathematical calculations requiring precision
  • Statistical analysis (mean, std dev, correlations)
  • Financial calculations (compound interest, NPV, IRR)
  • Algorithm execution (primes, sorting, searching)
  • Data transformations and aggregations
  • Code generation with verification

Don't use RLM for:

  • Simple factual questions (use direct response)
  • Creative writing or brainstorming
  • Tasks requiring web search or real-time data
  • Very simple calculations (2+2)

How It Works

1. You give RLM a task
2. RLM writes Python code to solve it
3. Code executes in sandbox
4. If not complete, RLM iterates
5. Returns verified final answer

Models used:

  • Root: grok-code-fast-1 (fast code execution)
  • Subtasks: gpt-4o-mini (cheap sub-queries)

Configuration

Environment variables:

VariableDefaultDescription
RLM_MODELopenrouter/x-ai/grok-code-fast-1Root execution model
RLM_SUBTASK_MODELopenrouter/openai/gpt-4o-miniSubtask model
RLM_MAX_DEPTH2Max recursion depth
RLM_MAX_ITERATIONS20Max iterations per task
OPENROUTER_API_KEY(required)OpenRouter API key

Server location: $HOME/.claude/mcp-servers/rlm/

Troubleshooting

"Server offline" or "No module named 'mcp'":

# Reinstall dependencies
cd $HOME/.claude/mcp-servers/rlm
python3 -m venv venv
venv/bin/pip install mcp litellm

"mcporter: command not found":

npm install -g mcporter

"rlm not in mcporter list":

  • Check $HOME/.mcp.json exists and has rlm config
  • Verify run_server.sh is executable: chmod +x $HOME/.claude/mcp-servers/rlm/run_server.sh

Slow response:

  • RLM executes real code, typically 10-30 seconds
  • Complex tasks with decomposition take longer

References