Seems like there's a lot of criticism in the comments about this not being "simple". When "simple" is used to describe an app, it can either mean "easy to use" or "minimal infrastructure". People are interpreting it to mean the former, but it's clearly the latter.
I use Obsidian for notes and pen and paper for task management (Bullet Journal), but I always love poking around at productivity apps that value this kind of "simplicity". It's joyful to use my computer as a personal tool to do things the way I want to do them, rather than being at the mercy of whichever app sucks the least. The sad reality is that we're moving ever further away from that style of computing, which makes me value apps like this.
My one piece of constructive criticism would be to rework "Integrations" as "Extensions", maybe each in their own Python module that interfaces with a core API. For example, right now I see the GPT summary integration as a `get_summary()` function in core.py, but it feels like it shouldn't belong there. Spinning off the "integrations" into separate extension modules would not only help with the messaging of Wren being simple, but they would also serve as good examples for users to build their own extension modules. Hell, having a Wren extensions folder in .config would be awesome, like if you could just drop .py files in there to add new extension commands to Wren.
Thank you so much for such an insightful comment! I think you touched on some very good points. Generally speaking, the Telegram / HTTP integrations are separate, but you're about the get_summary() function - that's mainly because it's used both in the Telegram bot and in the CLI interface. I love the idea of letting extensions live completely separately from the core, will think more about it!
Hey, I built Wren after being a little frustrated with everything else. I wanted something that let's me (1) enter tasks as quickly as possible, (2) let's me do it on the go, (3) can be easily backed up, (4) requires no fiddling around.
I'm super happy with how this turned out. Hopefully someone somewhere would also find this useful!
The following is straight from the README:
Wren is simple because every note is one file. The filename is the title, and the content is the note's content. This makes it very easy to sync tasks between devices, as conflicts can almost never happen, even if syncing isn't done real time. The files are plain text, so you can just write. If you want a task to repeat every Saturday you just prefix it with a cron syntax, e.g. 0 8 * * 6 weekly swim, and if you want a task to appear from a specific time you just start it with the date, like 2030-01-01 check if Wren became super popular.
Wren is advanced because it is very extensible - it comes (optionally!) with a Telegram bot that you can chat with to manage your notes, and even get AI-driven daily summaries as if you had a personal assistant. It also includes a tiny HTTP server that you can use to manage tasks using an API or from the browser, which can be used for displaying you tasks elsewhere (e.g. in your e-reader).
Great job! Last year I switched from Todoist to task warrior and taskwarrior-tui. I am looking into TaskNote to extend the notes ability.
What would you say is your differentiator? What drove you to write this for a non-covered aspiration (out of curiosity)
BTW great idea on Telegram. Might try to replicate for Taskwarrior as my mobile set up is iffy (iCloud, a-shell for local taskwarrior, iOS shortcuts for a gui on top)
Thank you! It's been a long time since I tried Task warrior, so I might be quite off. Two main things come to mind: I realized that most task management apps offered many features that fooled me into spending time on organizing my data instead of doing my tasks. Tags, sub-tasks, projects, reminders, due dates. For me (and it could be a very personal thing) all these features became a hurdle as I was spending time trying to figure out how to tag my task or rethinking my hierarchies etc. I realized I wanted a system that does less.
The second thing that comes to mind is the extensibility that comes for free when every task is a file. I can easily copy an email to my todo folder and now it is a task. I can delete a task with `rm`. The fact that the notes themselves actually have absolutely noting to do with the management system is something that I experience as a very nice advantage.
Great job shipping this! The telegram interface is a nice touch.
Can you expand more on your frustrations were with something like Todoist (my personal fav) for meeting your success criteria? What are most todo apps getting wrong / conflicting with your preferred workflow?
thank you :) to begin with, I wanted it open source & local first. Anything that wasn't that wasn't really considered. most todo apps that passed this criteria were either a pain to work from the terminal, or were uncomfortable to use on the go (often due to syncing), or forced me to use their designated tools when working with the notes.
Using the telegram bot - you just text it. You could have the bot running on some server and sync the tasks from there to your computer, but it's really not needed. One of the nice things about Telegram bots is that the messages are queued until the bot becomes available, meaning I can text my bot on the go and the moment my laptop opens all the files are created.
Fabulous. Thanks for taking the time to document it with a clear video. Have so many interfaces raises my confidence in being able to add and access tasks rapidly and from anywhere.
The Telegram integration is likely the killer feature.
This is fantastic, the 3 different interfaces make a lot of sense, and having a cli makes it a breeze to plug other stuff in! I'll give this a try soon!
Is there json output for the cli by any chance?
Thank you! The CLI doesn't do JSON output for now, curious about your use case? I assume you can slap `jq` on it like this: `n | jq -R -s -c 'split("\n")[:-1]'`
The HTTP interface will do JSON unless you include `Accept: text/html` in your requests.
I know that it's basically impossible to name a project without some sort of collision with someone else's work, but at the same time, it would be absurd to name a library "Ruby" or "Python".
I'm not sure what the threshold is, or should be, for that kind of thing, but my gut feeling is that Wren (the language) is over that threshold. If the author were to type a few more bird names into GitHub search, they would discover that, yeah, a name collision is basically inevitable, but there are a lot of recognizable species names for which it would matter less.
There is also an oldish animated show (still don't know what it's intended audience was) called "Ren and Stimpy", Ren sounds far too similar to Wren.
A name change may be in order so people don't confuse the bird, the language, or the company, or the notes taking application with an "adult" oriented TV show.
I might say "lightweight" instead of simple. Read the op's comment and also some of the other criticism and think maybe that's a better word. I would say that I've never used other notetaking/todo software because it's too "bloated" instead of "complicated".
In general this looks Hella cool! I will have to set it up and try it. One thing I'd maybe want to PR or add on a fork is a Signal integration.The minimal web UI is also huge for me, but maybe I'd use the CLI from termux most of the time instead.
Congrats on shipping your idea and even having a polished README. I'd contest the "ridiculously simple" though.
I fully understand how task management seems to be such a personal subject that every developer wants to re-invent it for themselves, but after going through multiple iterations over the years I landed on the included Notes.app, which is available on all my devices and has bulletproof sync and I will never have to install, update or maintain it.
Thank you! I have never used Notes.app since it isn't available on any of my devices, so I cannot say anything in comparison to that.
However, it's interesting that what I see as options for extensibility is seen as complex by others. Telegram / HTTP / AI can be seen as plugins. You don't have to enable them, and in fact their dependencies aren't installed by default. As I wrote elsewhere on this thread, I think that the idea of having every task as a file living in either the "todo" or the "done" folder is pretty simple, using timestamps for future tasks and cron syntax for routines is all about not reinventing the wheel.
Incredible how complicated people can make a simple list or relations structure.
It feels like a complicated data exchange system, way beyond the task of "task management". How does it improve my life beyond a tasks list in my favorite notes app, `Taiga`/`Jira`?
What parts of this did you find complicated? I thought that placing a plaintext file in a folder and moving it to another folder when it's done is pretty simple, but if you find Jira simpler, that's amazing!
I replaced all my task methods years ago with just entering slots into my diary. Most are early morning when no one books meetings, if the task requires time to think then I put it during the day, effectively blocking out time so I can get it done. Not perfect for everyone but for me it works. No apps needed.
Looks pretty interesting! I've been trying to use taskwarrior and taskwarrior-tui recently, but might give this a try too.
One complaint I have so far is putting the cron-style syntax in the filename. Having *s in a filename feels weird and probably makes it harder to work with other cli tools
> Tasks starting with a YYYY-MM-DD will not appear in the list of tasks before their time arrived
it might be useful to have a way to be warned (warmed?) a few weeks/days/hours before that something should happen. i.e. put in some metadata-first-line about that in the note
interesting, why not? i thought it's pretty simple that you can create a task with "n your task goes here" and mark it as done with "n -d goes", especially knowing that behind the scenes it's essentially doing "touch ~/notes/your\ task\ goes\ here" and "mv ~/notes/your\ task\ goes\ here ~/notes/done". Which simpler notes taking system do you have in mind?
Apologizes. My intention was to create something that works for me, and I am a developer. I thought posting it on Hacker News would be suitable as there are some other developers here.
I use Obsidian for notes and pen and paper for task management (Bullet Journal), but I always love poking around at productivity apps that value this kind of "simplicity". It's joyful to use my computer as a personal tool to do things the way I want to do them, rather than being at the mercy of whichever app sucks the least. The sad reality is that we're moving ever further away from that style of computing, which makes me value apps like this.
My one piece of constructive criticism would be to rework "Integrations" as "Extensions", maybe each in their own Python module that interfaces with a core API. For example, right now I see the GPT summary integration as a `get_summary()` function in core.py, but it feels like it shouldn't belong there. Spinning off the "integrations" into separate extension modules would not only help with the messaging of Wren being simple, but they would also serve as good examples for users to build their own extension modules. Hell, having a Wren extensions folder in .config would be awesome, like if you could just drop .py files in there to add new extension commands to Wren.
Those are my two cents, keep up the good work!