@@ -54,12 +54,45 @@ This secure authentication flow:
5454 fmt .Println ("🔐 Authenticating with Vapi..." )
5555 fmt .Println ()
5656
57+ // Read optional flags for labeling
58+ labelFlag , _ := cmd .Flags ().GetString ("label" )
59+ emailFlag , _ := cmd .Flags ().GetString ("email" ) // alias, for backward-compat
60+ orgFlag , _ := cmd .Flags ().GetString ("org" )
61+
5762 // Start the browser-based authentication flow
5863 // The Login() function handles saving the API key
5964 if err := auth .Login (); err != nil {
6065 return err
6166 }
6267
68+ // Optionally override label/org with flags if provided
69+ cfg , err := config .LoadConfig ()
70+ if err == nil && cfg .ActiveAccount != "" {
71+ acc := cfg .Accounts [cfg .ActiveAccount ]
72+ changed := false
73+
74+ // Apply flags if provided
75+ if labelFlag != "" {
76+ acc .Label = labelFlag
77+ changed = true
78+ } else if emailFlag != "" { // backward-compat: set label from email flag
79+ acc .Label = emailFlag
80+ changed = true
81+ }
82+ if orgFlag != "" {
83+ acc .Organization = orgFlag
84+ changed = true
85+ }
86+
87+ // No more interactive prompt - the dashboard now provides label/email
88+
89+ // Persist if any changes
90+ if changed {
91+ cfg .Accounts [cfg .ActiveAccount ] = acc
92+ _ = config .SaveConfig (cfg )
93+ }
94+ }
95+
6396 fmt .Println ("\n You can now use all Vapi CLI commands." )
6497 fmt .Println ("• List assistants: vapi assistant list" )
6598 fmt .Println ("• View call history: vapi call list" )
@@ -175,6 +208,12 @@ which account you're currently using.`,
175208 if account .Organization != "" {
176209 fmt .Printf (" - %s" , account .Organization )
177210 }
211+ // Prefer Label; fallback to Email if present
212+ if account .Label != "" {
213+ fmt .Printf (" <%s>" , account .Label )
214+ } else if account .Email != "" {
215+ fmt .Printf (" <%s>" , account .Email )
216+ }
178217 if account .LoginTime != "" {
179218 fmt .Printf (" (logged in: %s)" , account .LoginTime [:10 ]) // Show just the date
180219 }
@@ -272,6 +311,12 @@ This is useful when working with multiple organizations or environments.`,
272311 if account .Organization != "" {
273312 displayName = fmt .Sprintf ("%s (%s)" , accountName , account .Organization )
274313 }
314+ // Prefer Label; fallback to Email if present
315+ if account .Label != "" {
316+ displayName = fmt .Sprintf ("%s <%s>" , displayName , account .Label )
317+ } else if account .Email != "" {
318+ displayName = fmt .Sprintf ("%s <%s>" , displayName , account .Email )
319+ }
275320 if accountName == cfg .ActiveAccount {
276321 displayName += " ✓ (currently active)"
277322 }
@@ -314,6 +359,11 @@ This is useful when working with multiple organizations or environments.`,
314359 if account .Organization != "" {
315360 fmt .Printf (" - %s" , account .Organization )
316361 }
362+ if account .Label != "" {
363+ fmt .Printf (" <%s>" , account .Label )
364+ } else if account .Email != "" {
365+ fmt .Printf (" <%s>" , account .Email )
366+ }
317367 fmt .Println ()
318368 }
319369 return fmt .Errorf ("account '%s' not found" , targetAccount )
@@ -332,6 +382,11 @@ This is useful when working with multiple organizations or environments.`,
332382 if account .Organization != "" {
333383 fmt .Printf (" (%s)" , account .Organization )
334384 }
385+ if account .Label != "" {
386+ fmt .Printf (" <%s>" , account .Label )
387+ } else if account .Email != "" {
388+ fmt .Printf (" <%s>" , account .Email )
389+ }
335390 fmt .Println ()
336391 return nil
337392 }),
@@ -453,4 +508,9 @@ func init() {
453508
454509 // Add auth command to root
455510 rootCmd .AddCommand (authCmd )
511+
512+ // Flags for login labeling
513+ authLoginCmd .Flags ().String ("label" , "" , "Override the label for this account (default: your email from dashboard)" )
514+ authLoginCmd .Flags ().String ("email" , "" , "Alias for --label" )
515+ authLoginCmd .Flags ().String ("org" , "" , "Override the organization name for this account" )
456516}
0 commit comments