Skip to main content

Roblox/Luau AI orchestration system for codebase understanding and scoped edit generation

Project description

Rorchestra

cli AI-powered orchestration for Roblox/Luau codebases.

Rorchestra ingests your Rojo project, builds a dependency graph and hierarchical memory, then uses Gemini CLI agents to investigate context and generate scoped code edits from an interactive REPL.

Features

  • Smart Investigation - Agent-driven context discovery that reads your dependency graph, identifies relevant scripts, and assembles focused context packets before making any edits
  • Hierarchical Memory - Invalidation-driven summaries at script, domain, and project levels that stay fresh automatically when patches are applied
  • Scoped Edits - Multi-file code generation with unified diffs, automatic patch application, and safety gates for high-risk changes
  • MCP Integration - Connects to Roblox Studio MCP servers for live game state queries such as UI existence checks and property reads
  • Token Tracking - Real-time visibility into Gemini API token usage per operation and across your session
  • Plan and Review - Investigate first with --plan, review the context packet, then execute when ready

Installation

pip install rorchestra

Or install from source:

git clone https://github.com/WutIsHummus/rorchestra.git
cd rorchestra
pip install -e ".[dev]"

Requirements

  • Python 3.11+
  • Rojo on PATH for project ingestion
  • Gemini CLI on PATH for AI workers
  • luau-lsp (optional, for static validation)

Quick Start

# Navigate to your Rojo project directory
cd path/to/your/rojo/project

# Launch the REPL
rorchestra

Rorchestra will automatically detect your default.project.json, ingest all scripts, build the dependency graph, generate memory summaries, and drop you into the interactive REPL.

Commands

Command Description
/edit <desc> Agent-driven code edit with investigation
/edit <desc> --plan Investigate and review before executing
/edit <desc> --debug Show full internal context sent to the worker
/ask <question> Ask questions about your codebase
/status Show repo stats, scripts, domains, memory health
/ingest <path> Ingest a Rojo project
/summarize Re-summarize all scripts
/plans List and manage saved investigation plans
/tokens Show token usage for this session
/mcp Check MCP server connection status
/skills Load procedural skill memories
/help Show all commands

You can also type naturally without a / to ask questions about your codebase.

Architecture

orchestrator/
├── app/
│   ├── adapters/           Rojo, luau-lsp, Gemini CLI, MCP
│   ├── models/             SQLAlchemy entities and Pydantic schemas
│   ├── services/
│   │   ├── agents/         Investigation orchestrator and tool definitions
│   │   ├── ingest/         Rojo project scanner and graph builder
│   │   ├── memory/         Invalidation-driven memory system
│   │   ├── mcp/            MCP capability router (primary + fallback)
│   │   ├── packets/        Context packet assembler with token budgets
│   │   ├── summarization/  Parallel script and domain summarizer
│   │   └── workers/        Edit worker lifecycle and patch application
│   ├── policies/           Safety gates and MCP trigger policy
│   ├── telemetry/          JSONL event logging and metrics
│   └── storage/            SQLite ORM and file artifact store

How It Works

  1. Ingest - Scans your Rojo project tree, extracts all Luau scripts, and builds a require() dependency graph.
  2. Summarize - Generates concise AI summaries for every script and domain, stored as invalidation-driven memory records.
  3. Investigate - When you request an edit, agents explore the dependency graph to find all relevant scripts, identify invariants and risks.
  4. Edit - A focused context packet within the token budget is sent to a Gemini CLI worker that generates a unified diff.
  5. Apply - The diff is applied to your source files and affected memory records are invalidated for re-summarization.

Configuration

All settings can be overridden via environment variables with the ORCH_ prefix:

Variable Default Description
ORCH_GEMINI_CLI_BIN gemini Path to Gemini CLI
ORCH_ROJO_BIN rojo Path to Rojo binary
ORCH_ROBLOX_STUDIO_MCP_EXE (empty) Path to official Roblox Studio MCP
ORCH_COMMUNITY_MCP_ENTRYPOINT npx -y robloxstudio-mcp@latest Community MCP command
ORCH_DEFAULT_TOKEN_BUDGET 64000 Token budget for context packets
ORCH_WORKER_TIMEOUT_SECS 300 Timeout for worker invocations

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

rorchestra-1.0.0.tar.gz (87.8 kB view details)

Uploaded Source

Built Distribution

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

rorchestra-1.0.0-py3-none-any.whl (101.2 kB view details)

Uploaded Python 3

File details

Details for the file rorchestra-1.0.0.tar.gz.

File metadata

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

File hashes

Hashes for rorchestra-1.0.0.tar.gz
Algorithm Hash digest
SHA256 124e5ca53e6ec763a570e9a2b50379d896d18691a226b791aba332f6f44e68c3
MD5 95e16842818f4793e7a1adc8a57882d8
BLAKE2b-256 cd1e552e21e4e7a4448d9e275b6b00c526e4dbc5679137df1513cbe5d91cc857

See more details on using hashes here.

Provenance

The following attestation bundles were made for rorchestra-1.0.0.tar.gz:

Publisher: publish.yml on WutIsHummus/Rorchestra

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

File details

Details for the file rorchestra-1.0.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for rorchestra-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2559832aad55150f414bc1eb1797ffc50323609f7d3e73d64704ecacf92a131
MD5 8bc28995da222e16af552f78f32f5fca
BLAKE2b-256 2bd69dc1b424289c4d5a707469cadd8d5d632bd7892940360685421b03fbe62c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rorchestra-1.0.0-py3-none-any.whl:

Publisher: publish.yml on WutIsHummus/Rorchestra

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