Skip to main content

Claude-powered code review orchestrator that coordinates specialized review agents

Project description

Reldo

"The librarian has reviewed your code."

A Claude-powered code review orchestrator that coordinates specialized review agents.

Named after the Varrock Palace librarian in RuneScape who researches and checks things against ancient tomes.

Installation

# From PyPI
pip install reldo

# Or with uv
uv tool install reldo

Usage

As a Library

from reldo import Reldo, ReviewConfig
from pathlib import Path

# Load config from file
config = ReviewConfig.from_file(Path(".claude/reldo.json"))
reldo = Reldo(config=config)

# Run a review - single prompt argument
result = await reldo.review(
    prompt="Review app/Models/User.php for backend conventions. Context: Added user registration."
)

print(result.text)
print(f"Tokens used: {result.total_tokens}")

As a CLI

# Basic review
reldo review --prompt "Review app/Models/User.php"

# With JSON output (for CI)
reldo review --prompt "Review $(git diff --name-only HEAD)" --json --exit-code

# With custom config
reldo review --prompt "..." --config .claude/reldo.json

Configuration

Create .claude/reldo.json:

{
  "prompt": ".claude/reldo/orchestrator.md",
  "allowed_tools": ["Read", "Glob", "Grep", "Bash", "Task"],
  "mcp_servers": {
    "my-server": {
      "command": "node",
      "args": ["./mcp-server.js"]
    }
  },
  "agents": {
    "backend-reviewer": {
      "description": "Reviews PHP/Laravel code",
      "prompt": ".claude/reldo/agents/backend-reviewer.md",
      "tools": ["Read", "Glob", "Grep"]
    },
    "frontend-reviewer": {
      "description": "Reviews Vue/TypeScript code",
      "prompt": ".claude/reldo/agents/frontend-reviewer.md"
    }
  },
  "model": "claude-sonnet-4-20250514",
  "timeout_seconds": 300
}

Configuration Options

Option Type Default Description
prompt string required Path to orchestrator prompt file
allowed_tools string[] ["Read", "Glob", "Grep", "Bash", "Task"] Tools available to the orchestrator
mcp_servers object {} MCP server configurations
agents object {} Sub-agent definitions
model string "claude-sonnet-4-20250514" Claude model to use
timeout_seconds int 180 Maximum review duration
cwd string current directory Working directory
logging object {"enabled": true, ...} Logging configuration

Agent Definition

Each agent in the agents object has the following properties:

Property Type Required Description
description string yes Description of when to use this agent
prompt string yes Path to agent prompt file
tools string[] no Tools available to this agent. If omitted, inherits all tools from the orchestrator
model string no Model override ("sonnet", "opus", "haiku", or "inherit")

Tool Inheritance

If you omit the tools property from an agent definition, it inherits all tools from the parent orchestrator, including any MCP server tools:

{
  "allowed_tools": ["Read", "Glob", "Grep", "Bash", "Task"],
  "mcp_servers": {
    "laravel-boost": {
      "command": "php",
      "args": ["artisan", "boost:mcp"]
    }
  },
  "agents": {
    "full-access-reviewer": {
      "description": "Has access to all orchestrator tools + MCP",
      "prompt": ".claude/agents/full-reviewer.md"
    },
    "limited-reviewer": {
      "description": "Only has read access",
      "prompt": ".claude/agents/limited-reviewer.md",
      "tools": ["Read", "Glob", "Grep"]
    }
  }
}

MCP Server Configuration

Reldo supports MCP (Model Context Protocol) servers for extended functionality:

{
  "mcp_servers": {
    "server-name": {
      "command": "executable",
      "args": ["arg1", "arg2"],
      "env": {
        "ENV_VAR": "value"
      }
    }
  }
}

Variable Substitution

MCP server configurations support variable substitution:

  • ${cwd} - Replaced with the working directory
{
  "mcp_servers": {
    "serena": {
      "command": "uvx",
      "args": ["serena", "start-mcp-server", "--project", "${cwd}"]
    }
  }
}

CLI Reference

reldo review --prompt "..."     # Review prompt
             --config PATH      # Config file (default: .claude/reldo.json)
             --cwd PATH         # Working directory
             --json             # Output as JSON
             --verbose          # Verbose logging
             --no-log           # Disable session logging
             --exit-code        # Exit 1 if review fails (for CI)

Documentation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reldo-0.2.0.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reldo-0.2.0-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file reldo-0.2.0.tar.gz.

File metadata

  • Download URL: reldo-0.2.0.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for reldo-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8b9a9b4203bb7de9ba92497a0b7ed539e15d1202e0c3ea0b7a80a5449f90c5f5
MD5 c17a8e3d8ba7b2d5444c900add912b13
BLAKE2b-256 b4147ed87d98f685fd7b7d15d501b31ac8036b2c7e811cc3b3058801f7465c23

See more details on using hashes here.

Provenance

The following attestation bundles were made for reldo-0.2.0.tar.gz:

Publisher: publish.yml on RasmusGodske/reldo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file reldo-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: reldo-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for reldo-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9823366bd97e4e7eac3b25b09c872b19bbef1a65db8c150fe013d645a79ba97e
MD5 f933dcd9f8108852da0f886f2b8dec9d
BLAKE2b-256 4c3e2dfb101653027bea7df1af2bb524b9e1ba970fb1344858b2409c5e22b00f

See more details on using hashes here.

Provenance

The following attestation bundles were made for reldo-0.2.0-py3-none-any.whl:

Publisher: publish.yml on RasmusGodske/reldo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page