Index: internal/config/store.go --- internal/config/store.go.orig +++ internal/config/store.go @@ -16,6 +16,7 @@ import ( "github.com/charmbracelet/crush/internal/env" "github.com/charmbracelet/crush/internal/lock" "github.com/charmbracelet/crush/internal/oauth" + "github.com/charmbracelet/crush/internal/oauth/claude" "github.com/charmbracelet/crush/internal/oauth/copilot" "github.com/charmbracelet/crush/internal/oauth/hyper" "github.com/tidwall/gjson" @@ -470,6 +471,8 @@ func (s *ConfigStore) SetProviderAPIKey(scope Scope, p providerConfig.APIKey = v.AccessToken providerConfig.OAuthToken = v switch providerID { + case string(catwalk.InferenceProviderAnthropic): + providerConfig.SetupClaudeCode() case string(catwalk.InferenceProviderCopilot): providerConfig.SetupGitHubCopilot() } @@ -596,7 +599,10 @@ func (s *ConfigStore) refreshOAuthTokenLocked(ctx cont slog.Info("Successfully refreshed OAuth token", "provider", providerID) providerConfig.OAuthToken = refreshedToken providerConfig.APIKey = refreshedToken.AccessToken - if providerID == string(catwalk.InferenceProviderCopilot) { + switch providerID { + case string(catwalk.InferenceProviderAnthropic): + providerConfig.SetupClaudeCode() + case string(catwalk.InferenceProviderCopilot): providerConfig.SetupGitHubCopilot() } cfg.Providers.Set(providerID, providerConfig) @@ -638,6 +644,8 @@ func (s *ConfigStore) exchange(ctx context.Context, pr return s.exchangeToken(ctx, providerID, refreshToken) } switch providerID { + case string(catwalk.InferenceProviderAnthropic): + return claude.RefreshToken(ctx, refreshToken) case string(catwalk.InferenceProviderCopilot): return copilot.RefreshToken(ctx, refreshToken) case hyperp.Name: @@ -662,7 +670,10 @@ func (s *ConfigStore) refreshLockPath(providerID strin func (s *ConfigStore) applyToken(providerConfig ProviderConfig, token *oauth.Token, providerID string) error { providerConfig.OAuthToken = token providerConfig.APIKey = token.AccessToken - if providerID == string(catwalk.InferenceProviderCopilot) { + switch providerID { + case string(catwalk.InferenceProviderAnthropic): + providerConfig.SetupClaudeCode() + case string(catwalk.InferenceProviderCopilot): providerConfig.SetupGitHubCopilot() } s.Config().Providers.Set(providerID, providerConfig)