robyn-configο
robyn-config is a comprehensive CLI tool designed to bootstrap and manage Robyn applications. It streamlines your development workflow by generating production-ready project structures and automating repetitive tasks, allowing you to focus on building your business logic.
Think of it as the essential companion for your Robyn projects-handling everything from initial setup with best practices to injecting new feature components as your application grows.
π¦ Installationο
You can simply use Pip for installation.
pip install robyn-config
π€ AI Agent Skillsο
robyn-config also supports AI agent skills, which let agents apply reusable project-specific workflows and guidance.
To add the Robyn Config skills pack, run:
npx skills add Lehsqa/robyn-config-skills
π€ Usageο
π Create a Projectο
To bootstrap a new project with your preferred architecture and ORM, run:
# Create a DDD project with SQLAlchemy (uses uv by default)
robyn-config create my-service --orm sqlalchemy --design ddd ./my-service
# Create an MVC project with Tortoise ORM, locking with poetry
robyn-config create newsletter --orm tortoise --design mvc --package-manager poetry ~/projects/newsletter
# Launch the interactive create UI
robyn-config create -i
Interactive mode defaults destination to . and lets you edit all fields
before confirmation. If you pass flags (for example --orm tortoise),
those values are prefilled in the form and still editable.
Optional infrastructure can be generated alongside the application:
# Add a Redis broker and both supported NoSQL datastores
robyn-config create analytics --broker redis --nosql mongodb,neo4j ./analytics
# Add a Celery worker and its periodic-job scheduler
robyn-config create jobs --worker celery --scheduler ./jobs
# Reuse RabbitMQ for Dramatiq and enable the experimental APScheduler template
robyn-config create events --broker rabbitmq --worker dramatiq --scheduler --worker-exp-mode ./events
The same broker, NoSQL, worker, scheduler, and experimental-mode controls are available as editable fields in interactive mode.
β Add Business Logicο
Once inside a project, you can easily add new entities (models, routes, repositories, etc.) using the add command. This automatically generates all necessary files and wiring based on your projectβs architecture.
# Add a 'product' entity to your project
cd my-service
robyn-config add product
This will:
Generate models/tables.
Create repositories.
Setup routes and controllers.
Register everything in the app configuration.
Respect your configured paths:
addreads injection targets from[tool.robyn-config.add]inpyproject.toml(e.g., domain/operational/presentation paths for DDD or views/repository/urls for MVC). You can customize those paths before runningaddto steer where new code is written.
π‘οΈ Add Admin Panelο
Add admin panel scaffolding to an existing project:
cd my-service
robyn-config adminpanel
This generates a default superadmin with credentials admin/admin.
You can override the default superadmin credentials when scaffolding:
robyn-config adminpanel -u superadmin -p super-secret-password ./my-service
This will:
Add an
adminpanelmodule to your project and register it in the application.Provide a modern admin UI with Dark/Light themes.
Auto-discover available project models and show them in the admin navigation.
Enable CRUD operations for discovered model tables.
Bootstrap admin authentication with a default superadmin user (configurable via
-u/--usernameand-p/--password).
π Add Monitoringο
Set up a full observability stack for an existing project:
cd my-service
robyn-config monitoring
This will:
Add a
/metricsendpoint to your Robyn app exposing Prometheus metrics.Install
prometheus-clientinto your project dependencies.Generate a
docker-compose.monitoring.ymlthat starts Grafana Alloy, Loki, Prometheus, and Grafana.Configure Alloy to collect container logs from the
appservice and scrape the/metricsendpoint every 15 seconds.Provision two Grafana dashboards out of the box:
Logs β live log stream with search bar and stdout/stderr filter.
Metrics β CPU, memory, open file descriptors, GC activity, and process info.
Start the monitoring stack alongside your app:
docker compose up -d
docker compose -f docker-compose.monitoring.yml up -d
Grafana is available at http://localhost:3000 (anonymous admin access enabled by default).
π CLI Optionsο
Usage: robyn-config [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
add Add new business logic to an existing robyn-config project.
adminpanel Add admin panel scaffolding to an existing robyn-config project.
create Copy the template into destination with specific configurations.
monitoring Add observability stack to an existing robyn-config project.
create command options:
name: Sets the project name used in templated files likepyproject.tomlandREADME.md. Required unless-iis used.-i,--interactive: Launch a Textual terminal UI to fill create options interactively.--orm: Selects the database layer. Options:sqlalchemy(default),tortoise.--design: Toggles between the architecture templates. Options:ddd(default),mvc.--package-manager: Choose how dependencies are locked/installed. Options:uv(default),poetry.--broker: Add message broker settings, infrastructure templates, and a Docker Compose service. Options:none(default),redis,rabbitmq,kafka.--nosql: Add optional NoSQL datastore templates and Docker Compose services. Supported providers:mongodb,neo4j. Repeat the flag or pass comma-separated values to select both, for example--nosql mongodb,neo4j.--worker: Add a background worker template and queue configuration. Options:none(default),celery,rq,dramatiq,huey. Compatible selected brokers are reused; otherwise the generated worker uses the default Valkey service.--scheduler: Generate periodic-job scheduling for the selected worker. For RQ this adds--with-schedulerunless experimental mode is enabled.--worker-exp-mode: Enable an opt-in worker integration where supported: Celery with Kafka transport, RQ cron with--scheduler, or Dramatiq APScheduler with--scheduler.destination: The target directory. Defaults to.(including in interactive mode).
add command options:
name: The name of the entity/feature to add (e.g.,user,order-item).project_path: Path to the project root. Defaults to current directory.
adminpanel command options:
-u,--username: Default superadmin username injected into generated bootstrap code. Defaults toadmin.-p,--password: Default superadmin password injected into generated bootstrap code. Defaults toadmin.project_path: Path to the project root. Defaults to current directory.
monitoring command options:
project_path: Path to the project root. Defaults to current directory.
π Python Version Supportο
robyn-config is compatible with the following Python versions:
Python >= 3.11
Please make sure you have the correct version of Python installed before starting to use this project.
π‘ Featuresο
Rapid Scaffolding: Instantly generate robust, production-ready Robyn backend projects.
Integrated Component Management: Use the CLI to inject models, routes, and repositories into your existing architecture, ensuring consistency and best practices.
Architectural Flexibility: Native support for Domain-Driven Design (DDD) and Model-View-Controller (MVC) patterns.
ORM Choice: Seamless integration with SQLAlchemy or Tortoise ORM.
Package Manager choice: Lock/install via uv (default) or poetry, with fresh lock files generated in quiet mode.
Broker Scaffolding: Generate ready-to-run Redis, RabbitMQ, or Kafka infrastructure with settings, environment defaults, and Docker Compose services.
NoSQL Scaffolding: Select MongoDB, Neo4j, or both and generate provider-specific infrastructure templates and Docker Compose services.
Worker Scaffolding: Generate Celery, RQ, Dramatiq, or Huey worker templates with broker-aware queue wiring and optional periodic-job scheduling.
Admin Panel Scaffolding:
adminpanelbuilds an ORM-aware admin module, auto-wires routes, and supports custom superadmin credentials.Observability Stack:
monitoringinjects a/metricsendpoint and provisions Alloy + Loki + Prometheus + Grafana with pre-built dashboards for logs and metrics.Resilient operations:
createcleans up generated files if it fails;add,adminpanel, andmonitoringroll back with a temporary project backup on errors.Production Ready: Includes Docker, Docker Compose, and optimized configurations out of the box.
DevEx: Pre-configured with
ruff,pytest,black, andmypyfor a superior development experience.AI Agent Skills: Installable skills support for AI agents to streamline specialized workflows.
ποΈ How to contributeο
π Get startedο
Feel free to open an issue for any clarifications or suggestions.
βοΈ To Develop Locallyο
Prerequisitesο
Python >= 3.11
uv(recommended) orpip
Setupο
Clone the repository:
git clone https://github.com/Lehsqa/robyn-config.git
Setup a virtual environment and install dependencies:
uv venv && source .venv/bin/activate uv pip install -e ".[dev]"
Run linters and tests:
make check
β¨ Special thanksο
Special thanks to the Robyn team for creating such an amazing framework!