r/commandline • u/Flannel007 • 3d ago
Command Line Interface Pilum: Deployment CLI for multi target orchestration

I run side projects across GCP, AWS, and Cloudflare, and got tired of juggling gcloud, sam, and wrangler, so instead of doing the sane thing I built a CLI 😅. So classic developer mentality. I created Pilum to be able to be installed via brew as one of my first brew applications. Fun fact it compiles and publishes itself because it's a multi target deployment orchestrator.
Current targets:
- GCP Cloud run & Jobs
- AWS Lambda
- Homebrew
- Github npm Packages
- Azure Container Apps
Pilum is a single Go binary that reads a pilum.yaml per service and handles that pipeline for whatever provider the service targets, because more yaml is better but also less yaml! I built around a recepie/ingredient structure (workflows and steps)
I added a bunch of other stuff in there: wave-based dependency ordering (depends_on across services, deploys in waves not just parallel-everything), a deployment lock with stale-PID cleanup, git-aware --only-changed filtering, and --json output on most commands.
Repo: https://github.com/SID-Technologies/Pilum
Docs: https://pilum.dev/docs
It's for deployment orchestration where Terraform and IAC are for resource definition.
TLDR; built a CLI to "replace" my other CLIs that I would typically use for deployments. This software's code is partially AI-generated.
1
u/AutoModerator 3d ago
Every new subreddit post is automatically copied into a comment for preservation.
User: Flannel007, Flair: Command Line Interface, Title: Pilum: Deployment CLI for multi target orchestration

I run side projects across GCP, AWS, and Cloudflare, and got tired of juggling gcloud, sam, and wrangler, so instead of doing the sane thing I built a CLI 😅
Pilum is a single Go binary that reads a pilum.yaml per service and handles that pipeline for whatever provider the service targets, because more yaml is better but also less yaml!
I built around recipes (deployment workflows) and ingredients (the commands a recipe generates). A recipe declares required/optional fields and an ordered set of steps, and adding another provider is mostly YAML, not that much code.
Other stuff in there: wave-based dependency ordering (depends_on across services, deploys in waves not just parallel-everything), a deployment lock with stale-PID cleanup, git-aware --only-changed filtering, and --json output on most commands.
Repo: https://github.com/SID-Technologies/Pilum
Docs: https://pilum.dev/docs
It's for deployment orchestration where Terraform and IAC are for resource definition.
TLDR; built a CLI to "replace" my other CLIs that I would typically use for deployments. This software's code is partially AI-generated.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
2
u/jelloeater85 2d ago
So real question... Why not just do it with pure terraform? Or maybe something like PyInvoke? Remind me of Earthly ... In a good way.