Add proper habit support (STYLE: habit) like Emacs Org-mode core
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
No implementation files, tests, or entry points are named. Start by reading the existing habit repeat and Agenda handling, then compare its behavior with the linked Emacs Org-mode habit documentation. Done means completed habits leave today's Agenda, repeat for the next period, and provide the requested streak visualization.
Written by the indexing model from the issue text.
Description
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 toTODOorHABITand 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
- Dominant language
- Lua
- Stars
- 3.9k
- Forks
- 191
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 13
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from nvim-orgmode/orgmode
-
Difficulty 1/5 Under an hour Newbie friendliness 73/100
nvim-orgmode/orgmode#1193 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
nvim-orgmode/orgmode#1175 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
nvim-orgmode/orgmode#1174 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 92/100
nvim-orgmode/orgmode#1173 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 50/100
nvim-orgmode/orgmode#1172 ·
Maintainers usually reply within 1 day
All issues in nvim-orgmode/orgmode
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 3 days
-
[Operation Enhancement]: .editorconfigと.gitattributesでdictionaryとLuaファイルの編集・改行設定を統一するPossibly taken @5kdn claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 80/100
5kdn/DCS-Translation-Japanese#163 ·
Maintainers usually reply within 1 day
-
[Bug Report]Openarea/Cubelet area/CubeNet bug needs-triage needs:compliance
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
TencentCloud/CubeSandbox#1917 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100