# gothenburgbitfactory/taskwarrior

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/gothenburgbitfactory-taskwarrior).**

5,906 stars · 412 forks · C++ · MIT

## Links

- GitHub: https://github.com/GothenburgBitFactory/taskwarrior
- Homepage: https://taskwarrior.org
- awesome-repositories: https://awesome-repositories.com/repository/gothenburgbitfactory-taskwarrior.md

## Topics

`gtd` `task-manager` `taskwarrior` `to-do-list` `todo`

## Description

Taskwarrior is a command-line task manager that lets you create, modify, filter, and complete to-do items directly from the terminal. It stores all tasks in a single plain-text file for portability and manual editing, and includes a custom expression language for selecting tasks by status, priority, tags, and date ranges.

The tool distinguishes itself through several integrated capabilities. It computes a numeric urgency score for each task based on weighted factors like age, tags, and due date to determine ordering. A recurrence template engine generates new task instances from a template after completion, supporting flexible schedules. An event-driven hook system runs external scripts at defined lifecycle points before or after task operations for automation and integration. A virtual tag system assigns dynamic tags based on task state and attributes, while context-based filter presets limit the visible task list to a specific subset. The named date expression parser interprets human-readable strings like "today" or "eom" into absolute timestamps.

Beyond core task management, the project supports user-defined custom fields to extend the task schema, JSON import and export for integration with other tools, and task synchronization across multiple installations. It also provides interactive task review, duration value specification, and formatted report views. The documentation covers installation via package managers, source tarballs, and git repository cloning.

## Tags

### Business & Productivity Software

