A lightweight distributed scheduled task management system developed in Go, designed to replace Linux-crontab.
English · 简体中文
| Agent Auto-Registration | Task Management |
![]() |
![]() |
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
- Container-Aware Memory: Automatically sets
GOMEMLIMITfrom the container's cgroup memory limit to reduce OOM kills in Docker/Kubernetes - Real-Time Task Output: Stream Shell (RPC) stdout/stderr in the Execution Output dialog while a job is running, with reconnect catch-up and acknowledged cancellation
- Log Management: Complete execution logs with auto-cleanup; live output is redacted, size-limited, and persisted efficiently across MySQL / PostgreSQL / SQLite
- 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. The Helm Chart runs in managed mode with two replicas by default: Kubernetes Service load-balances Web/API traffic, database bootstrap is coordinated once, and no shared PVC is required. SQLite remains available for standalone deployments.
# 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.
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.



