English | 简体中文
A lightweight distributed scheduled task management system developed in Go, designed to replace Linux-crontab.
Full documentation is available at: document
- 🚀 Quick Start - Installation and deployment guide
- 🤖 Agent Auto-Registration - One-click task node deployment
- ⚙️ Configuration - Detailed configuration guide
- 🔌 API Documentation - API reference
- Web Interface: Intuitive task management interface
- Second-level Precision: Supports Crontab expressions with second precision
- High Availability: Database-lock-based leader election, automatic failover in seconds
- Task Retry: Configurable retry policies for failed tasks
- Task Dependency: Supports task dependency configuration
- Access Control: Comprehensive user and permission management
- 2FA Security: Two-Factor Authentication support
- Agent Auto-Registration: One-click installation for Linux/macOS
- MCP Support: Remote management by AI clients (Claude Desktop, Cursor, etc.) via the Model Context Protocol, secured with web-managed access tokens
- AI Assist: Natural-language to cron expression, AI-powered failure-log diagnosis, and an in-app AI ops chat assistant (query tasks/logs/hosts/templates, diagnose failures), backed by any OpenAI-compatible model (configurable endpoint, also works with self-hosted/local models)
- Multi-Database: MySQL / PostgreSQL / SQLite support
- Log Management: Complete execution logs with auto-cleanup
- Notifications: Email, Slack, Webhook support
The fastest way to try gocron is Docker Compose (builds the image from source locally):
# 1. Clone the project
git clone https://github.com/gocronx-team/gocron.git
cd gocron
# 2. Start services
docker compose up -d
# 3. Access Web Interface
# http://localhost:5920For production, binary deployment is recommended. See the Installation Guide for all methods (Binary, Docker, Kubernetes, Development).
Deploy multiple gocron instances pointing to the same MySQL/PostgreSQL database. Leader election is automatic — no extra configuration needed. SQLite runs in single-node mode.
# Node 1
./gocron web --port 5920
# Node 2 (same database)
./gocron web --port 5921See the High Availability Guide for setup details, K8s deployment, and environment variable overrides.
| Agent Auto-Registration | Task Management |
![]() |
![]() |
Contributions are welcome! See CONTRIBUTING.md for the full guide.
One thing to note: commit messages are validated by a git hook
(commitlint), so use the
interactive commit tool instead of git commit:
pnpm install # first-time setup (installs git hooks)
pnpm run commit # create a properly formatted commitThis project is licensed under the MIT License. See the LICENSE file for details.



