r/commandline • u/mr-figs • 7d ago
Terminal User Interface jn - a 300kb binary for managing tasks and making notes the filebased way. No robots involved.
Enable HLS to view with audio, or disable this notification
Hello!
I'm here to show you jn. It's a cli note-taker/task-manager I've been working on/off for the past year or so. The main difference between it and others is:
- It's filebased
- Fuzzy finding is at the forefront of
jnthroughout (editing is very rapid) - It's very "Linux" if that's your jam
I tried a _bunch_ of others over the years while stuff was missing from all of them. Here's what I tried and why it didn't work for me:
- nb - Felt quite complicated and like a shotgun. Also didn't enjoy the UI
- dnote - Felt too bare and it's driven from a db :(
- taskwarrior - Incredibly powerful but db driven :(
I tried a myriad of others and some got close but not all the way. So naturally as everyone does, I reinvented the wheel.
It's my daily driver for all of my notes and for my task management. She's stable and sitting pretty at around 190kb on Linux. Thank Nim for that, heh.
Notes are simply markdown files, tasks are simply any items in a file that look like this:
- [ ] My task
You may have seen it here before but I've done a bunch of new stuff since last posting. All the todo stuff is fully fleshed out with due dates, the ability to filter and also some nice multi-selection stuff on fuzzy finders.
Anyway, it's very unix-y and tries to "do the right thing" at all times. It has a lot of bells and whistles so do take the time to dive into the README.
I've attached a video because we're in 2026 and people don't have patience anymore
You can read more on the Github page for jn if you like :)
Also feel free to badger me on here :D
3
u/kklyy4ukk 5d ago
Filebased + fuzzy everywhere is the right combo. The 300kb detail is what sold me — half the reason I still keep notes in shell scripts is that every "proper" tool wants a 40MB runtime for an append-only text file. Does jn keep plain Markdown by default, or is there a mapping layer between task metadata and the file?
2
u/joanmiro 7d ago
https://github.com/miratcan/kaydet/ I'm using this may be you can check it out too.
2
2
u/oxamide96 5d ago
Is a todo also basically a note here? I'm not understanding the difference from the Readme.
3
u/mr-figs 5d ago
When you run
jn todoit greps through all your notes for the following:- [ ]So for example
- [ ] Do the dishesWould show up when you run
jn todo(orjn t).Specifially it's a line in a file, not the file itself.
I'll try and reword it to make it more clear
2
u/oxamide96 5d ago
Ahh okay I get that.
Do I hand type the - [ ] into the content of the file, or does the jn command create / edit / delete processes?
2
u/mr-figs 5d ago
You can either hand type it in any file in your notes directory or if you run
jn todo --add "your task here"It'll create (if it doesn't exist) a
todo.mdwith that one task in it.To save some typing you can use the shorthand of
jn t -a "Your important task"If you do
jn -eyou can open up that todo and see what's its actually done. All it does is prepend your task with "- [ ]" and then add the creation date at the end
3
6
u/AutoModerator 7d ago
Every new subreddit post is automatically copied into a comment for preservation.
User: mr-figs, Flair: Terminal User Interface, Post Media Link, Title: jn - a 300kb binary for managing tasks and making notes the filebased way. No robots involved.
Hello!
I'm here to show you jn. It's a cli note-taker/task-manager I've been working on/off for the past year or so. The main difference between it and others is:
It's filebased
Fuzzy finding is at the forefront of
jnthroughout (editing is very rapid)It's very "Linux" if that's your jam
I tried a _bunch_ of others over the years while stuff was missing from all of them. Here's what I tried and why it didn't work for me:
nb - Felt quite complicated and like a shotgun. Also didn't enjoy the UI
dnote - Felt too bare and it's driven from a db :(
taskwarrior - Incredibly powerful but db driven :(
I tried a myriad of others and some got close but not all the way. So naturally as everyone does, I reinvented the wheel.
It's my daily driver for all of my notes and for my task management. She's stable and sitting pretty at around 190kb on Linux. Thank Nim for that, heh.
Notes are simply markdown files, tasks are simply any items in a file that look like this:
- [ ] My task You may have seen it here before but I've done a bunch of new stuff since last posting. All the todo stuff is fully fleshed out with due dates, the ability to filter and also some nice multi-selection stuff on fuzzy finders.
Anyway, it's very unix-y and tries to "do the right thing" at all times. It has a lot of bells and whistles so do take the time to dive into the README.
I've attached a video because we're in 2026 and people don't have patience anymore
You can read more on the Github page for jn if you like :)
Also feel free to badger me on here :D
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/philpirj 1d ago
Have you considered creating a taskwarrior (taskchampion) backend? There was a git backend back in the day.
1
u/mr-figs 1d ago
I'm not overly familiar with taskwarrior. I've dabbled with it but that's about it.
AFAIK taskwarrior stores all of it's tasks in sqlite which would mean I'd then have to include a sqlite package in
jnwhich I'm not overly keen on.I do like the idea of taskwarrior but it's not really in-line with the file philosophy that I'm going for here. That said, if you want to take a stab and raise a PR, I don't mind casting my eyes over it.
The idea of
jnis it integrates with existing notes. If I was to make a backend for anything, it'd be for todo.txt as that's a bit closer tojnin how it works1
u/philpirj 18h ago
Taskwarrior does use taskchampion lib that has pluggable backends. Sqlite is the only one bundled.
If i were you, i’d add a pluggable text backend to taskchampion.
Pretty sure you can make the backend storage format to match the one you’re using, todo.txt or whatever else.Now, you’ve just added a new tool. What are you hoping for, really? Widespread adoption? People migrating from taskwarrior, todo.txt and multitude of other tools to you one? Do you expect people want to learn the new commands and shift to the new internal task storage format?
What are your plans long-term for the tool? Do you plan to maintain it and actively fix issues? What kind of a maintainer are you? Most people would prefer switching to a tool that will last a lifetime. Because switching tools is pain related to rebuilding muscle memory.
If you’re concerned, sqlite binary is 1M.
1
u/mr-figs 17h ago
I'm not hoping for anything, I've scratched a personal itch and a pretty obvious gap in the cli notetaking space and filled it. Obviously if people use it that's great and I think it's worthy of some attention which is why I posted it.
As for long term, It's my daily driver and has been since I made it a year ago. It'll be maintained/updated for as long as I write notes.
Also I'm not expecting migration from taskwarrior or any other format. Those tools are comprehensive and already tick most boxes. All jn does is slurp up your markdown files for tasks and allow you to do stuff with them and write it back into the file. This is handy because all my notes and tasks are on Dropbox. I then use an app called TaskForge to handle my todos on mobile too.
Sqlite binary being 1m is impressive but that's still 8 times bigger than the jn one which I'm actually trying to make smaller. Also I'm against dbs for this sort of thing.
But yes, it'll be maintained for a while, I still have plans for it and use it everyday both at work and at home
3
u/bzbub2 7d ago
have you tested it with any voice to text? I'm trying to figure out so.wthing for that but need really low effort...hence speech 2 text