Skip to content

Add proper habit support (STYLE: habit) like Emacs Org-mode core #1044

@IvanTurko

Description

@IvanTurko

Does this feature exist in Emacs orgmode core?

Yes

Orgmode link

Feature description

nvim-orgmode has basic support for repeating tasks with SCHEDULED: <YYYY-MM-DD +1d> and :STYLE: habit, but it’s missing the full habit tracking from Emacs Org-mode. Right now:

  • When I mark a habit DONE, it instantly resets to TODO or HABIT and stays in today’s Agenda, even though :LAST_REPEAT: updates.
  • No way to hide completed habits from today’s Agenda (Emacs does this with :LAST_REPEAT:).
  • No streak graphs or proper habit tracking like in Emacs.

This makes daily habits feel clunky — I can’t just mark them done for today without tweaking SCHEDULED manually.

Is this Emacs core?

Yes, habits are core in Org-mode via org-habit.el, which comes bundled and is enabled by default (see Org Manual: Tracking your habits). It’s not a separate plugin

Use case

For a daily habit like:

* HABIT Leetcode
  SCHEDULED: <2025-10-08 Wed +1d>
  :PROPERTIES:
  :STYLE: habit
  :END:

I want:

  • Mark DONE → it’s gone from today’s Agenda, resets for tomorrow.
  • See a simple streak graph (like Emacs’ ASCII bars).

Right now, it resets to TODO/HABIT and stays in Agenda, which breaks the flow.

Environment

  • nvim-orgmode: 03777ca
  • Neovim: v0.11.0
  • Config:
    require('orgmode').setup({
      org_todo_keywords = {'TODO(t)', 'HABIT(h)', '|', 'DONE(d)'},
      org_todo_repeat_to_state = 'HABIT',
    })
    

Feature value

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementEnhancement, not necessarily available in emacs

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions