A personal automation hub and task scheduler. Orchestrates daily workflows, integrates with AI models, compiles email templates, and exposes a CLI client and background Cron daemon.
Single-tenant, non-authenticated architecture designed to run directly on your server or local machine.
To deploy Solomon on your server, clone the repository, install dependencies, seed the database, register the global solomon CLI alias, and start the background Cron daemon:
curl -sSL https://raw.githubusercontent.com/stanleygomes/solomon/refs/heads/master/scripts/bootstrap.sh | bashSolomon is split into three main modules:
| Module | Description |
|---|---|
cli/ |
Typer-based CLI client β interactive workflow command runner (solomon chat) |
cron/ |
Background daemon running scheduled jobs (APScheduler) |
core/ |
Shared domain logic β services, database, workflows |
All shortcuts are in the Makefile.
make installRun interactive or direct chat commands:
make cli # Interactive mode: select action & input message
# Or run direct subcommands via uv:
uv run src/cli/main.py chat # Interactive mode
uv run src/cli/main.py chat /daily-bread "good morning" # Direct execution
uv run src/cli/main.py update # Re-run bootstrap script to update installationIf installed via bootstrap.sh, use the global solomon command:
solomon chat
solomon chat /daily-bread
solomon updatemake seed # Run database migrations and seedersmake cron # Start cron daemon in foreground
make status # Check process status (RUNNING/STOPPED, PID, memory, uptime)
make logs # Tail application and cron logs in real timemake lint # Check with ruff
make format # Fix & format with ruff
make clean # Remove cache, venv, temp filesCopy .env.example to .env and fill in your values:
cp .env.example .envGenerates and sends a daily Bible study via email.
- Runs an AI prompt template (
daily-bread.md) - Renders output into a styled HTML email (Jinja2 + themes)
- Delivers via SMTP
Important
Once-per-day lock: Repeat executions on the same calendar day are skipped automatically via database log checks.
Automated daily study routines for any topic.
- Planning β generates a structured syllabus for an
ACTIVEcourse using an AI prompt, parses the response as JSON, and persists lessons in the database. - Execution β retrieves the lesson for today, generates full content via AI, compiles a themed HTML email, sends it, and marks the lesson as completed.
| Layer | Technology |
|---|---|
| Runtime | Python 3.14+ via uv |
| CLI | Typer + InquirerPy |
| Scheduler | APScheduler |
| Persistence | SQLite + Peewee ORM |
| AI Orchestration | Custom multi-provider client (Copilot, Antigravity, etc.) |
| Templates | Jinja2 |
| Mail Delivery | SMTP with TLS/STARTTLS |
| Logging | Loguru |
| Code Quality | Ruff |
This project is licensed under the MIT License - see the LICENSE file for details.