Add support for customisable TODO keywords

As per Multi-state Workflow (Org Mode Compact Guide) support user customisable keywords for TODO stages and the sequence in which they cycle.
Adding support for the "|" also allows for multiple DONE states, for example a CANCELLED and DONE state are both considered to be done.

This would allow users to configure their own task workflow, or multiple workflows

(setq org-todo-keywords
      '((sequence "TODO" "INPROGRESS" "PENDING" "ONHOLD" "|" "CANCELLED" "DONE")
        (sequence "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED")))

Org-mode allows for specifying keys assigned to toggle the state, that would be a bonus but not essential.

would very much like this

Right now there is a system setting that lets you choose between now/later or todo/doing for tasks, but many people use all four. Could we have a fourth setting that allows you to toggle through all four?


Combined threads here to keep similar requests together.

1 Like

Related to Use a more standard flavor of markdown

A common representation of TODO/DONE in Github Flavored Markdown is [ ] and [x] (or [X]), it doesn’t include DOING but it is very frequently used.

It would be great if customisation of TODO keywords allowed for this syntax. Maybe ongoing tasks could be written as [o] ? Or for GFM (Github Flavored Markdown) compatibility it could be - [ ] DOING.


The more I think about this, the more I would like something like the original suggestion posted by @benhamilton. I would like separate sequences for different kinds of checklists. For instance, for books I would like something along the lines of: “TOREAD, READING, FINISHED” simply to distinguish it from my ordinary task list. It is possible to add keywords and then filter based on that, but this would be much easier, since only books would use these terms…


I Would like something really simple

  • Custom todos as kind of allias to current TODO DOING DONE states
  • They might should be customisable by custom CSS

For example I really need keyword CANCELLED, it may be treated as a variant od DONE, but with possible of adding custom CSS by user of theme maker in some settings

EDIT: CANCELLED somehow work for me, at least in theme I am using :slight_smile:

Here is an overview of what is currently possible


Considering there is presently a single TODO workflow, I had a similar thought but I would redefine it as allowing custom workflows—and making workflows a primitive. The more I pondered, the more I saw the similarity of my request and this one. And once workflows/keywords are a primitive, visually alternating between outlines and Kanban boards is a more convenient reach whether by plugin or built-in feature.


I’ve have finally achieved almost this requirement I’ve had using Obsidian and a plugin called Apply Patterns, which uses RegEx to search/replace text (in my case, hashtags). Details here: Gallery of patterns? · Discussion #43 · jglev/obsidian-apply-patterns-plugin · GitHub

Is there a plugin for Logseq that I use could to do the same?

While there are some variations in the details, the reality is there are at least 3 feature requests which could be merged:

  1. This one.
  2. Introduce custom workflows as a primitive to replace TODOs
  3. NOW / NEXT / LATER tasks workflow

I mention this just to make it easy for admins to close the lot, since I see this is marked as “on-roadmap.”


I created a plugin that attempts to address this feature request. Let me know how it goes and whether it can be improved further.


I really like the sequence idea.

However, I wonder if there is a more generic use that could also be applied to Properties too?

Allow a user to define a set of sequence that are maybe “ordered” or just “lists”.

Then use those in other places in logseq.
property-name-value-lists (only allowed values for the property),
property-name-value-suggestions (optional suggestions),

Agree with the above, I’d like a customisable TODO keyword which allowed me to insert a plain checkbox for simple checklists (like

Would certainly like to see these ideas incorporated into Logseq.

This might be a bit too much, but I’d also like to see some ability to link parent TODO items to child TODO items, such that the parent items becomes an Objective and-or measure of progress