Skip to main content

CursedTodo

GitHub Release GitHub License GitHub Actions Workflow Status

CursedTodo is a minimalist, terminal base todo manager storing tasks as .ics files for storage. It can be used with vdirsyncer for CalDAV synchronization. Efforts are made to support most of RFC-5545 and to be compatible with most other projects. It has been tested with vdirsyncer, Nextcloud Tasks and Tasks.org.

Built in Python using the Curses library Cursedtodo has only one direct dependency: ics.

Demo

demo of cursedtodo

Quick look at Cursedtodo in action.

Roadmap

Short term

  • Basic todo list (ordered by priority, show/hide completed)
  • Todo creation, modification, and deletion
  • Arch aur package
  • Other distributions packages
  • Keymaps customization
  • Category filtering
  • Basic CLI for adding todos

Long term

  • Subtasks and linked todos
  • Search

Will not be implemented

  • Mouse support
  • Windows support (PR accepted)

Usage

pip install cursedtodo

Cursedtodo will generate a config.toml files in $XDG_CONFIG_HOME/cursedtodo/ at first start. Keybinds are based on Vim hjkl for movement.

Here is an example config.toml:

[[calendars]]
name= "Default"
path = "~/.local/share/cursedtodos/calendar/default" # should be something like ~/.local/share/vdirsyncer/calendar/work if you are using vdirsyncer
color = "green"
default = false

# UI configuration
[ui]
window_name = "Todos"
show_footer_keybindings = true
select_first = true
rounded_borders = true
date_format = "%m/%d/%y %H:%M:%S"
category_colors = true
confirm_mark_as_done = true

[keybindings]
# general
up = "k"
down = "j"
new = "n"
delete = "x"
edit = "e"
# todo list
mark_as_done = " "
show_completed = "c"
change_order = "o"

# Columns configuration
[[columns]]
property = "calendar.name"
width = 10

[[columns]]
property = "summary"
width = 30

[[columns]]
property = "priority"
width = 15

[[columns]]
property = "due"
width = 25

[[columns]]
property = "categories"
width = 30

[!IMPORTANT]
Cursedtodo is still in early development, expect some bugs and possibly breaking changes to the config file. Please backup your data regularly.

Contributing

We welcome contributions! If you find a bug, have a feature request, or want to improve the project, feel free to open an issue or submit a pull request.

For discussions and suggestions, check out the [issues][https://github.com/FLchs/cursedtodo/issues] page.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Alternatives

Projects with similar goals:

  • Todoman - CLI-based todo manager using .ics
  • Calcurse Terminal-based calendar with a simple built-in todo list
  • Calcure A personal calendar and task manager that supports .ics imports (but not currently support write or export)

Metadata

Release files for cursedtodo 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cursedtodo 0.1.1
File Size Uploaded
cursedtodo-0.1.1.tar.gz 19.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cursedtodo 0.1.1
File Interpreter ABI Platform
cursedtodo-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 51.9 kB

Release files / cursedtodo-0.1.1.tar.gz

Download URL cursedtodo-0.1.1.tar.gz
Size 19.0 kB
Tags Source
SHA-256 checksum
How to use checksums
148cca570bc872320e9a4ba3e328f864f22823fd920b6d1fd5d7ed97a7956169
BLAKE2b-256 checksum
How to use checksums
4fc2f2a22067bbc1bdb3c25fce66472f7e63605e9eb5e319198832278a506130
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via pdm/2.22.3 CPython/3.13.2 Linux/6.8.0-1021-azure

Release files / cursedtodo-0.1.1-py3-none-any.whl

Download URL cursedtodo-0.1.1-py3-none-any.whl
Size 32.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc88b049815aff931086e120f7525af9fe86dacf95a1dbe90b51c40319c0b0e1
BLAKE2b-256 checksum
How to use checksums
d91fd4b6401ca59577bd87cd2e7a6f77cf7f316b023f7a71a65a6ed0968d2504
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via pdm/2.22.3 CPython/3.13.2 Linux/6.8.0-1021-azure
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page