# Todo's in Obsidian syncing with todo.txt file

**URL:** <https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460>\
**Category:** Plugins ideas (Archival in progress)\
**Created:** [June 27, 2020, 6:32am UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460 "2020-06-27T06:32:34Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jorg404](https://forum.obsidian.md/user_avatar/forum.obsidian.md/jorg404/32/1582_2.png) [@Jorg404](https://forum.obsidian.md/u/Jorg404)\
**Post date:** [June 27, 2020, 6:32am UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/1 "2020-06-27T06:32:34Z")

</div>

Hi, I am pondering about integrating todo.txt and Obsidian. The todo’s in the mardown pages are easily identifiable and can be written to a todo.txt file or synced with an existing one. For example

`- [] Buy milk` on a page called `Shopping.md` could translate to a task like;

`+Shopping Buy milk`

Less obvious matches can be included in the todo item itself, for example if I make a daily note with a task

`- [] Get invoice about XYZ` on a daily page called `2020-06-27.md` could translate to a task like;

`[[2020-06-27]] Get invoice about XYZ`

Or maybe use todo.txt metadata to keep the link. The nice thing about getting this syncing bi-directionally is that if I add another one in todo.txt like;

`[[2020-06-27]] Another task`

And I do a sync, it can be added to the page with the same name. Since todo.txt is well established I am experimenting with extracting the todo’s for a work log, but keeping them in sync with the obsidian notes. Bi-directional syncing is even better but I am aware there might be conflicts if task items with the same name occur multiple times on the page or when one task gets renamed in todo.txt but not on the daily note. The safest way is making sure that the information is always merged without information loss on either sides (e.g. stuff can be duplicated, but not accidentally removed).

Would like to hear thoughts. I want to eventually try to make a plugin, but there is no API yet as far as I can see so I might start with a concept in Python first.

---

<div class="post-metadata">

**Author:** ![Luhmann](https://forum.obsidian.md/user_avatar/forum.obsidian.md/luhmann/32/117_2.png) [@Luhmann](https://forum.obsidian.md/u/Luhmann)\
**Post date:** [June 27, 2020, 7:14am UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/2 "2020-06-27T07:14:07Z")

</div>

It seems to me that once Obsidian opens up the API for plugins someone will make a todo.txt plugin that might make all this work natively in Obsidian?

---

<div class="post-metadata">

**Author:** ![Jorg404](https://forum.obsidian.md/user_avatar/forum.obsidian.md/jorg404/32/1582_2.png) [@Jorg404](https://forum.obsidian.md/u/Jorg404)\
**Post date:** [June 27, 2020, 10:28am UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/3 "2020-06-27T10:28:47Z")

</div>

Yes that is what I am hoping for. Hence the plugin idea 🙂

---

<div class="post-metadata">

**Author:** ![Luhmann](https://forum.obsidian.md/user_avatar/forum.obsidian.md/luhmann/32/117_2.png) [@Luhmann](https://forum.obsidian.md/u/Luhmann)\
**Post date:** [June 27, 2020, 1:54pm UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/4 "2020-06-27T13:54:17Z")

</div>

Ah sorry, missed the last line!

---

<div class="post-metadata">

**Author:** ![rapatel0](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/r/bcef8e/32.png) [@rapatel0](https://forum.obsidian.md/u/rapatel0)\
**Post date:** [July 26, 2020, 8:49pm UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/5 "2020-07-26T20:49:47Z")

</div>

Actually found a really simple workaround. You can just change the `todo.sh` config file to save output to a `todo.md` inside your obsidian vault. Then you can just directly use links and backlinks to put the information in the right place.

---

<div class="post-metadata">

**Author:** ![Jorg404](https://forum.obsidian.md/user_avatar/forum.obsidian.md/jorg404/32/1582_2.png) [@Jorg404](https://forum.obsidian.md/u/Jorg404)\
**Post date:** [July 30, 2020, 7:49am UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/6 "2020-07-30T07:49:03Z")

</div>

Neat idea, however I would appreciate a plugin that actually also allows the look and feel of a real todo manager when it aggregates all checkboxes present in Obsidian. But I’ll take it, it’s a smart workaround to keep stuff together 😉

---

<div class="post-metadata">

**Author:** ![bepolymathe](https://forum.obsidian.md/user_avatar/forum.obsidian.md/bepolymathe/32/45193_2.png) [@bepolymathe](https://forum.obsidian.md/u/bepolymathe)\
**Post date:** [January 27, 2021, 7:31am UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/7 "2021-01-27T07:31:52Z")

</div>

I am very interested in this proposal. Any news since the last exchanges?

---

<div class="post-metadata">

**Author:** ![bepolymathe](https://forum.obsidian.md/user_avatar/forum.obsidian.md/bepolymathe/32/45193_2.png) [@bepolymathe](https://forum.obsidian.md/u/bepolymathe)\
**Post date:** [January 28, 2021, 12:41pm UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/8 "2021-01-28T12:41:32Z")

</div>

> [@rapatel0](#):
>
> todo.sh

Hi @rapatel0  
Can you explain what you changed in todo.sh file ?  
Thanks

---

<div class="post-metadata">

**Author:** ![rapatel0](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/r/bcef8e/32.png) [@rapatel0](https://forum.obsidian.md/u/rapatel0)\
**Post date:** [January 30, 2021, 12:00am UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/9 "2021-01-30T00:00:56Z")

</div>

When you setup todo.sh just change the config option file extension to MD and change the file paths to be within obsidian.

> <https://github.com/todotxt/todo.txt-cli/blob/71b3991daf1d9686c3d548b18a6f2b0b9e1b3ea0/todo.cfg#L7>

Note: this will allow you to view lists from todo.sh in obsidian but no interaction with the other files in the vault.

---

<div class="post-metadata">

**Author:** ![bepolymathe](https://forum.obsidian.md/user_avatar/forum.obsidian.md/bepolymathe/32/45193_2.png) [@bepolymathe](https://forum.obsidian.md/u/bepolymathe)\
**Post date:** [January 30, 2021, 7:33pm UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/10 "2021-01-30T19:33:48Z")

</div>

Ok thanks for that !

---

<div class="post-metadata">

**Author:** ![trashhalo](https://forum.obsidian.md/user_avatar/forum.obsidian.md/trashhalo/32/11625_2.png) [@trashhalo](https://forum.obsidian.md/u/trashhalo)\
**Post date:** [March 28, 2021, 11:40pm UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/11 "2021-03-28T23:40:11Z")

</div>

Just wanted to let this thread know I built first class todo.txt integration into obsidian, and I am looking for feedback on where to take the plugin next.

> [@New plugin: edit todo.txt files in obsidian](https://forum.obsidian.md/t/new-plugin-edit-todo-txt-files-in-obsidian/15410):
>
> Features @context is treated as #tags. You can ctrl click on them. +Project are treated at [[Project]]. You can ctrl click them. \_ in +Projects to represent spaces. Ex +Hello\_World

---

<div class="post-metadata">

**Author:** ![ccchan](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/c/f08c70/32.png) [@ccchan](https://forum.obsidian.md/u/ccchan)\
**Post date:** [January 4, 2023, 5:32pm UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/12 "2023-01-04T17:32:02Z")

</div>

hi,  
i just proposed an idea for a plugin that simply “add empty lines between .todo.md entries so obsidian knew they are text blocks”.

> [@New plugin: edit todo.txt files in obsidian](https://forum.obsidian.md/t/new-plugin-edit-todo-txt-files-in-obsidian/15410/14):
>
> @trashhalo hi, sorry i hear the addon becomes obsolete due to obsidian update, could I suggest you to write a 1 function alternative plugin instead? for .todo.txt, we can rename it as .todo.md; which could be open by obsidian, markor and simpletask (all android) obsidian will open it as .md i.e. text only … HOWEVER, you can manually ADD EMPTY lineS to make each entry as a text block, in this way you can use obsidian to hyperlink to and from the blocks. markor could open .todo.md (force a…

while for daily use we use simpletask and markor instead.

those two are handy .todo.txt editors, but they lack the obsidian hyperlink power.

1 simple plugin in obsidian , with only that 1 function will work, i think.

thanks

---

<div class="post-metadata">

**Author:** ![nicu](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/n/779978/32.png) [@nicu](https://forum.obsidian.md/u/nicu)\
**Post date:** [February 7, 2023, 5:40pm UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/13 "2023-02-07T17:40:59Z")

</div>

Hi, bumping this thread, I’d be really happy to see an implementation of todo.txt in Obsidian.

To explain my workflow, I have a todo.txt file in my Obsidian vault that I can open and edit with the [txt as md](https://github.com/deathau/txt-as-md-obsidian/) plugin. That works fine except I don’t get any features specific to todo.txt like syntax highlighting or treating `@context` as `#tags` like @trashhalo’s [now abandoned plugin](https://forum.obsidian.md/t/new-plugin-edit-todo-txt-files-in-obsidian/15410) did.

As a starting point, a functioning plugin would be a combination of @trashhalo’s plugin and the ability of plugins such as txt as md or Obsidian Org Mode to open non-md file formats. A more complex version could have some basic UI for sorting tasks, editing them, marking them as completed, etc.

As to why this would be cool to have: it would allow me to sync my tasks inside Obsidian with mobile apps like [Markor](https://play.google.com/store/apps/details?id=net.gsantner.markor), [Todo.txt](https://play.google.com/store/apps/details?id=net.c306.ttsuper) or [Simpletask](https://f-droid.org/packages/nl.mpcjanssen.simpletask/) for all sort of neat functionality. For, example, I could add a task in Obsidian on my laptop and have it send me a reminder when the task is due on mobile, which would be really useful.

I have some basic understanding of JavaScript, so I’d be happy to help with what I can if someone were to work on this. Thanks!

---

<div class="post-metadata">

**Author:** ![nicu](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/n/779978/32.png) [@nicu](https://forum.obsidian.md/u/nicu)\
**Post date:** [April 10, 2023, 12:59am UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/14 "2023-04-10T00:59:07Z")

</div>

I’ve written a little plugin that provides some todo.txt support, although not quite how it’s discussed above.

It goes through your vault and looks for checklist items containing a `#todo` tag. Those then get saved to a todo.txt file in the vault root folder. It use it with Obsidian Tasks, and it parses its syntax to the todo.txt syntax (📅 → `due:`; ⏫ → `(A)`).

It’s clunky and might not be quite what others need, but I just wanted task reminders on my phone, so it does the job for me!

> **[GitHub - nicucalcea/obsidian-tasks-todo-txt: An Obsidian plugin that generates...](https://github.com/nicucalcea/obsidian-tasks-todo-txt)**
>
> An Obsidian plugin that generates a todo.txt from your Obsidian Tasks - GitHub - nicucalcea/obsidian-tasks-todo-txt: An Obsidian plugin that generates a todo.txt from your Obsidian Tasks

---

<div class="post-metadata">

**Author:** ![miscellane](https://forum.obsidian.md/user_avatar/forum.obsidian.md/miscellane/32/42983_2.png) [@miscellane](https://forum.obsidian.md/u/miscellane)\
**Post date:** [December 31, 2025, 7:25am UTC](https://forum.obsidian.md/t/todos-in-obsidian-syncing-with-todo-txt-file/2460/15 "2025-12-31T07:25:12Z")

</div>

I manage my tasks in a [todo.md](http://todo.md) file in Obsidian. The Todo.txt Mode plugin is nice, but not necessary. It provides syntax highlighting, sorting by context, due date, priority, project, and archives completed tasks to a separate [done.md](http://done.md) file. I’m really happy with it! Combined with Obsidian queries (saved searches) I have a capable system that shows me what I need to see, exactly when I need to see it.
