For the past five weeks in my OSD class we’ve been building Release 0.1, a small command-line tool that inspects local Git repositories and produces a single, well-structured text file of the repo content optimized for sharing with Large Language Models (LLMs). The tool is lightweight but tries to save time for anyone who needs to package up a project for analysis. Today I contributed to a classmate’s repo by adding a simple but useful feature: the ability to store default options in a TOML “dotfile” so you don’t have to type the same CLI flags every time.
The code change itself was small, I added a loader in main.py
that looks for a dotfile .share-my-repo-config.toml
, tries Python 3.11’s tomllib and falls back to tomli on older Pythons, and applies values from the file as defaults while still letting any command-line option override them. That “flags always win” precedence was the most important bit as the program only applies a config setting when the corresponding CLI argument is still at its default.
While working on the code I ran into a few problems, partly because I’m still getting comfortable with Python and hadn’t used it much before. It took me a while to understand the project flow, but once I did the code became easier to follow than the C++ I’ve used in my rep. Python made the implementation shorter and more readable, which was a big help. Implementing the TOML support itself was a great learning moment as TOML was new to me, so I had to do some research to figure out the best parser to use and how to integrate it cleanly.
The git and remotes workflow was another important lesson. I started by opening issue-8 on my classmate’s repo, forked his repo, and created a feature branch. I pushed changes to my fork and opened a Draft PR to share progress.
Top comments (0)