Skip to content

Latest commit

Β 

History

194 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘‘ solomon

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.


πŸš€ Server Setup & Installation

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 | bash

πŸ—οΈ Architecture

Solomon 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

πŸ› οΈ Development

All shortcuts are in the Makefile.

Installation

make install

Running the CLI

Run 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 installation

If installed via bootstrap.sh, use the global solomon command:

solomon chat
solomon chat /daily-bread
solomon update

Database

make seed    # Run database migrations and seeders

Background Cron Daemon, Status & Logs

make 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 time

Code Quality & Cleanup

make lint    # Check with ruff
make format  # Fix & format with ruff
make clean   # Remove cache, venv, temp files

βš™οΈ Configuration

Copy .env.example to .env and fill in your values:

cp .env.example .env

πŸ’‘ Workflows & Features

@daily-bread

Generates and sends a daily Bible study via email.

  1. Runs an AI prompt template (daily-bread.md)
  2. Renders output into a styled HTML email (Jinja2 + themes)
  3. Delivers via SMTP

Important

Once-per-day lock: Repeat executions on the same calendar day are skipped automatically via database log checks.

@classes (Study Planner & Delivery)

Automated daily study routines for any topic.

  • Planning β€” generates a structured syllabus for an ACTIVE course 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.

🧰 Tech Stack

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

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

πŸ‘‘ Solomon - My personal AI agent

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages