MoreInfo

features

Task Management

MoreInfo uses standard Markdown task syntax so your tasks are readable in any editor — no special format, no lock-in.

Creating Tasks

A task begins with a checkbox, optionally within a list:

- [ ] Write the quarterly report
- [ ] Review pull request #42
- [x] Send invoice to client

[ ] This OK too
  • [ ] — incomplete task
  • [X] — completed task

Click the checkbox in MoreInfo's editor to toggle completion. The x is written back to the file immediately, as well as a @done(timestamp) marker.

Due Dates

Add a due date with the @due() keyword:

- [ ] File tax return @due(2026-04-30)
- [ ] Team standup @due(tomorrow)

MoreInfo recognises both ISO dates (2026-04-30) and natural language (today, tomorrow, next friday). Tasks with a priority and a due date will have their priority automatically increase as the due date arrives. Past due tasks get emergency coloring in the editor, Tasks pseudo-page, and Tasks Widget.

Deferred Tasks

Add the @defer(date) keyword to keep the task off of your task list until a certain date:

[ ] I don't want to see this until @defer(2026-07-01)

Future tasks

ALL tasks that are not completed and not deferred and not (@waiting) will show up on your task list, even if the source of the task is a journal date in the future. This can be toggled off in Settings, "Defer future tasks by default." When that setting is YES, tasks created in a future journal date are hidden from the Tasks Widget and Tasks Pseudo-page.

Priority

Tasks can have up to 10 numeric priorities, 1 being the highest. A priority can be assigned to a task by adding it in parenthesis or with the @priority() keyword.

[ ] Fix the production bug (2)
[ ] Refactor the auth module @priority(8)

Priority tasks float to the top of filtered views in the Tasks widget. Higher priority tasks will get a colored badge in the Tasks Widget. Tasks with both a due date and a priority will have their priority automatically increase as the due date arrives.

Waiting Tasks

Mark a task as blocked on something external with @waiting:

[ ] Contract approval @waiting
[ ] Response from legal @waiting(Jane re: NDA)

The parenthesised note is optional human-readable context — MoreInfo stores and displays it but does not parse it further.

Waiting tasks are hidden from all task views by default. By definition they are not actionable, so they stay out of the way until you ask for them:

  • Tasks Widget — type @waiting in the filter box to reveal them, like any other context.
  • Tasks pseudo-page — an @waiting chip appears in the context filter bar whenever waiting tasks exist; click it to reveal them.

CamelCase Links in Task Text

CamelCase words in task text that resolve to an existing page title are rendered as clickable links in both the Tasks Widget and the Tasks pseudo-page. Clicking navigates to that page. If no matching title exists the word renders as plain text — CamelCase never creates a page.

[ ] Draft spec for AndersonContract @due(friday)

The Tasks Widget

Open the Tasks widget in the sidebar panel to see all incomplete tasks across every note in your datastore, grouped by source page and heading. Click any task to jump to the note that contains it.

Use the filter bar at the top of the widget to narrow the list:

Filter Example
Context tag @phone
Waiting tasks @waiting
Priority (2) or @priority(2)
Plain text invoice

Multiple filters can be combined in the same search — for example, @phone (1) shows only high-priority phone calls. Priority filters match the effective priority shown in the badge, which factors in due-date proximity.

The Tasks Pseudo-page

Click the Tasks button in the toolbar to open the full-page tasks view. This is not an actual page in your knowledge base — MoreInfo generates it on the fly from every eligible task across the datastore.

Tasks are displayed in a compact two-line format: the task text on the first line, and the source page and heading on the second. They are sorted globally by effective priority, so the most urgent items always appear first regardless of which page they live on.

The search bar at the top of the pseudo-page accepts the same filter syntax as the Tasks Widget: @context, @waiting, (priority) / @priority(n), and plain text. Filters can be combined freely. A context chip bar below the search box shows every context found across the datastore, including an @waiting chip when waiting tasks exist.