DevLog ~ CLI Developer Tool

I’ve started working on a new tool for developers called DevLog. The use case for this tool is mostly for developers who work extensively in the terminal. It is a command-line tool to allow users to log their work sessions. Currently, I have developed a simple Python prototype that allows you to start a new session in the root directory of your current project. As you work, you can add notes to this session.

For example, if you are currently working on a new feature for your software, and encounter something that is worth documenting for your own sake, instead of writing down on a piece of paper or writing a note in another software, you just jump to your terminal, type devlog note "need refactor xyz in file zyx.py line 123” and your note will be logged in a JSON file into ~/.devlog/session/{timestamp}.json. Then, once you are done with your session, typing devlog stop will stop the current session and export your logs in a markdown file into ~/.devlog/sessions/{timestamp}.md.

Moving forward, I want to export the markdown logs into a dashboard for easy access to both your current and past logs. I also planned on implementing other logs that will be automatically recorded based on events. I want the tool to listen to any git changes, such as every time the user uses git commands such as git add . or git commit -m “my cool new feature“ or any other logs regarding git. I also want it to log some shell commands, such as when the user uses the terminal to create a new file or folder (mkdir, touch), and even anything related to development, except for common shell commands like ls and cd, to avoid flooding the logs with unnecessary noises.

Another idea for this project is to log every time a user edits, creates, or removes a file they are working on. This won’t be recorded via the CLI, but it will automatically be logged when the user makes those changes in their text editor or IDE. Additionally, to avoid flooding the logs with noise, only files that have been changed but haven’t been in the log for a certain amount of time (to avoid logging every time the developer hits Ctrl-S) will be recorded.

Developers can think of this tool as their personal engineering notebook, where every action taken during their programming session is recorded and displayed on a user-friendly dashboard. This dashboard allows them to visualize their work over a specific period. The entire process is done offline, ensuring user privacy as all data is securely logged on the user’s disk without any online access. It is up to the user to share their dashboard if they wish.

This project is open-source, and I welcome any contributions, suggestions, or feedback regarding the implementation or the project as a whole.

GitHub Repository: https://github.com/sandbox-science/devlog


You'll only receive email when they publish something new.

More from 🜨 ᴀꜱᴛʀᴀ ᴀʟ-ᴍᴀᴀʀɪꜰᴀ ☾
All posts