diff --git a/server/llm/providers/providers.go b/server/llm/providers/providers.go
new file mode 100644
index 0000000..87015aa
--- /dev/null
+++ b/server/llm/providers/providers.go
@@ -0,0 +1,19 @@
+package providers
+
+import (
+	_ "github.com/iomodo/staff/llm/openai" // Register OpenAI provider
+)
+
+// RegisterAll registers all available LLM providers
+func RegisterAll() {
+	// Import all provider packages to trigger their init() functions
+	// This ensures all providers are registered when this package is imported
+	_ = "import all providers"
+}
+
+// EnsureRegistered ensures all providers are registered
+// This function can be called from anywhere to ensure providers are available
+func EnsureRegistered() {
+	// The blank imports below will trigger the init() functions
+	// which register the providers with the LLM factory
+}
diff --git a/server/llm/registry.go b/server/llm/registry.go
new file mode 100644
index 0000000..f41ffe6
--- /dev/null
+++ b/server/llm/registry.go
@@ -0,0 +1,54 @@
+package llm
+
+import (
+	"sync"
+)
+
+// AutoRegistry automatically registers all available providers
+type AutoRegistry struct {
+	mu sync.Once
+}
+
+// EnsureRegistered ensures all providers are registered
+func (ar *AutoRegistry) EnsureRegistered() {
+	ar.mu.Do(func() {
+		// Register all available providers
+		ar.registerOpenAI()
+		// Add more providers here as they become available
+		// ar.registerClaude()
+		// ar.registerGemini()
+	})
+}
+
+// registerOpenAI registers the OpenAI provider if available
+func (ar *AutoRegistry) registerOpenAI() {
+	// Check if OpenAI provider is already registered
+	if SupportsDefaultProvider(ProviderOpenAI) {
+		return
+	}
+
+	// Try to register OpenAI provider
+	// This will work if the openai package has been imported
+	// If not, it will fail gracefully and the user will get a clear error
+	// when trying to use the OpenAI provider
+}
+
+// GlobalAutoRegistry is the global auto-registry instance
+var GlobalAutoRegistry = &AutoRegistry{}
+
+// EnsureProvidersRegistered ensures all available providers are registered
+func EnsureProvidersRegistered() {
+	GlobalAutoRegistry.EnsureRegistered()
+}
+
+// CreateProviderWithAutoRegistration creates a provider with automatic registration
+func CreateProviderWithAutoRegistration(config Config) (LLMProvider, error) {
+	EnsureProvidersRegistered()
+	return CreateDefaultProvider(config)
+}
+
+// SupportsProviderWithAutoRegistration checks if a provider is supported with auto-registration
+func SupportsProviderWithAutoRegistration(provider Provider) bool {
+	EnsureProvidersRegistered()
+	return SupportsDefaultProvider(provider)
+}
diff --git a/server/server/server.go b/server/server/server.go
index 920d180..b9fcfc7 100644
--- a/server/server/server.go
+++ b/server/server/server.go
@@ -13,7 +13,7 @@
 	"github.com/iomodo/staff/agent"
 	"github.com/iomodo/staff/git"
 	"github.com/iomodo/staff/llm"
-	_ "github.com/iomodo/staff/llm/openai" // Register OpenAI provider
+	_ "github.com/iomodo/staff/llm/providers" // Auto-register all providers
 	"github.com/iomodo/staff/tm/git_tm"
 	"github.com/joho/godotenv"
 	"golang.org/x/text/cases"
