We all "love" microservices, allegedly. But you know what isn't fun? Realizing you need to bump a dependency, run a build, git pull and create PRs across 15 different repositories at the same time.
You usually have two options (if you don't want to use AI agents):
The "Tab Hoarder" Strategy Manually open 15 terminal tabs, cd into each one, run the command, and pray you didn't miss one.
The "Unix Wizard" Strategy You try to construct a one-liner that iterates over directories. You start typing:
find . -maxdepth 1 -type d -exec sh -c 'cd "{}" && git pull' \;
It works, but it's painfully slow because it runs serially (one at a time). So you switch to xargs to run it in parallel:
ls -d */ | xargs -P 4 -I {} bash -c "cd {} && pnpm update"
Now you have a problem. xargs (by default) breaks on directory names with spaces. To fix it, you need to add -print0 to find and -0 to xargs, and suddenly your "quick one-liner" is 80 characters long and unreadable.
Enter in-cli 🚀 https://github.com/inevolin/in-cli
Usage:
in [OPTIONS] [DIRECTORIES...] [--] COMMAND...
I got tired of typing those boilerplate loops. I wanted a tool that does one thing well: runs a command in every directory, fast. So I built in-cli. It’s a zero-dependency CLI (pure bash) that acts as a force multiplier for your shell.
How it actually works
Instead of wrestling with pipes and flags, you just tell it what to do.
Scenario 1: The Morning Routine You get to work and need to update all 20 repos in your ~/work folder.
# Updates every repo in ~/work/ directory
in ~/work/* git pull
Scenario 2: The "Critical Fix" Deployment You need to trigger a build script across all your services right now.
# Run 'make build' in parallel across all subdirectories
in -P 8 ~/work/* make build
Scenario 3: Dependency Hell Need to update lodash in every service because of a CVE?
in ~/work/* 'pnpm update lodash && git commit -am "updating lodash" && git push'
You'll find +50 other real-world scenarios in the EXAMPLES.md file.
Why use this?
Stop wasting time on tooling boilerplate. If you're managing a monorepo or a folder full of microservices, stop writing throwaway scripts to manage them. Check it out on GitHub, and let me know if it saves you a few keystrokes (and your sanity).
Enjoy!
Top comments (0)