LinuxCommandLibrary

todoman

Manage to-do lists from the command line

TLDR

View documentation for the original command

$ tldr todo
copy

SYNOPSIS

todoman [GLOBAL OPTIONS] COMMAND [COMMAND OPTIONS] [ARGUMENTS]

Common Commands:
todoman list [OPTIONS] [FILTER]
todoman add [OPTIONS] [DESCRIPTION]
todoman show <UID>
todoman edit <UID>
todoman done <UID>...
todoman delete <UID>...
todoman priority <UID> <PRIORITY>

PARAMETERS

Global Options:
    These options affect the overall behavior of the todoman command, regardless of the subcommand used.

--config <FILE>
    Specify an alternative configuration file to use instead of the default.

--color {always,auto,never}
    Control whether the output uses ANSI color codes. 'auto' enables colors only if the output is a TTY.

--humanize {yes,no}
    Toggle human-readable output for dates and times (e.g., 'tomorrow', '3 days ago').

--status {ANY,NEEDS-ACTION,COMPLETED,CANCELLED}
    Filter todos by their completion status across all commands that list todos.

Subcommands & Their Common Options:
    Each subcommand performs a specific action. Many subcommands accept specific options to modify their behavior.

list [OPTIONS] [FILTER]
    Lists existing todos. Filters can be applied using project names, contexts, or keywords found in the description. Common options include --sort FIELD (e.g., due, priority), --due DATE (filter by due date), --project PROJECT, --context CONTEXT, or --urgent (only show urgent todos).

add [OPTIONS] [DESCRIPTION]
    Adds a new todo. The description can be provided directly or interactively. Options allow setting properties like --due DATE, --priority PRIORITY (e.g., A, B, C), --start DATE, --project PROJECT, and --context CONTEXT.

show <UID>
    Displays the full details of a specific todo, identified by its unique ID (UID).

edit <UID>
    Opens the specified todo in a text editor for modification. This command requires an editor to be configured via the VISUAL or EDITOR environment variables.

done <UID>...
    Marks one or more todos, identified by their UIDs, as completed. Multiple UIDs can be provided separated by spaces.

delete <UID>...
    Deletes one or more todos specified by their UIDs. This action is usually permanent.

priority <UID> <PRIORITY>
    Sets or changes the priority of a todo. Priorities are typically single uppercase letters (e.g., A, B, C), where 'A' is the highest.

UID (Unique ID):
    A short, unique identifier assigned to each todo within a specific todo directory. It's used to reference individual todos for commands like show, edit, done, and delete.

DESCRIPTION

todoman is a simple, lightweight, and standard-compliant command-line task manager. It allows users to manage their todo lists directly from the terminal. It supports two primary formats: the plain-text todo.txt format and the more structured iCalendar (specifically VTODO components) format, making it compatible with various calendaring and syncing tools.

Key features include adding, listing, editing, deleting, and completing tasks. Users can filter tasks by projects, contexts, due dates, and status, as well as prioritize them. todoman is designed to be highly customizable and often integrates seamlessly with synchronization tools like vdirsyncer to keep tasks in sync with CalDAV servers or other devices. Its focus is on efficiency and adherence to open standards, providing a robust yet straightforward solution for personal task management.

CAVEATS

  • Configuration Dependency: todoman relies heavily on a configuration file (typically ~/.config/todoman/config.py) for defining task directories, default behaviors, and display settings. Without proper configuration, the command might not function as expected.
  • External Editor Requirement: The edit command requires an external text editor to be configured via the VISUAL or EDITOR environment variables. If not set, this functionality will be limited.
  • No Built-in Sync: todoman itself does not provide syncing capabilities. It is designed to work in conjunction with external tools like vdirsyncer for synchronizing tasks with CalDAV servers or other devices.
  • Local UID Scope: The UIDs (Unique IDs) are often short and unique only within the context of the currently specified todo directory, not globally unique across all tasks or systems.

CONFIGURATION FILE

todoman uses a Python-based configuration file, typically located at ~/.config/todoman/config.py. This file allows users to specify task directories (where todo files are stored), default filters for listing, and various display options. Advanced users often customize this file extensively to tailor the tool to their specific workflow.

ICALENDAR (VTODO) SUPPORT

A key strength of todoman is its robust support for the iCalendar (VTODO) component standard. This means it can interact seamlessly with a wide range of CalDAV servers and other calendar applications that adhere to this open standard. This makes todoman a powerful tool for users who want to manage tasks across multiple devices or services while keeping their data in an interoperable format.

HISTORY

todoman was created to provide a simpler, more standards-compliant alternative to other command-line todo managers. Its development focuses on adhering to RFC 5545 (iCalendar) for robust interoperability. It gained popularity among users who prefer minimalist CLI tools and those who sync their data using vdirsyncer for decentralized task management. It is actively maintained and forms a core part of the larger vdirsyncer ecosystem, emphasizing plain-text and open-standard approaches to personal information management.

SEE ALSO

vdirsyncer(1), remind(1), task(1), cal(1)

Copied to clipboard