Cronboard for Managing Cron Jobs from a Terminal
A terminal-based dashboard for managing cron jobs locally and on servers.
At a glance
- What is it?
- Cronboard is a Python-based terminal application for adding, editing, pausing, searching, and deleting cron jobs on a local machine or a remote server. It combines a Textual interface with cron parsing, SSH access, log inspection, and optional Telegram failure notifications.
- Who is it for?
- Cronboard is suitable for operators who want a terminal workflow for local or remote cron management and value a graphical terminal interface over direct crontab editing. It is a poor fit for environments without cron, Python 3.13, or the required permissions.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 28 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Cronboard's Local and Remote Cron Management Scope
Cronboard addresses the operational gap between writing a crontab entry and understanding what the scheduler is doing on a host. The README describes a terminal application for managing and scheduling cron jobs on local machines and remote servers. Its intended users are system operators, developers, and DevOps practitioners who need to inspect or change scheduled commands without leaving the terminal. The application supports adding, editing, pausing, resuming, searching, and deleting jobs. It also provides checks for jobs, access to logs, formatted last and next run times, and human-readable feedback during creation and editing.
The project is narrower than a general job scheduler because it is centered on cron jobs and their crontab entries. It does not present itself as a replacement for systemd timers, continuous workflow engines, or application-level schedulers. That boundary matters for evaluation. A team that needs dependency-aware retries, distributed execution, or durable workflow state may find a dedicated scheduler more appropriate. Cronboard instead focuses on the existing cron ecosystem and gives that mechanism an interactive terminal surface.
The remote-server feature is equally specific. According to the README, Cronboard can connect over SSH using either a password or an SSH key. It can also manage jobs for another user when the operator has the required sudo permissions. This makes permission and host access part of the feature set rather than an incidental deployment detail.
Textual, Cron Parsing, and SSH Data Flow
Cronboard is built with Textual, python-crontab, Paramiko, and cron-descriptor. The repository's `pyproject.toml` also lists `croniter`, `textual-autocomplete`, `tomlkit`, and `bcrypt`, which indicates that the application includes cron calculation, terminal completion, configuration handling, and password-related support alongside the headline components. The exact internal module boundaries are not described in the README, so the precise object flow cannot be confirmed. The visible architecture can nevertheless be stated without speculation.
The terminal interface is the control surface. Textual supplies the application interface and footer that shows available commands. When an operator creates or edits a job, Cronboard validates the schedule and provides human-readable feedback. Path autocompletion starts from the home directory of the user whose cron jobs are being managed. The operator can accept a suggestion with the `Tab` key. This reduces the need to type long paths while editing commands, especially when the target user is not the person running Cronboard.
For a remote target, Paramiko is the documented SSH library. The README states that password authentication and SSH-key authentication are supported. For key-based connections, Cronboard looks for `known_hosts` in the default `~/.ssh/known_hosts` location. The interface then presents the jobs associated with the selected target and allows the same core management operations. Cron-descriptor is used to present cron expressions in human-readable form, while the README confirms support for both ordinary cron schedules and special expressions such as `@daily`, `@yearly`, and `@monthly`. The displayed last and next run times are intended to make schedule interpretation easier.
Failure notifications use Telegram. Cronboard can send a notification when a cron job fails after a Telegram token and chat ID are entered in the settings panel. The documentation points users to its configuration guide for instructions on obtaining those values. The repository information does not specify the transport details, retry behavior, or storage format for those settings.
Installing Cronboard and Starting the TUI
Cronboard requires the `cron` system tooling to be installed and available before it is used. The README gives this prerequisite check:
where crontabThe command should locate the `crontab` executable. The README does not provide a full operating-system installation recipe for `cron`, nor does it reproduce the package installation steps. It directs users to the official installation documentation at `https://cronboard.dev/installation`. That is also where users should obtain current instructions for installing Cronboard, including the method that matches their environment.
If Cronboard is installed with `pip` or `uv`, Python 3.13 or newer is required. The `pyproject.toml` confirms the project requirement as `>=3.13`. After installation, launch the application with the documented console command:
cronboardThe command starts the terminal interface. The Textual footer should show the available commands, so the first check is that the interface opens and exposes its command hints. The README does not document a separate login screen, and it does not provide a command-line flag for connecting to a specific server. The operator must follow the interface and official documentation for the exact connection flow.
For SSH-key connections, verify that the relevant `known_hosts` file exists at `~/.ssh/known_hosts`. If managing another user's jobs, confirm that the account has the necessary sudo access before attempting the operation. Those permissions are explicit prerequisites in the README, not assumptions that Cronboard will discover or request automatically.
Creating, Inspecting, and Troubleshooting Cron Jobs
The main interaction is job editing with validation and path completion. Start a create or edit operation from the TUI, enter the schedule and command, and use `Tab` when the path autocomplete offers a filesystem path. Cronboard accepts special expressions including `@daily`, `@yearly`, and `@monthly`, so a schedule does not have to be expressed only through five cron fields. The application supplies feedback while the job is being created or edited, which can help identify invalid input before it reaches the scheduler.
After a job exists, Cronboard can show its formatted last and next run times. That display is useful for checking whether a schedule represents the intended cadence. The README also says Cronboard can check cron jobs, view their logs, and detect potential issues when running. The precise set of checks and the wording of issue messages are not included in the README, so an operator should not assume that Cronboard diagnoses every class of cron failure. Its role is to expose job status and relevant information in the terminal.
Search is case-insensitive by keyword. Pause and resume provide a way to stop submitting a schedule without deleting its definition. Editing preserves the ability to correct a command or schedule, while deletion removes the job from the managed crontab. These operations are distinct from investigating why a command fails. A job can run successfully according to the scheduler and still fail inside the application that the command invokes, and Cronboard's Telegram option is specifically tied to cron job failure notifications rather than general application monitoring.
The TUI is most useful when the operator needs several cron operations in sequence: inspect a schedule, read its logs, edit the command, check the next run, and resume or pause it. For a one-line ad hoc command, the direct `crontab` interface remains shorter because it avoids opening an application and navigating screens.
Telegram Alerts, Permissions, and Configuration Boundaries
Telegram notifications are optional and require two values in the settings panel: a Telegram token and a Telegram chat ID. The README links to Cronboard's configuration guide for obtaining them. It does not document the exact configuration file, environment variables, encryption format, polling interval, or message retention policy. That omission matters before an organization connects a production server to a notification channel.
Cronboard also supports two distinct access concerns. The first is authentication to the remote host through SSH, with either a password or an SSH key. The second is authorization to modify another user's cron table, which in practice requires suitable sudo access according to the README. The project does not claim to bypass either control. Its support for managing another user's jobs should be read as a feature for operators who already have the required privileges.
The `known_hosts` behavior is explicit for SSH keys: Cronboard looks in the default `~/.ssh/known_hosts` location. The README does not describe a separate host-key import workflow, alternate known-hosts path, or behavior for an unknown host. Operators should therefore confirm that the target host is present in the expected file before diagnosing connection behavior.
Failure alerts are also narrower than a full incident system. The README says Cronboard can notify via Telegram when a cron job fails, but it does not claim delivery guarantees, escalation policies, retries, deduplication, or support for multiple recipients. Those behaviors should be verified against the official configuration documentation and the relevant release notes before being relied upon operationally.
Maintenance, Licensing, and Upgrade Cost
The repository is not archived. Its last push was on 2026-09-25, and the release history lists `v1.2.1` on 2026-09-25, `v1.2.0` on 2026-09-24, and `v1.1.1` on 2026-07-28. Those dates indicate recent project activity, but they do not by themselves establish compatibility, upgrade procedures, or the scope of future changes. The presence of `CHANGELOG.md` in the repository gives maintainers a place to record changes, yet its contents are not available here.
Cronboard is released under `Apache-2.0`, as stated in both the repository description and `pyproject.toml`. That license permits use and modification under its terms, subject to the license text and its notice and patent provisions. This review does not provide legal advice. An organization should review the repository's `LICENSE` file and its own distribution, notice, and compliance obligations when shipping Cronboard internally or in a packaged product.
The Python floor is explicit: version 1.2.1 requires Python 3.13 or newer. Upgrading Python may therefore be a prerequisite for adopting or upgrading Cronboard. The dependency list includes major functional libraries such as Textual, Paramiko, python-crontab, and cron-descriptor, so an upgrade can change both the interface and the libraries handling schedules and SSH. The repository does not document a migration guide for existing crontabs, a rollback procedure, or compatibility guarantees between releases. Those are concrete points to check before replacing a familiar `crontab` workflow in production.
Compared with direct `crontab` editing, Cronboard adds dependencies and a Python runtime, but it also supplies a searchable interface, path completion, log views, schedule descriptions, and Telegram notifications. The operational trade-off is clear: use the TUI when those interactions reduce repeated administrative work, but retain direct cron access when minimal dependencies and immediate text editing are more important.
Cronboard Compared with Direct Crontab Editing
Direct `crontab` editing remains the most immediate alternative because it uses the operating system's native command without adding an application layer. It is a short text workflow: open the crontab editor, modify the relevant entry, save it, and inspect the resulting file. That simplicity is also its weakness for repeated administration. The operator must remember commands, search manually, format schedules mentally, and navigate logs separately.
Cronboard changes the interaction model rather than the scheduler. It keeps cron as the underlying mechanism and adds a Textual interface around it. The documented operations include search, pause, resume, edit, delete, path completion, validation, formatted run times, log viewing, SSH connections, and Telegram failure alerts. The application is therefore more useful for an operator who performs several related tasks against multiple hosts and wants one terminal workflow.
The trade-off is dependency and permission cost. Cronboard requires Python 3.13 or newer when installed with `pip` or `uv`, along with its Python dependencies and the host's `cron` tooling. Remote use also introduces SSH authentication, `known_hosts`, and potentially sudo authorization. Direct crontab editing avoids the Python interface but does not provide the same interactive job browser or Telegram integration. The choice depends on whether the extra interface reduces enough administrative work to justify those requirements.
Editorial conclusion
Cronboard is suitable for operators who want a terminal workflow for local or remote cron management and value a graphical terminal interface over direct crontab editing. It is a poor fit for environments without cron, Python 3.13, or the required permissions. Adoption should first verify the installation instructions at cronboard.dev, the SSH authentication and sudo requirements for each target, and how the configured Telegram token and chat ID are stored before production use.
Frequently asked questions
How do I install Cronboard?
The README directs users to the official installation documentation at `cronboard.dev/installation`. If installing with `pip` or `uv`, Python 3.13 or newer is required, and the `cron` system tooling must already be available.
How do I start Cronboard after installation?
Run the documented `cronboard` command. It opens the terminal interface, whose Textual footer shows the available commands.
Can Cronboard manage cron jobs on a remote server?
Yes. The README states that Cronboard connects to servers over SSH using either a password or an SSH key. For SSH-key connections, it looks for `known_hosts` in the default `~/.ssh/known_hosts` location.
What permissions are needed to manage another user's cron jobs?
The README says that managing cron jobs for another user requires the necessary permissions, which in practice means suitable sudo access.
How does Cronboard notify me about failed cron jobs?
Cronboard can send Telegram notifications when a cron job fails. Enable the feature by entering a Telegram token and chat ID in the settings panel.
Does Cronboard support special cron expressions?
Yes. The README explicitly lists `@daily`, `@yearly`, and `@monthly` as supported special expressions.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/antoniorodr-cronboard)