Looks like a nice tool, but it seems to be built around a very specific workflow that you've found works for you.<p>Personally I have been managing most of my plaintext notes with the minimal tools required to do so: a text editor and a file system. For technical notes about software I add git into the mix[1], mostly as a means of synchronization between machines.<p>[1]: <a href="https://m-chrzan.xyz/blog/cheatsheets.html" rel="nofollow">https://m-chrzan.xyz/blog/cheatsheets.html</a>
Hey Everyone,<p>I wanted to share a tool I built out of a desire to easily create and organize plain-text notes on the command line. textnote is a CLI for quickly creating, opening and managing daily plain-text notes. I built it to encourage myself to practice daily note taking by making it dead simple to open a prebuilt, templated, dated note file in Vim. I thought it would be good to share here with the HN community because it is intentionally lightweight and meant to be paired with other commandline tools (grep, fzf, etc) for additional functionality.<p>The key feature built into textnote that I couldn't find elsewhere is archiving. Running its archive command will consolidate notes into monthly archive summary files and (optionally) remove the original daily files to declutter and turn your notes organized records over time.<p>I hope you might find it useful and I'd love to take any feedback or suggestions that might come to mind!
As someone who has been creating plain text notes since 2001 I found in practice daily notes tend to be a bit too scattered. Usually if you're working on something and you want to reference your notes the next day it's a nicer experience to have that in the same notes file as today instead of yesterday. Over the decades I've settled on a YYYY-MM.txt file, or 1 file per month.<p>Last year I open sourced <a href="https://github.com/nickjj/notes" rel="nofollow">https://github.com/nickjj/notes</a> which is similar'ish to this tool. It supports opening your notes in any editor (using $EDITOR), launches this month's notes with `notes` but also lets you create notes with `notes hey just writing a note` or sending notes in from stdin with `echo "cool" | notes` (useful for pasting a note).<p>Also, if you really wanted daily notes you could easily change the date format to include -%d. After doing notes by hand for so long I initially wrote the script with daily notes thinking it would be better but very quickly reverted back to monthly notes.<p>The whole thing is a 25 line bash script so it's super easy to edit if you don't like what it does by default.
I think any new plain-text based tool needs a comprehensive section (and support the workflow) on how to synchronize across devices using git or syncthing.<p>I tried noteKit and zettlr and so many more and I am willing to give this one a try, but I am always hesitant to reverse-engineer the file-structure and create autocommit/push/pull/etc. scripts to handle all the syncing across my work devices.<p>As a proof of concept I once created a "personal log" (where you could just put a few lines of what you're currently doing and why and for whome) and it was basically a git-wrapper where empty commits were created and all the data was in the commit message. A simple sync-command then pull-rebased and pushed everything.
Of course, the append-only nature of this model made synchronization incredibly easy.<p>I just wish that distributed workflow was more of a consideration for authors of personal organization tooling.<p>Edit: of course, also plain-text accounting, for example. The plain-text nature brings a lot of possibilities that are rarely used to the fullest.
I see this has rolled off the front page already but I just wanted to chime in and say this is pretty neat. I recently cobbled together almost the exact same thing in Python, the main differences in mine are:<p>* the notes are filed into dirs by year and then month, so I don't need an archive command
* the "todo" section serves as my backlog and is automatically carried over from one day to the next
* I have a command to take all of last week's "done" items and email them to my manager<p>The source code for mine is not public because it was lashed together out of duct tape and optimism.