---
title: "Having a \"tools\" repo as a developer"
date: 2026-01-04
canonical: https://solmaz.io/tools-repo
license: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)
---

I am a fan of monorepos. Creating subdirectories in a single repo is the most convenient way to work on a project. Low complexity, and your agents get access to everything that they need.

Since May 2025, I have been increasingly using AI models to write code, and have noticed a new tendency: 

- I don't shrug from vendoring open source libraries and modifying them.
- I create personal CLIs and tools for myself, when something is not available as a package.

With agents, it's really trivial to say "create a CLI that does X". For example, I wanted to make my terminal screenshots have equal padding and erase cropped lines. I created a [CLI for it](https://github.com/osolmaz/tools/tree/main/padify), without writing a single line of code, by asking Codex to read its output and iterate on the code until it gives the result I wanted.

Most of these tools don't deserve their own repos, or deserve being published as a package at the beginning. They might evolve into something more substantial over time. But at the beginning, they are not worth creating a separate repo for.

To prevent overhead, I developed a new convention. I just put them in the same repo, called [tools](https://github.com/osolmaz/tools). Every tool starts in that repo by default. If they prove themselves overly useful and I decide to publish them as a package, I move them to a separate repo.

You can keep `tools` public or private, or have both a public and private version. Mine is [public](https://github.com/osolmaz/tools), feel free to steal ones that you find useful.
