{
"path": "/blog/2025-07-02-building-a-personal-gtd-system-in-plain-text-with-ai-agents",
"site": "at://did:plc:4vjd3fe2cgzq5d24j4f3zvar/site.standard.publication/3mjz2bzni752x",
"$type": "site.standard.document",
"title": "Building a Personal GTD System in Plain Text with AI Agents",
"content": {
"$type": "dev.disnet.blog.content.markdown",
"markdown": "\nI've been experimenting with trying to build a plain-text [GTD](https://en.wikipedia.org/wiki/Getting_Things_Done) system with [Flint](https://github.com/disnet/flint-note/). I started by just creating a *todo* note type with a couple of simple metadata fields (e.g. *status*, *due date*, etc.) with agent instructions to keep things concise and action-oriented.\n\nCreating and updating todos then happens conversationally:\n\n> Me: make a todo to schedule a dentist appointment today\n>\n> Agent: Done.\n\nLater in the day:\n\n> Me: mark dentist appointment done\n>\n> Agent: Updated.\n\nMy favorite part of this approach is you can then ask the agent \"what should I be working on today\" and it's generally smart enough to look through all your todos but also other kinds of notes (daily logs, project notes, etc.) and give you a pretty intelligent response.\n\nThis is fine but gets awkward to update multiple items at a time. What I wanted was a way of seeing and updating multiple todos at a time while still keeping the benefits of text and agent smarts. So I just asked Flint to make me a special note that it would keep in sync:\n\n> Me: create a todo note that is special called \"today\", it should:\n> - list all the other todo items that should be worked on today\n> - format items like `- [ ] todo item`.\n> - update agent instructions to update this note when updating other notes\n> - when the note has items checked off, synchronize with corresponding note status\n> - have a section called \"Quick Add New Tasks\" to easily add new items\n> - each todo should be in one of three states: now (I want to focus on working on it today), upcoming (ready to be worked on soon), someday (a backlog of stuff to plan out eventually)\n> - the today note should group by status but not show all the someday tasks (just show a count)\n> - items in the now section should be written like `- [ ] + todo item` and items in the upcoming sections are written like `- [ ] todo item`.\n> - when syncing the today note look for changes to the + to move items from the now state to the upcoming or vice versa\n\nFlint then made a \"todo\" note that looks like this:\n\n```markdown\n# Today - [Current Date]\n\n## NOW (Focus on today) 🎯\n- [ ] + Finish quarterly report draft\n- [ ] + Review team feedback on project proposal\n- [ ] + Schedule dentist appointment\n- [ ] + Follow up on client contract (OVERDUE)\n\n## UPCOMING (Ready to work on soon) 📋\n- [ ] Plan next week's team meeting (Due: Friday)\n- [ ] Update budget spreadsheet (Due: End of month)\n- [ ] Research new project management tools\n\n## Quick Add New Tasks\n*Add new todo items below - use + for NOW, - for SOMEDAY, no symbol for UPCOMING*\n- [ ]\n- [ ]\n- [ ]\n```\n\nNow I can easily check off (e.g. change `[ ]` to `[x]`) multiple items and then ask Flint to sync the note and it will update each todo note as completed and refresh the today note.\n\nA day's interaction could look something like this:\n\n**Morning (9:00 AM)**:\n```\nUser opens Today note, sees:\n- [ ] + Write project proposal\n- [ ] + Call insurance company\n- [ ] Review budget numbers (Due: Thursday)\n\nUser adds + symbol to \"Review budget numbers\":\n- [ ] + Review budget numbers (Due: Thursday)\n\nSystem automatically:\n- Updates individual todo note workflow_state to \"now\"\n- Moves task to NOW section in Today note\n```\n\n**Midday (1:00 PM)**:\n```\nUser checks off completed task in Today note:\n- [x] + Write project proposal ✅\n\nSystem automatically:\n- Updates individual todo note status to \"completed\"\n- Adds completion timestamp\n- Moves to \"Recently Completed\" section\n```\n\n**Evening (6:00 PM)**:\n```\nUser adds new task to Quick Add section:\n- [ ] + Book flight for conference\n\nSystem automatically:\n- Creates new individual todo note: \"Book flight for conference\"\n- Sets workflow_state to \"now\" (because of + symbol)\n- Adds to NOW section in Today note\n- Clears the Quick Add entry\n```\n\nI think this is pretty cool, you can build an approximation of a full-fledged GTD app like [Things](https://culturedcode.com/things/) or [OmniFocus](https://www.omnigroup.com/omnifocus) in plain text just by writing down a few simple instructions.\n\nAnother neat thing is I built this workflow conversationally. My example above defined the *today* note in one instruction but I actually went back and forth with the agent a bunch to narrow down how the today note should best be structured.\n\nThis bidirectional sync between plain text and AI agents feels like a fundamental building block. You get the benefits of structured data and automation while keeping the flexibility and ownership of plain text. I suspect this pattern will be useful beyond task management.\n",
"sourceFormat": "markdown"
},
"description": "Building a GTD system using plain text and AI agents through Flint. The key innovation is a \"Today\" note that acts as a centralized dashboard, automatically syncing with individual todo notes through conversational commands and simple text formatting (using + for priority tasks, checkboxes for completion). This approach replicates GTD apps like Things or OmniFocus while maintaining the flexibility of plain text.",
"publishedAt": "2025-07-02T00:00:00.000Z",
"textContent": "I've been experimenting with trying to build a plain text GTD system with Flint. I started by just creating a todo note type with a couple of simple metadata fields (e.g. status , due date , etc.) with agent instructions to keep things concise and action oriented. Creating and updating todos then happens conversationally: Me: make a todo to schedule a dentist appointment today Agent: Done. Later in the day: Me: mark dentist appointment done Agent: Updated. My favorite part of this approach is you can then ask the agent \"what should I be working on today\" and it's generally smart enough to look through all your todos but also other kinds of notes (daily logs, project notes, etc.) and give you a pretty intelligent response. This is fine but gets awkward to update multiple items at a time. What I wanted was a way of seeing and updating multiple todos at a time while still keeping the benefits of text and agent smarts. So I just asked Flint to make me a special note that it would keep in sync: Me: create a todo note that is special called \"today\", it should: list all the other todo items that should be worked on today format items like [ ] todo item. update agent instructions to update this note when updating other notes when the note has items checked off, synchronize with corresponding note status have a section called \"Quick Add New Tasks\" to easily add new items each todo should be in one of three states: now (I want to focus on working on it today), upcoming (ready to be worked on soon), someday (a backlog of stuff to plan out eventually) the today note should group by status but not show all the someday tasks (just show a count) items in the now section should be written like [ ] + todo item and items in the upcoming sections are written like [ ] todo item. when syncing the today note look for changes to the + to move items from the now state to the upcoming or vice versa Flint then made a \"todo\" note that looks like this: Now I can easily check off (e.g. change [ ] to [x]) multiple items and then ask Flint to sync the note and it will update each todo note as completed and refresh the today note. A day's interaction could look something like this: Morning (9:00 AM) : Midday (1:00 PM) : Evening (6:00 PM) : I think this is pretty cool, you can build an approximation of a full fledged GTD app like Things or OmniFocus in plain text just by writing down a few simple instructions. Another neat thing is I built this workflow conversationally. My example above defined the today note in one instruction but I actually went back and forth with the agent a bunch to narrow down how the today note should best be structured. This bidirectional sync between plain text and AI agents feels like a fundamental building block. You get the benefits of structured data and automation while keeping the flexibility and ownership of plain text. I suspect this pattern will be useful beyond task management."
}