@@ -141,6 +141,26 @@ func getOutput() *tui.Output {
141141 return cmdutil .NewOutput (outputFormat )
142142}
143143
144+ // printBackendAndSocket prints current backend name and container unix sock path to TUI.
145+ func printBackendAndSocket (ctx context.Context , out * tui.Output , mgr * studio.Manager , mode studio.Mode ) {
146+ backend , err := mgr .GetBackend (mode )
147+ if err != nil {
148+ return
149+ }
150+ styles := tui .DefaultStyles ()
151+ out .Println ()
152+ out .Println (styles .Subtitle .Render ("Backend" ))
153+ sock := "—"
154+ if sp , ok := backend .(studio.BackendSocketPath ); ok {
155+ if p := sp .SocketPath (ctx ); p != "" {
156+ sock = p
157+ }
158+ }
159+ out .Printf (" Backend: %s\n " , backend .Name ())
160+ out .Printf (" Container unix sock: %s\n " , sock )
161+ out .Println ()
162+ }
163+
144164func newCreateCmd () * cobra.Command {
145165 cmd := & cobra.Command {
146166 Use : "create <name>" ,
@@ -256,7 +276,20 @@ func runCreate(cmd *cobra.Command, args []string) error {
256276 return err
257277 }
258278
259- return out .Render (& createResult {env : env , mgr : mgr , noSSH : noSSH })
279+ backendName , socketPath := "" , ""
280+ if backend , err := mgr .GetBackend (env .Mode ); err == nil {
281+ backendName = backend .Name ()
282+ if sp , ok := backend .(studio.BackendSocketPath ); ok {
283+ socketPath = sp .SocketPath (ctx )
284+ }
285+ }
286+ return out .Render (& createResult {
287+ env : env ,
288+ mgr : mgr ,
289+ noSSH : noSSH ,
290+ backendName : backendName ,
291+ socketPath : socketPath ,
292+ })
260293}
261294
262295// ensureRemoteGPUClientLibs downloads remote-gpu-client libraries if not already present
@@ -425,9 +458,11 @@ func parseEnvVars(envVars []string) (map[string]string, error) {
425458
426459// createResult implements Renderable for create command output
427460type createResult struct {
428- env * studio.Environment
429- mgr * studio.Manager
430- noSSH bool
461+ env * studio.Environment
462+ mgr * studio.Manager
463+ noSSH bool
464+ backendName string
465+ socketPath string
431466}
432467
433468func (r * createResult ) RenderJSON () any {
@@ -448,7 +483,14 @@ func (r *createResult) RenderTUI(out *tui.Output) {
448483 Add ("Mode" , string (env .Mode )).
449484 Add ("Image" , env .Image ).
450485 AddWithStatus ("Status" , string (env .Status ), string (env .Status ))
451-
486+ if r .backendName != "" {
487+ status = status .Add ("Backend" , r .backendName )
488+ sock := r .socketPath
489+ if sock == "" {
490+ sock = "—"
491+ }
492+ status = status .Add ("Container unix sock" , sock )
493+ }
452494 out .Println (status .String ())
453495
454496 if env .SSHPort > 0 && ! r .noSSH {
@@ -569,6 +611,14 @@ func newStartCmd() *cobra.Command {
569611 mgr := getManager ()
570612 out := getOutput ()
571613
614+ env , err := mgr .Get (ctx , args [0 ])
615+ if err != nil {
616+ cmd .SilenceUsage = true
617+ return err
618+ }
619+ if ! out .IsJSON () {
620+ printBackendAndSocket (ctx , out , mgr , env .Mode )
621+ }
572622 if err := mgr .Start (ctx , args [0 ]); err != nil {
573623 cmd .SilenceUsage = true
574624 return err
@@ -593,6 +643,14 @@ func newStopCmd() *cobra.Command {
593643 mgr := getManager ()
594644 out := getOutput ()
595645
646+ env , err := mgr .Get (ctx , args [0 ])
647+ if err != nil {
648+ cmd .SilenceUsage = true
649+ return err
650+ }
651+ if ! out .IsJSON () {
652+ printBackendAndSocket (ctx , out , mgr , env .Mode )
653+ }
596654 if err := mgr .Stop (ctx , args [0 ]); err != nil {
597655 cmd .SilenceUsage = true
598656 return err
0 commit comments