MCPcopy Index your code
hub / github.com/antoniorodr/cronboard

github.com/antoniorodr/cronboard @v0.7.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.7.1 ↗ · + Follow
312 symbols 962 edges 42 files 23 documented · 7%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

cronboard

[!important] Cronboard was selected as the Terminal Trove Tool of the Week in October 28th 2025!

[!caution] Status: Under development

ℹ️ About

Cronboard is a terminal application for managing and scheduling cron jobs on local and remote servers. You can add, edit, pause, resume, search, and delete jobs from a Textual-based interface.

Full documentation is available at cronboard.dev.

🎬 Demo

Cronboard demo

✨ Features

  • Check cron jobs, view the logs, and detect potential issues when running
  • Autocompletion for paths when creating or editing cron jobs
  • Create cron jobs with validation and human-readable feedback
  • Pause/resume, edit and delete cron jobs
  • View formatted last and next run times
  • Accept special expressions like @daily, @yearly, and @monthly
  • Connect to servers over SSH with either a password or SSH keys
  • Manage cron jobs for another user when you have the required sudo permissions
  • Search for cron jobs using case-insensitive keywords

🛠️ Technologies

The project is built with:

📋 Requirements

Before starting, make sure cron is installed and available on your machine:

where crontab

If you install Cronboard with pip or uv, you also need Python 3.13 or newer.

📦 Installation

For installation instructions, please refer to the official documentation.

🚀 Getting Started

Once installed, run:

cronboard

Cronboard includes a footer, provided by Textual, that shows the available commands.

[!note] When connecting to a remote server with an SSH key, Cronboard looks for the known_hosts file in the default location: ~/.ssh/known_hosts.

[!important] If you choose to manage cron jobs for another user, make sure you have the necessary permissions. In practice, that means you need sudo access.

⌨️ Autocompletion

Path autocompletion when creating or editing cron jobs helps you enter file paths faster.

The default starting point for autocompletion is the home directory of the user whose cron jobs you are managing. Accept a suggestion with the Tab key.

❤️ Do you like my work?

If you find the project useful, you can support the author here:

GitHub Sponsor

Core symbols most depended-on inside this repo

find_if_cronjob_exists
called by 9
src/cronboard/widgets/CronTable.py
check_action
called by 8
src/cronboard/widgets/LogView.py
action_refresh
called by 7
src/cronboard/widgets/CronTable.py
get_log_files
called by 6
src/cronboard/services/logging/logger.py
read_log_file
called by 6
src/cronboard/services/logging/logger.py
wrap_command
called by 6
src/cronboard/services/logging/cron_wrapper.py
_show_error
called by 5
src/cronboard/screens/CronCreator.py
_parse_host_info
called by 5
src/cronboard/screens/CronSSHModal.py

Shape

Function 147
Method 143
Class 21
Route 1

Languages

Python100%
TypeScript1%

Modules by API surface

src/cronboard/widgets/LogView.py48 symbols
tests/services/logging_service/cron_wrapper_test.py35 symbols
src/cronboard/widgets/CronTable.py27 symbols
tests/conftest.py22 symbols
src/cronboard/app.py21 symbols
src/cronboard/screens/CronServers.py19 symbols
tests/services/logging_service/logger_test.py15 symbols
tests/widgets/LogView_test.py13 symbols
src/cronboard/services/logging/cron_wrapper.py13 symbols
src/cronboard/screens/CronCreator.py13 symbols
tests/screens/CronSSHModal_test.py10 symbols
tests/screens/CronDeleteConfirmation_test.py9 symbols

For agents

$ claude mcp add cronboard \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page