ai-cron
AI-Powered Cron Job Generator with Modern Web UI
Transform natural language into cron expressions using AI. Built with privacy in mind, supporting both local (Ollama) and cloud AI models (Google Gemini, OpenAI, Anthropic Claude, etc.).
✨ Features
-
🤖 Multi-Model AI Support
- Local Privacy: Ollama (Llama 3, Mistral) - No internet required
- Cloud Power: Google Gemini, OpenAI GPT-4o, Anthropic Claude, DeepSeek, xAI Grok
- Smart Fallback: Automatic model switching when Ollama is unavailable
-
💻 Modern Web UI
- Natural Language Chat: Generate cron jobs conversationally
- Backup Wizard: Guided file backup scheduling with progress tracking
- AI Settings: Configure models, API keys, and endpoints
-
⚡ Smart Features
- Instant Validation: Verify cron expressions before scheduling
- Next Run Preview: See upcoming execution times
- One-Click Deploy: Add to system crontab directly from UI
📦 Installation
Prerequisites
- Python 3.10+
- Poetry (recommended) or pip
Option 1: Using Poetry (Recommended)
git clone https://github.com/dev-droid/ai-cron.git
cd ai-cron
poetry install
Option 2: Using pip
git clone https://github.com/dev-droid/ai-cron.git
cd ai-cron
pip install -r requirements.txt # Or: pip install -e .
Optional: Install Ollama (for local AI)
- Windows: Download Ollama
- macOS:
brew install ollama - Linux:
curl -fsSL https://ollama.com/install.sh | sh
After installing Ollama, pull a model:
ollama pull llama3
🚀 Usage
Web UI (Recommended)
# Using Poetry
poetry run python -m aicron.main web --port 8080
# Using pip
python -m aicron.main web --port 8080
Then open http://localhost:8080 in your browser.
CLI Mode
# Using Poetry
poetry run python -m aicron.main "Backup home folder every Friday at 5pm"
# Using pip
python -m aicron.main "Backup home folder every Friday at 5pm"
⚙️ Configuration
Environment Variables
For users in regions requiring a proxy (e.g., China for Google Gemini):
# Set proxy for AI API requests
export AICRON_PROXY="http://127.0.0.1:7890"
# Or set system-wide proxy (automatically detected)
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
API Keys (Cloud AI Models)
Configure via the Web UI Settings tab or export as environment variables:
# Google Gemini
export GEMINI_API_KEY="<YOUR_GEMINI_API_KEY>"
# OpenAI
export OPENAI_API_KEY="<YOUR_OPENAI_API_KEY>"
# Anthropic Claude
export ANTHROPIC_API_KEY="<YOUR_ANTHROPIC_API_KEY>"
📂 Project Structure
ai-cron/
├── aicron/
│ ├── __init__.py # Package version
│ ├── main.py # CLI entry point (Typer)
│ ├── web.py # Web UI (NiceGUI)
│ ├── llm.py # AI model integration (LiteLLM)
│ ├── cron.py # Cron validation & system integration
│ ├── llm_tools.py # File system context tools
│ └── ollama_utils.py # Ollama installation checks
├── tests/
│ └── test_llm_logic.py # Unit tests
├── pyproject.toml # Poetry dependencies
├── LICENSE # MIT License
└── README.md # This file
🛠️ Development
Run tests:
poetry run pytest
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
Copyright (c) 2025 dev-droid. All rights reserved.
🤝 Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
🌟 Acknowledgments
Metadata
Release files for ai-cron 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ai_cron-0.2.0.tar.gz | 14.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ai_cron-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.9 kB
Release files / ai_cron-0.2.0.tar.gz
| Download URL | ai_cron-0.2.0.tar.gz |
|---|---|
| Size | 14.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
92abaaa2440c4907ae942e04f93a3079eb32eaec42c78b713e730a2f95752a62
|
|
BLAKE2b-256 checksum How to use checksums |
86d0d2e9717a0122489eee298e0fad48ad3e4e60c5e9fd88dc044e46fc31ca2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|
Release files / ai_cron-0.2.0-py3-none-any.whl
| Download URL | ai_cron-0.2.0-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eb07e42ac6c744f77e7f5febf730a2041fe4bfa59d5c7a0901f614532dfdaf4b
|
|
BLAKE2b-256 checksum How to use checksums |
d8f1fecf39ff73b60db863817f3e8d9628ee92208a84c893ecb45a92e66f1c0c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|