NextCloud tasks TUI
Responsive console client for NextCloud todo lists, featuring convenient browsing and all common operations on lists and their tasks. Mouse support included.
The default NextCloud Tasks App allows to manage task lists in calendars, which can be synced across devices via iCal todos. The corresponding WebGUI can be inconvenient or sluggish for some use-cases, though. Also, the frontend might not be exposed or reachable, so a terminal client that can work with tunnels or in SSH sessions could come in handy.
This project bases on the async NextCloud tasks API library for WebDAV API communication and XML/iCal parsing.
On all found task lists, creating, (un-)completing, editing, and deleting tasks is supported, also for arbitrarily nested sub-tasks rendered as tree structure. Depending on preference, all interactions can be done by mouse or via keybindings, which are accessible from the statusbar. Changes to tasks are synchronized in the background, dialogs prompting for input are only shown when needed. Task descriptions feature live Markdown syntax highlighting. The interface is built using the textual framework.
Usage
Start the client by providing the URL of the NextCloud installation, a login prompt will ask for credentials. Using an App Password instead of the main account’s password should be considered and is needed when 2FA is enabled.
usage: nextcloud-tasks-tui [-h] [--task-list NAME] [--no-verify-ssl] URL
NextCloud tasks console interface, basing on the async Python API and Textual.
The environment variables NEXTCLOUD_USER and NEXTCLOUD_PASS can be set to skip the login prompt.
positional arguments:
URL NextCloud installation root URL
options:
-h, --help show this help message and exit
--task-list NAME task list to initially select (default: None)
--no-verify-ssl ignore certificate errors (default: False)
Installation
The most easy way to (un-)install the package is via pip
.
If not already done so, the API package needs to be installed beforehand.
pip install .[markdown]
pip uninstall nextcloud-tasks-tui
This includes the optional markdown
syntax highlighting for task descriptions as extra.
Without root
privileges, the installation is for the current user only – the resulting executable in ~/.local/
might then not be directly accessible via $PATH
.
The above pip
commands are also the ones used by make install
and make uninstall
.
For trying out or local development, a virtual environment can be used.
This assumes the API sources to be available at ../nextcloud_tasks_api
.
Wrapped by the Makefile
, a make check
will invoke type checker and linter.