Skip to main content

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

  • Built with LiteLLM for unified AI API access
  • UI powered by NiceGUI
  • Inspired by the need for privacy-first AI tooling

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)

Source distribution for ai-cron 0.2.0
File Size Uploaded
ai_cron-0.2.0.tar.gz 14.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ai-cron 0.2.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page