- [Command Line Task Lists](https://awesome-repositories.com/f/business-productivity-software/command-line-task-lists.md) — Provides a full-featured command-line task manager for creating, modifying, filtering, and completing to-do items.
- [Task Attribute Modifications](https://awesome-repositories.com/f/business-productivity-software/task-due-date-updates/task-attribute-modifications.md) — Enables updating any attribute of an existing task, such as description, priority, tags, or due date. ([source](https://taskwarrior.org/docs/))
- [Task Creations](https://awesome-repositories.com/f/business-productivity-software/task-due-date-updates/task-creations.md) — Provides a command to create new to-do items with descriptions and optional metadata. ([source](https://taskwarrior.org/docs))
- [Task List Management](https://awesome-repositories.com/f/business-productivity-software/task-list-management.md) — Provides a command-line interface to list all tasks with filtering and sorting by user-defined criteria. ([source](https://taskwarrior.org/docs/))
- [Priority Management](https://awesome-repositories.com/f/business-productivity-software/task-tracking-systems/priority-management.md) — Assigns priority levels to tasks to influence their ordering and urgency calculations. ([source](https://taskwarrior.org/docs))
- [Formatted Task Summaries](https://awesome-repositories.com/f/business-productivity-software/centralized-task-views/formatted-task-summaries.md) — Generates formatted summaries of tasks with counts, status breakdowns, and overdue item highlights. ([source](https://taskwarrior.org/docs/))
- [Cross-Device Task Synchronization](https://awesome-repositories.com/f/business-productivity-software/cross-device-task-synchronization.md) — Transfers task data between multiple installations so changes made on one machine appear on all others.
- [JSON Data Exports](https://awesome-repositories.com/f/business-productivity-software/json-data-exports.md) — Outputs task data in structured JSON format and loads task data from JSON files for integration.
- [Task Metadata Customization](https://awesome-repositories.com/f/business-productivity-software/task-metadata-customization.md) — Extends the default task schema with user-defined fields to store project-specific metadata.

### Artificial Intelligence & ML

- [Recurring Task Scheduling](https://awesome-repositories.com/f/artificial-intelligence-ml/agent-architectures/orchestration-engines/ai-agent/runtime-execution-control/recurring-agent-scheduling/recurring-task-scheduling.md) — Defines tasks that automatically regenerate on a fixed schedule such as daily or weekly.
- [Task Urgency Scores](https://awesome-repositories.com/f/artificial-intelligence-ml/evaluation-metrics/scoring-pipelines/feature-cross-scoring/criteria-based-scoring-engines/weighted-score-aggregators/task-urgency-scores.md) — Computes a numeric urgency score for each task based on weighted factors like age, tags, and due date.

### Data & Databases

- [Task Synchronization Servers](https://awesome-repositories.com/f/data-databases/client-server-data-synchronization/core-data-sync-servers/task-synchronization-servers.md) — Ships a built-in sync server that keeps task lists consistent across multiple machines. ([source](https://taskwarrior.org/docs/))
- [Flat-File Storage](https://awesome-repositories.com/f/data-databases/flat-file-storage.md) — Stores all tasks in a single plain-text file using a custom serialization format for portability.
- [Reference Date Derivations](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/reference-date-derivations.md) — Parses human-readable date expressions like 'today' or 'eom' into absolute timestamps for task scheduling. ([source](https://taskwarrior.org/docs/))
- [Duration Value Retrievers](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/time-period-managements/duration-value-retrievers.md) — Parses human-readable duration strings like '1h' or '2w' for task estimates and recurrence intervals. ([source](https://taskwarrior.org/docs/))
- [JSON Data Import](https://awesome-repositories.com/f/data-databases/json-data-import.md) — Provides a built-in command to import task data from JSON files into the task database. ([source](https://taskwarrior.org/docs/))

### Development Tools & Productivity

- [Automation Hooks](https://awesome-repositories.com/f/development-tools-productivity/automation-hooks.md) — Runs custom scripts before or after task operations to enforce rules or trigger actions. ([source](https://taskwarrior.org/docs/))
- [Task Status Changes](https://awesome-repositories.com/f/development-tools-productivity/code-completion-tools/testing-environment-completion/task-completion-callbacks/task-completion-sequences/task-status-changes.md) — Allows users to mark tasks as complete, recording the completion date for tracking progress. ([source](https://taskwarrior.org/docs/))
- [Expression-Based Filters](https://awesome-repositories.com/f/development-tools-productivity/command-line-argument-filtering/expression-based-filters.md) — Provides a custom expression language for selecting tasks by status, priority, tags, and date ranges.
- [User Data Syncing Utilities](https://awesome-repositories.com/f/development-tools-productivity/local-file-syncing/user-data-syncing-utilities.md) — Synchronizes task data across multiple devices so changes on one machine appear on all others. ([source](https://taskwarrior.org/docs/))
- [Task Automation Scripts](https://awesome-repositories.com/f/development-tools-productivity/task-automation-scripts.md) — Runs external scripts before or after task operations to enforce rules, send notifications, or transform data. ([source](https://taskwarrior.org/docs))
- [Task Filtering](https://awesome-repositories.com/f/development-tools-productivity/task-execution/task-filtering.md) — Selects a subset of tasks by criteria such as status, project, tag, or due date to narrow the view. ([source](https://taskwarrior.org/docs))
- [Task Text and Metadata Searches](https://awesome-repositories.com/f/development-tools-productivity/task-execution/task-filtering/task-metadata-querying/task-text-and-metadata-searches.md) — Searches tasks by text, tags, priority, and date ranges using a flexible query syntax. ([source](https://taskwarrior.org/docs/))
- [Task Hooks](https://awesome-repositories.com/f/development-tools-productivity/task-execution/task-hooks.md) — Runs custom scripts automatically before or after task operations to add behavior. ([source](https://taskwarrior.org/docs/))
- [Task Tagging Systems](https://awesome-repositories.com/f/development-tools-productivity/task-tagging-systems.md) — Attaches labels to tasks for categorization and filtering, including a virtual tag system for dynamic tags. ([source](https://taskwarrior.org/docs))
- [Manifest-Defined Tasks](https://awesome-repositories.com/f/development-tools-productivity/command-line-task-runners/manifest-defined-tasks.md) — Extends the task schema with user-defined fields to store project-specific metadata alongside built-in properties. ([source](https://taskwarrior.org/docs))
- [Custom Task Attribute Definitions](https://awesome-repositories.com/f/development-tools-productivity/command-line-task-runners/manifest-defined-tasks/custom-task-attribute-definitions.md) — Allows users to define custom fields on tasks to store project-specific metadata. ([source](https://taskwarrior.org/docs/))
- [Named Date Expressions](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/relative-date-formatting/date-string-parsers/named-date-expressions.md) — Parses human-readable date strings like 'today' or 'eom' into absolute timestamps for task scheduling.
- [Formatted Task Reports](https://awesome-repositories.com/f/development-tools-productivity/in-code-task-management/formatted-task-reports.md) — Ships built-in report views that display tasks in formatted tables with status and urgency summaries. ([source](https://taskwarrior.org/docs))
- [Event-Driven Scripting](https://awesome-repositories.com/f/development-tools-productivity/shell-script-execution-engines/custom-run-scripts/scheduled-script-executions/event-driven-scripting.md) — Runs custom scripts triggered by task lifecycle events to enforce policies, send notifications, or integrate with other tools.
- [Context-Based Filter Presets](https://awesome-repositories.com/f/development-tools-productivity/task-execution/task-filtering/context-based-filter-presets.md) — Applies predefined filter presets to limit the visible task list to a specific subset of tasks. ([source](https://taskwarrior.org/docs/))
- [Context Presets](https://awesome-repositories.com/f/development-tools-productivity/task-execution/task-filtering/context-presets.md) — Ships predefined filter presets that limit the visible task list to a specific subset of tasks.
- [Dynamic Tags](https://awesome-repositories.com/f/development-tools-productivity/task-tagging-systems/dynamic-tags.md) — Assigns dynamic tags based on task state and attributes, enabling filtering without explicit user-defined labels.

### Operating Systems & Systems Programming

- [Urgency Scoring](https://awesome-repositories.com/f/operating-systems-systems-programming/task-priority-management/urgency-scoring.md) — Computes a numeric urgency score from weighted factors like age, tags, and due date to order tasks.

### Software Engineering & Architecture

- [Event-Driven Hook Systems](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-hook-systems.md) — Executes external scripts at defined lifecycle points before or after task operations for automation.
- [Task Ordering](https://awesome-repositories.com/f/software-engineering-architecture/queue-implementations/priority-queues/task-ordering.md) — Computes a numeric urgency score for each task based on priority, age, and tags to determine ordering. ([source](https://taskwarrior.org/docs/))
- [Urgency-Based Task Orderings](https://awesome-repositories.com/f/software-engineering-architecture/queue-implementations/priority-queues/task-ordering/urgency-based-task-orderings.md) — Computes a numeric urgency score for each task based on age, tags, and due date to determine ordering. ([source](https://taskwarrior.org/docs/))
- [Recurrence Templates](https://awesome-repositories.com/f/software-engineering-architecture/task-templates/task-creation-templates/recurrence-templates.md) — Generates new task instances from a template after completion, supporting flexible recurring schedules.

### System Administration & Monitoring

- [Lifecycle Hook Scripts](https://awesome-repositories.com/f/system-administration-monitoring/task-automation-scripts/lifecycle-hook-scripts.md) — Runs custom scripts at defined points in the task lifecycle to automate actions or enforce policies. ([source](https://taskwarrior.org/docs/))
- [Event-Triggered Scripts](https://awesome-repositories.com/f/system-administration-monitoring/task-automation-scripts/event-triggered-scripts.md) — Runs external scripts before or after task operations to enforce rules or send notifications.

### Programming Languages & Runtimes

- [External Script Execution](https://awesome-repositories.com/f/programming-languages-runtimes/external-script-execution.md) — Invokes arbitrary programs or scripts from within the task management workflow. ([source](https://taskwarrior.org/docs/))

### User Interface & Experience

- [Custom Data Fields](https://awesome-repositories.com/f/user-interface-experience/field-customization/custom-data-fields.md) — Extends the task schema with custom fields to store project-specific data. ([source](https://taskwarrior.org/docs/))

### Part of an Awesome List

- [Time and Task Management](https://awesome-repositories.com/f/awesome-lists/productivity/time-and-task-management.md) — Command-line based task and to-do list manager.
