More flexible task management / tag management commands

Currently the #Todo power up has only two states: Unfinished and Finished.

I often find myself that I write a bunch of tasks that I could do and at the end of the day some are unfinsihed but completing them would be not quite correct. An extra Canceled state would be nice.

You can add those extra states manually and style them using Custom CSS, but their tags can not be managed with a simple shortcut like Ctrl + Enter.

Custom CSS
  --todo-finished-style: unset;  /* unset | line-through */
  --todo-finished-color: #047857;
  --todo-finished-icon: "✔";
  --todo-canceled-style: line-through; /* unset | line-through */
  --todo-canceled-color: #B91C1C;
  --todo-canceled-icon: "✘";
  --todo-in-progress-icon: "⏳"; /* ⟳ */
  --todo-in-progress-color: #3B82F6;
  --todo-next-icon: "⏩";
  --todo-next-color: #B45309;
  --todo-next-style: underline;

.rem-todo--finished {
  color: var(--todo-finished-color);
  text-decoration: var(--todo-finished-style);

.rem-todo--finished .rem-checkbox {
  visibility: hidden;

.rem-todo--finished .rem-checkbox:before {
  visibility: visible;
  content: var(--todo-finished-icon);
  position: absolute;
  top: 2px;
  font-size: 18px;
  color: var(--todo-finished-color);

[data-rem-tags~="canceled"] .rem-todo--finished {
  color: var(--todo-canceled-color);
  text-decoration: var(--todo-canceled-style);

[data-rem-tags~="canceled"] .rem-todo--finished .rem-checkbox:before {
  content: var(--todo-canceled-icon);
  color: var(--todo-canceled-color);

[data-rem-tags~="next"] .rem-text:not(.rem-todo--finished) {
  color: var(--todo-next-color);
  text-decoration: var(--todo-next-style);

[data-rem-tags~="next"] .rem-text:not(.rem-todo--finished) .rem-checkbox:before {
  content: var(--todo-next-icon);
  color: var(--todo-next-color);
  position: absolute;
  top: 5px;
  left: 12px;

[data-rem-tags~="in-progress"] .rem-text:not(.rem-todo--finished) {
  color: var(--todo-in-progress-color);
  text-decoration: var(--todo-in-progress-style);

[data-rem-tags~="in-progress"] .rem-text:not(.rem-todo--finished) .rem-checkbox:before {
  content: var(--todo-in-progress-icon);
  color: var(--todo-in-progress-color);
  position: absolute;
  top: 7px;
  left: 16px;
  font-size: 10px;

As a long term vision the task management of AmpleNote seems pretty great.
It allows to add additional metadata, computes a Task Score from it and sorts the tasks:

Here is a video demonstrating the system:

I don’t expect RemNote to replicate this completely. It is not the focus of this app and once the API gets more powerful it there could be a plugin implementing a more powerful task management system.

One thing that already could go a long way is having better tag management via shortcuts. E.g. commands for

  • toggling a tag
  • cycling through a set of tags
  • setting a tag from a set of tags while removing the others.

Implementing this via plugins is somewhat possible but not robust at all since you can not specify tags to add or remove by themselves but have to recreate the content of the rem with the tags as #[[text of tag]]. Explicitly adding and removing tags via API without having to worry about the other content would enable this.


You can add slots to “daddy” powerups (Daily Document and Todo) and have them suggested for any instance (or additionally tag the powerup with Automatically Add Template and have them added automatically). See example.

What you propose could then be implemented via querying the children of todos and outputting some result. Checking either having the slots added or having specific contents of the slots should allow to replicate the stuff AmpleNote does through a combination of conditionals. If it will be posible to query the rem metadata (or the Calendar/Daily Note stuff), you could also add the logic for checking dates when the todos were set and/or querying the slot that has the date due.

At least that’s what seems like the most plausible route using existing and confirmed upcoming features.

1 Like