Payton.Codes

Musings on life, games, and code

fini, an interactive cli task manager

I’ve done it; as with every programmer into the depths of time… I’ve written yet another “to do list” program.

Task managers or “to do list” programs are so ubiquitous as to be cliché at this point. It’s a classic coding exercise for learning a language to write one as it is probably the simplest example of a CRUD (Create, Read, Update, Delete) program which is likely the most common kind of software to to exist.

Well, I’ve just released fini, a Rust-based, interactive cli task manager, and it’s not because I wanted to do a coding exercise. I needed a way to keep track of my work tasks in an efficient way without needing to leave the terminal where I spend most of my time and I couldn’t find anything that did that quite right.

As you might expect, fini comes with a bunch of command line actions which you can use to manage your tasks:

fini add "Write that documentation"
fini list
fini check 1
fini clear

But the main way that it’s intended to be used is in an interactive mode with a main loop and fuzzy-search prompts.

In addition to being fast and efficient, fini also stores all its data in markdown. This should allow easy integration with other tools like Obsidian and AI agents. It also means you can edit the data manually if you’d like.

Archived tasks are kept in separate markdown files, one per calendar month. fini never deletes its own archive files but the monthly organization should allow you to easily determine a system for removing old tasks you no longer need.

If you want to give it a try yourself, you’ll need cargo installed and then just run this:

cargo install --git https://github.com/sirbrillig/fini

I tried to make fini a great general purpose task tracking tool. If you have any suggestions for how to make it better, please open an issue!

Photo by Glenn Carstens-Peters on Unsplash


Comments

Leave a comment