
I spend a lot of time experimenting with my Linux setup. New terminals, editors, themes, utilities, and sometimes entire workflows. Arch Linux makes it incredibly easy to try things out, which is both a blessing and a problem.
Over time, my system became a reflection of constant experimentation. I would install tools using pacman, try alternatives through Flatpak, build something from source, and occasionally remove things just as quickly. But after a while, I started noticing a gap. I had no clear way to answer simple questions like what I installed last month, how I installed it, or why I removed something that once seemed useful.
System logs do exist, but they are scattered, inconsistent, and not meant to be read like a story of how your environment evolves. They tell you what happened, but not in a way that helps you understand your own decisions.
That frustration led me to build idid, a small tool designed to track my own workflow.
๐ What I Created
idid is a lightweight CLI utility written in Rust that acts as a personal software activity journal. Instead of relying on fragmented logs, it allows me to explicitly record every install and removal in a clean, structured format.
Each action is logged with a timestamp, the package name, and the source it came from, whether that is pacman, Flatpak, or a manual build. Over time, this creates a simple but powerful timeline of how my system changes.
What started as a small utility quickly became something I use every day. It gives me visibility into my own habits, helps me retrace decisions, and makes my environment more reproducible.
๐ Features
Simple CLI commands to log installs and removals
Tracks source of installation (pacman, Flatpak, source, etc.)
Generates a clean, human-readable CSV log
Fast, minimal, and dependency-free binary
๐ง What I Am Improving
This project is intentionally simple, but there is a lot I want to build on top of it:
Adding notes to capture why something was installed or removed
Building a better history view with filtering and search
Tracking currently active packages
Moving to XDG-compliant storage for better system integration
Exporting logs for analysis or reproducibility
๐ ๏ธ Tech Stack
Rust
CLI design and file-based logging
๐ฏ Why This Project Matters to Me
This project is less about solving a large-scale problem and more about solving a real, personal one well.
As someone who constantly experiments with tools and workflows, I wanted a way to make that experimentation more intentional and traceable. idid gives me that clarity. It turns a messy history of installs and removals into something structured and understandable.
It also represents something important in my journey as an engineer. Coming from a machine learning background, I wanted to step into systems programming and build something fast, minimal, and practical. Rust gave me that opportunity, and this project became my way of learning it by solving a problem I actually face.
In the end, idid is a small tool, but it reflects a bigger idea: understanding your own systems better by making your actions visible.

