Introducing the Command Registry Pattern: Toward Pluggable Commands
· 4 min read
We're excited to announce the first step in a major architectural evolution for Atmos: the Command Registry Pattern. This foundational change will eventually enable pluggable commands, allowing the community to extend Atmos with custom command packages without modifying the core codebase.
Why This Matters
Today, all Atmos commands live in a single monolithic cmd/ directory. While this works well for built-in commands, it creates friction for:
- Plugin developers who want to add new commands without forking Atmos
- Command maintainers who need clear boundaries between command implementations
- Organizations that want to distribute custom command packages internally
The Command Registry Pattern solves these challenges by treating commands as self-contained packages that register themselves with Atmos at startup.
What's Changing
Before: Monolithic Command Structure
cmd/
├── terraform.go # All commands in one directory
├── describe.go
├── list.go
└── about.go
After: Package-Per-Command Architecture
cmd/
├── terraform/ # Each command is a package
│ └── terraform.go
├── describe/
