Changelog
This document lists all notable changes to the functionality of TaskLite.
- Unreleased
- [2025-07-26 - 0.5
- [2024-09-23 - 0.4
- [2020-03-01 - 0.3
- [2019-10-04 - 0.2.2
- [2019-07-14 - 0.2.1
- [2019-06-13 - 0.2
Unreleased
💻 General
- Add
tl history [--by day|week|month|year] [FILTER_EXP…]to show the number of added and closed tasks per period (default: week) as a table with a bar graph (similar to Taskwarrior’shistoryandghistoryreports). - Add
tl ulids [FILTER_EXP…]to print only the ULIDs of matching tasks (one per line, e.g. for piping into other commands). - Support descriptions for tags via
tl describetag <tag> <description>andtl deletetagdescription <tag>. They are stored in the newtagstable and shown bytl tagsandtl projects. - Breaking: Rename the
tagsview totags_view(the nametagsis now used by the new table) and add adescriptioncolumn to it. - Add a
--utcflag totl do,tl doonly,tl doall,tl end, andtl endallto set an explicit closing timestamp instead of the current time (e.g.tl do <id> --utc "2020-01-15 08:30:00"). - Add task dependency support via
blocks/unblockssubcommands andblocks:<id>/blocked-by:<id>body tokens fortl add(#14). The newtask_to_tasktable can carry arbitrary relation types; onlyblocksis wired up in the CLI for now.tasks_viewexposesblockersandblockedJSON-array columns.tl do/tl end/tl trashrefuse to close a task while at least one of its blockers is still open. - Delete a task from within
tl editby settingstate: x. - Existing tags and notes can now be edited and removed in
tl edit(and in the editor of the Thunderbird add-on). - Rewrite the email (
.eml) importer to properly support MIME: Multipart emails, quoted-printable and base64 encodings, charsets, encoded words in headers (e.g. non-ASCII subjects), and HTML-only emails, which are converted to plain text. The task body now consists of the subject and the text content, instead of the raw undecoded email body followed by the subject. Theccheader is now stored in the metadata. - Add a Thunderbird add-on
to import emails via their context menu
and optionally edit the new task right away.
The time of adding is stored in the metadata field
addedUtc(#130). - Add
tl nativehost installandtl nativehost runcommands to use TaskLite as a native messaging host for add-ons.
2025-07-26 - 0.5
💻 General
- Add new subcommand
enterto open the default editor with an empty task (09df546) - Add support for importing YAML files (e5287d2) and Markdown files (87d5ae5)
- Use Markdown with frontmatter instead of YAML for editing tasks (a22079d)
- Add config field to select visible table columns and their order (9cbdaf5)
- Add support for new
Agecolumn that shows the age of a task in a human readable fuzzy way (9cbdaf5) - Extend
randomsubcommand to accept an optional filter expression (3d89593) - Support filters with
opencommand,getreturns any state again (3be80d2) - Improve results of fuzzy search (b9fcbe1)
- Score continuous matches higher
- Weight body score higher
- Increase necessary minimum score
- Always include the body in result output
- Adapt the printed tasks count to the available terminal lines count (c3c740d)
- Only show first line of multi-line tasks in task listings (2b9249a)
- Add support for
--no-colorflag andNO_COLORenv variable (6d91299) - Add ARM builds to GitHub Action artifacts for macOS (2c88eb7) and for Linux (b6a814f)
🩹 Fixes
- Correctly apply the
maxWidthsetting from the config (ce8dddd) - Fix execution of pre-modify hook (340d3a2)
- Show warning if there are no tags or projects defined yet (02448be)
- Include notes when exporting tasks as ndjson (2bd11a1)
- Correctly handle recurring tasks without a due date (7ddddf5)
- Make state matching in filter expressions case insensitive (9f4cf31)
- Update
readystate to match documentation. (2935a99)
🌐 Webapp
- Set correct state when closing a task (2f3febc)
📚 Documentation
- Add documentation on how to list and filter tasks (506d29e)
- Explain handling of time and date (283471a)
- Fix documentation for
querycommand (081d3a7) - Fix installation instructions (d7ceb39)
- Add note taking apps to related page (5d0eace)
- Add taskfinder (cea4447) and Topydo to related.md (3de5f8e)
2024-09-23 - 0.4
💻 General
- Add simple webapp powered by elm.land
- Add support for hooks to execute code during a task’s lifecycle (ba2054b)
- Set text color according to current background color (1d9ae64)
- Add support for recurring tasks (8028190)
- Add support for external CLI commands (9cb8fa3)
- Use
.yamlextension foreditto have syntax highlighting (10e1e52) - Support the full ISO8601 duration syntax everywhere (8df1c65)
- Add support for filter expressions to sub-command
new(9ab3992) - Improve design of detail view (used by “info” & “next” commands) (c32be9f)
- Extend and restructure the documentation
- Webapp: Show selected tags in header (ff1bf2e)
- Edit mode: If parsing fails, re-open editor with modified content (2b5a0e1)
- Improve import of user, title, labels fields (needed for importing GitHub issues) (af51aaa)
✨ New Subcommands
stats- List share of Done, Obsolete, Deletable tasks (c2a2d70)server- Starts an API + GraphQL server powered by AirGQL (4669498)random- Show a random task (88a999d)deletetag(d3ab4de)deletenote(581ffae)json- Show tasks in JSON format (45ad3f3)reviewin- Set review date in x days (b05c81a)idea- Quickly capture ideas (6545500)modified- List all tasks by modified UTC desc (71e4603)modifiedonly- List tasks where modified UTC /= creation UTC by modified UTC desc (4809d5b)notes- List all notes descending by creation UTC (81e6885)recurring- List recurring tasks (0c11309)ingest- Runsimport->edit->deleteworkflow on files (325e0ac)importdir- Import all .json and .eml files in a directory (4c3c50a)ingestdir- Ingest all .json and .eml files in a directory (4c3c50a)endall- End all provided tasks (changeendto accept a closing note) (4d2032e)unrecur- Remove recurring timestamp (2ee1c21)unwake- Remove awake timestamp (987a4fe)unready- Remove ready timestamp (987a4fe)unreview- Remove review timestamp (1d82631)
📥 Import
- Add support for importing
.jsonand.emlfiles (8a821de) - Support list of strings as
notesin JSON import (d07a328) - Add support for parsing unix timestamps with 10, 13, and 16 digits (ce0392d)
- Add support for milliseconds in UTC timestamps (2e580ba)
- Use timestamp of parent task for imported tags and notes (ac15d47)
- Make it more robust (works with a larger variety of files now)
Check out the commit history for all changes.
2020-03-01 - 0.3
- Add
editcommand to edit YAML version of task in$EDITOR(1add89e) - Add several
un*commands to erase fields (0f09c3d) - Only execute trigger to set
closed_utcafter state changed (395a8e0) - Show descriptive variable names in brief help text (10f8cf6)
- Hide aliases from main help (c52df72)
- Display alias errors even with sub-arguments (c52df72)
- Fix parsing of timestamp part in ULIDs for small timestamp values (258df47)
- Also display full version slug with
tl version(0c292d1) - Remove unnecessary import logging (c04b894)
- Add git hash to the version string (5f7b1ef)
- Create config directory if it does not exist (8d0657c)
2019-10-04 - 0.2.2
- Support optional filter expression after “count” command (61e87b7)
- Automatically create a config file if it doesn’t exist (7407f87)
2019-07-14 - 0.2.1
- Fix creation of Docker image, extend documentation accordingly (fa4cad3)
2019-06-13 - 0.2
- Initial release