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)
+}
