Completion Notifier #01: Progress, New Features, and What’s Next
/ 4 min read
It’s been a while since I introduced Completion Notifier, the tool I started building to solve the problem of context-switching during Terraform runs. Since the initial post, I’ve been trying to improve the tool and add features that make it even more useful. In this post, I’ll walk you through the progress so far, the new features I’ve implemented, and what’s coming next.
Reflecting on the last iteration
When I first released Completion Notifier, it was a simple Rust-based tool designed to send desktop notifications when a specific process (like Terraform) is completed. The goal was to reduce distractions and help me stay focused on other tasks while waiting for long-running processes to finish. The initial version worked well, but I quickly realized there was room for improvement. Sending desktop notifications was a good start, but I wanted to make the tool do more 🚀.
What’s New in Completion Notifier
Since the first release, I’ve been focused on expanding the functionality of Completion Notifier. Here are some of the key updates:
-
Multi-Destination Notifications: One of the best features is the ability to send notifications to multiple destinations. Now, Completion Notifier supports sending notifications to Email and Google Chat. With this extension now the program can be used in environments without desktop notification daemons like piplines and remote servers. Destinations can be configured by updating the
~/.config/completion-notifier/config.toml
. -
Profiles: Now users can create profiles to create collections of destinations. For example, users can create separate profiles for work and personal use. It is also possible to combine profiles so notifications will be sent to all the destinations combined. Profiles defined in the
config.toml
can be passed into the program by using the flag-p
or--profile
-
Triggers: Sending notifications on process completion is not enough in some cases, There are situations where processes expect user input from stdin. Now users can pass a list of characters, words or strings that the specific process prints out when asking for user inputs. Completion Notifier will audit the
stdout
and will send a notification everytime it sees any defined values passed and send a notification realtime. -
Config file: The configuration file for Linux can be found in
~/.config/completion-notifier/config. tool
, for Mac and windows config file can be found inC:\Users\Alice\AppData\Local
and/Users/Alice/Library/Application
respectively.
Challenges and Lessons Learned
Not sure which take is the right one, but first when I started the project I wanted to write everything from scratch to reduce the no. of dependencies. I intended to make it a challenge while rewarding myself with some knowledge, But it took a lot more time than expected to understand some stuff, Then I realized people write libraries to be used on other projects, and creating the actual working program worth more. I am still learning what is related but notgoing to implement those in the same run. So most probably after releasing the project, I will revisit and try to implement some of the components I had to rely on someone else quality work, just for the sake of evaluating myself to see if I am capable of implementing them.
What’s Next for Completion Notifier
There is lot to work on the project. Here are a list of items that i am planning to take a look in the next iteration, I do not have a properly plan on setting a priority level for the following items, but i will try to work on what i can complete fast first.
-
Improve notificaitons: Notificatios messages can be improved a lot, tbh, notifications messages are not even implmented yet, Just placeholders atm. May be i can consider adding notification templates for users to define how notifications should look.
-
More Destinations: Planning to add more destinations. Including Slack, Whatsapp and Discord
-
Packaging: I am planning to first release it to brew. If you do not use brew you can install the lastest version using the
./install.sh
. All you need is rust installed on your computer 😌.
How You Can Help
Completion Notifier is an open-source project, and I’d love to hear your feedback and suggestions. If you’ve tried the tool and have ideas for new features or improvements, feel free to open an issue on the GitHub repository. If you’re a developer, contributions are always welcome! Together, we can make Completon Notifier the go-to tool for process completion notifications 🤝.
Wrapping Up
Eventhough, the program is not yet completed, i use this on a daliy basis with desktop notifications and gchat. You can try it too, but yet it is not the best. So I am looking forward to sharing more updates as I continue to work on new features and improvements. Stay tuned for the next post. Until then, happy coding!