[HN Gopher] Show HN: Wren - simple yet extensible task managemen...
       ___________________________________________________________________
        
       Show HN: Wren - simple yet extensible task management with CLI,
       Telegram, HTTP
        
       Author : yoavm
       Score  : 97 points
       Date   : 2024-01-30 14:05 UTC (8 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | yoavm wrote:
       | 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).
        
         | kova12 wrote:
         | How do you take notes when computer is not available? Do you
         | just VPN home and connect to the http endpoint, or...
        
           | yoavm wrote:
           | 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.
        
             | rozenmd wrote:
             | That's brilliant.
        
         | jonnyparris wrote:
         | 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?
        
           | yoavm wrote:
           | 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.
        
         | karpour wrote:
         | 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?
        
           | yoavm wrote:
           | 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.
        
         | freetanga wrote:
         | 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)
        
           | yoavm wrote:
           | 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.
        
       | stefanos82 wrote:
       | For a moment I thought it was about wren programming language...
       | [1]
       | 
       | [1] https://wren.io/
        
         | samatman wrote:
         | That was my assumption as well.
         | 
         | 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.
        
       | hanniabu wrote:
       | This doesn't look simple at all
        
         | yoavm wrote:
         | 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?
        
       | high_priest wrote:
       | 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`?
        
         | yoavm wrote:
         | 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!
        
       | dewey wrote:
       | 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.
        
         | yoavm wrote:
         | 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.
        
       | mbigras wrote:
       | This is very cool! I like your approach in your README to include
       | many fun and relevant little examples; for example:
       | 
       | > You can use [Wren summary option] to update /etc/motd daily, or
       | through the Telegram bot
       | 
       | Bravo! I'll give Wren a try.
        
       | dansalvato wrote:
       | 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.
       | 
       | Those are my two cents, keep up the good work!
        
         | yoavm wrote:
         | 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!
        
           | umtksa wrote:
           | wow love it This is what I want in obsidian and maybe even an
           | ollama integration
        
       | germandiago wrote:
       | There is another project with several thousands of stars called
       | Wren. It is a scripting language. Maybe a name change should be
       | considered.
        
         | wilgertvelinga wrote:
         | There is also a carbon offset company called wren, they're even
         | Y Combinator alumni: https://www.ycombinator.com/companies/wren
        
           | keb_ wrote:
           | There is also a bird called wren that is very popular. A name
           | change may be in order so that people don't confuse this
           | project with the actual bird:
           | 
           | https://en.m.wikipedia.org/wiki/Wren
        
             | SLWW wrote:
             | 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.
        
         | SushiHippie wrote:
         | They renamed it from knowts to wren 3 days ago
         | 
         | https://github.com/bjesus/wren/commit/d04f619f8efc6ae2c0831f...
        
       | svilen_dobrev wrote:
       | if u want to complicate it :)
       | 
       | > 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
       | 
       | just an idea..
        
         | yoavm wrote:
         | that's a cool idea, I'll look into it!
        
       | skeptrune wrote:
       | 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.
       | 
       | Thanks for making and publishing this Yo'av!!
        
         | yoavm wrote:
         | Totally right, 100% I should have said lightweight instead of
         | simple. I'll blame it on not being a native English speaker ;)
         | 
         | I'd love to add other integrations. Do contact me on the repo
         | if you need any help with that!
        
       | seabass-labrax wrote:
       | Fun fact: there is more than one bird in the logo. I definitely
       | spy > 2 sets of claws :)
        
       | monkeydust wrote:
       | 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.
        
       ___________________________________________________________________
       (page generated 2024-01-30 23:01 UTC)