Architecture¶
Rhylthyme is a modular system with clear separation of concerns across five packages.
System Overview¶
┌─────────────────────────────────────────────────────────────────────┐
│ Rhylthyme Ecosystem │
├─────────────┬─────────────┬──────────────┬────────────┬────────────┤
│ rhylthyme- │ rhylthyme- │ rhylthyme- │ rhylthyme- │ rhylthyme- │
│ spec │ cli-runner │ web │ importers │ examples │
│ │ │ │ │ │
│ Schemas │ CLI │ Flask App │ TheMealDB │ Programs │
│ Validation │ Execution │ DAG Viz │ protocols │ Environ- │
│ Types │ Interactive │ MCP Server │ .io │ ments │
│ │ UI │ AI Chat │ │ │
└─────────────┴─────────────┴──────────────┴────────────┴────────────┘
Packages¶
rhylthyme-spec¶
Schema definitions and validation logic.
schemas/- JSON schema files for programs and environmentsvalidation.py- Schema and semantic validationtypes.py- Python type definitions
rhylthyme-cli-runner¶
Command-line interface and interactive program execution.
cli.py- Click-based CLI with commands: validate, run, plan, environmentsprogram_runner.py- Real-time program execution engine with terminal UIprogram_planner.py- Schedule optimizationvalidate_program.py- Program validationenvironment_loader.py- Environment catalog loadingenvironment_schemas.py- Environment type definitions
rhylthyme-web¶
Web visualization, MCP server, and AI chat.
app.py- Flask application with embedded HTML/JS (single-file app)web/web_visualizer.py- D3.js DAG visualization generatormcp/server.py- MCP server for AI tool integrationrhylthyme/- Core library for program manipulation
rhylthyme-importers¶
Plugins for importing programs from external sources.
base.py- BaseImporter class and ImporterRegistrythemealdb.py- Import recipes from TheMealDB APIprotocolsio.py- Import lab protocols from protocols.io API
rhylthyme-examples¶
Working examples of programs and environment catalogs.
programs/- Example program JSON filesenvironments/- Environment catalog JSON files
Data Flow¶
CLI Execution¶
User Input → CLI Parsing → Program Loading → Validation → Execution → Interactive UI
↑
Environment Loading (optional)
Web Flow¶
Import Flow¶
Key Design Decisions¶
- Schema-First: JSON schemas define all data structures; validation is automatic
- Optional Environments: Programs run without environments; add them for resource validation
- Modular Packages: Each concern is a separate installable package
- Single-File Web App:
app.pycontains HTML, CSS, JS, and all endpoints for easy deployment - Plugin Architecture: Importers use a registry pattern for extensibility