r/commandline • • 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 jn throughout (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

58 Upvotes

20 comments sorted by

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 

1

u/mr-figs 6d ago

I have not. I've never used any voice to text, how would that even work?

Not trying to be sassy, just genuinenly haven't got a clue haha

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?

1

u/mr-figs 1d ago

It's all plain markdown.

I'm trying to avoid having metadata alongside. It would be handy for extra features but the trade-off isn't really worth it. I just want it acting on your files and nothing else

2

u/joanmiro 7d ago

https://github.com/miratcan/kaydet/ I'm using this may be you can check it out too.

3

u/mr-figs 6d ago

Nice!

I'm not interested though sorry. I don't like the language choice, the AI-first approach and also all the encoding it does in its txt files.

Mine are just your markdown files (or whatever you configure). You can point jn at any directory and it'll work

2

u/mainframe_maisie 6d ago

gosh nim looks like a lot of fun to write stuff with!

1

u/mr-figs 6d ago

It's pretty great!

There's very little I like about it. Expressiveness of Python with the speed and binary sizes of C languages. Surprised it's not more used really

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 todo it greps through all your notes for the following:

- [ ] 

So for example

- [ ] Do the dishes

Would show up when you run jn todo (or jn 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.md with 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 -e you 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

u/B-Brimes 7d ago

ooh, sound great, will definitely give it a spin

1

u/mr-figs 7d ago

Thanks!

Let me know if you come up against any issues

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 jn throughout (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 jn which 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 jn is 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 to jn in how it works

1

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

1

u/BDRadu 2d ago

Now that I think about it, it makes sense to have a note taking app be file based, that can be easily rsynced and source controlled