View on GitHub

Cultivate Your Tasks.
Season After Season.

Like the wood lily, some tasks are perennial. They return, requiring steady attention. Perennial Task is a command-line utility built to help you manage these recurring responsibilities.

A Radically Simple Philosophy

Perennial Task was built on three core principles that set it apart.

Your Data is Yours. Period.

Each task is a simple XML file. No cloud, no proprietary formats. You can back it up, version control it with Git, or sync it yourself. You have total control.

Perennial, Not Disposable.

Recurring tasks aren't deleted and recreated. They persist, evolving over time. This encourages a mindset of continuous maintenance and habit-building, not just one-off completions.

Live Where You Work.

For developers and power users, the terminal is home. Manage your tasks without context switching. It's faster, scriptable, and integrates perfectly into a keyboard-driven workflow.

Designed for Clarity and Control

A small set of powerful features gives you everything you need and nothing you don't.

Three Task Types

Manage any kind of job with Normal, Due Date, or Recurring tasks.

Interactive Editing

Easily edit any detail of an existing task from a simple menu.

Focused Reporting

Generate clean reports of tasks that are due, overdue, or within their preview window.

Paginated Selection

Never get lost in a long list. Easily navigate and select from a large number of tasks with paginated menus.

$ prn report

OVERDUE: Deploy security patches (was due 3 days ago)

OVERDUE: Water the Plants (was due 1 day ago)

DUE TODAY: Submit weekly report

UPCOMING: Prepare for team meeting (due in 2 days)

Flexible Installation

Install globally with Composer or use the manual installer script.

# 1. Install the package globally.

$ composer global require arthurdick/perennial-task

# 2. Ensure Composer's bin directory is in your PATH.

$ echo 'export PATH="$PATH:$(composer global config bin-dir --absolute -q)"' >> ~/.bashrc

# 3. Apply the changes.

$ source ~/.bashrc

# 4. Start managing tasks!

$ prn create

System Requirements

  • Linux Environment
  • PHP 7.4+ with `SimpleXML` and `DOM` extensions

# 1. Download the package files into a directory.

$ cd /path/to/downloaded/files

# 2. Make the installer executable.

$ chmod +x install.sh

# 3. Run the installer with sudo.

$ sudo ./install.sh

Free and Open Source

Perennial Task is released under the MIT License. Feel free to use, modify, and distribute it. Contributions and feedback are always welcome!