From 36fa9395e0286bf7790fe424188a5f33a8430220 Mon Sep 17 00:00:00 2001 From: TanishqDatabricks Date: Fri, 1 May 2026 15:28:26 +0200 Subject: [PATCH 1/7] experimental/ssh: improve --help copy and surface serverless flags Updates the help text for `databricks ssh`, `databricks ssh connect`, and `databricks ssh setup` based on the May 1 2026 Remote Development CUJ. - `databricks ssh`: common-workflows examples now lead with serverless (no flags), with the dedicated-cluster path as a follow-up. - `databricks ssh connect`: Long description groups example invocations by serverless vs dedicated. Unhides --name, --accelerator, --ide, --environment-version so users can discover them via --help. - `databricks ssh setup`: tightened Short/Long to clarify it's for dedicated clusters; users on serverless should just use connect. Co-authored-by: Isaac --- experimental/ssh/cmd/connect.go | 23 ++++++++++++++--------- experimental/ssh/cmd/setup.go | 11 +++++++---- experimental/ssh/cmd/ssh.go | 9 ++++++--- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/experimental/ssh/cmd/connect.go b/experimental/ssh/cmd/connect.go index a02098923e3..d6681ab8ae8 100644 --- a/experimental/ssh/cmd/connect.go +++ b/experimental/ssh/cmd/connect.go @@ -12,12 +12,21 @@ import ( func newConnectCommand() *cobra.Command { cmd := &cobra.Command{ Use: "connect", - Short: "Connect to Databricks compute via SSH", + Short: "Connect to Databricks serverless or dedicated compute via SSH", Long: `Connect to Databricks compute via SSH. This command establishes an SSH connection to Databricks compute, setting up the SSH server and handling the connection proxy. +Connect to serverless (no cluster ID needed): + databricks ssh connect + databricks ssh connect --accelerator=GPU_1xA10 # serverless GPU + databricks ssh connect --environment-version=4 # custom serverless environment + databricks ssh connect --ide=cursor # launch Cursor remote window on connect + +Connect to a dedicated cluster: + databricks ssh connect --cluster= + ` + disclaimer, } @@ -43,12 +52,9 @@ the SSH server and handling the connection proxy. cmd.Flags().IntVar(&maxClients, "max-clients", defaultMaxClients, "Maximum number of SSH clients") cmd.Flags().BoolVar(&autoStartCluster, "auto-start-cluster", true, "Automatically start the cluster if it is not running") - cmd.Flags().StringVar(&connectionName, "name", "", "Connection name (for serverless compute)") - cmd.Flags().MarkHidden("name") - cmd.Flags().StringVar(&accelerator, "accelerator", "", "GPU accelerator type (GPU_1xA10 or GPU_8xH100)") - cmd.Flags().MarkHidden("accelerator") - cmd.Flags().StringVar(&ide, "ide", "", "Open remote IDE window (vscode or cursor)") - cmd.Flags().MarkHidden("ide") + cmd.Flags().StringVar(&connectionName, "name", "", "Connection name to reuse across sessions (serverless only)") + cmd.Flags().StringVar(&accelerator, "accelerator", "", "Serverless GPU accelerator type (GPU_1xA10 or GPU_8xH100)") + cmd.Flags().StringVar(&ide, "ide", "", "Open a remote IDE window on connect (vscode or cursor)") cmd.Flags().BoolVar(&proxyMode, "proxy", false, "ProxyCommand mode") cmd.Flags().MarkHidden("proxy") @@ -69,8 +75,7 @@ the SSH server and handling the connection proxy. cmd.Flags().BoolVar(&skipSettingsCheck, "skip-settings-check", false, "Skip checking and updating IDE settings") cmd.Flags().MarkHidden("skip-settings-check") - cmd.Flags().IntVar(&environmentVersion, "environment-version", defaultEnvironmentVersion, "Environment version for serverless compute") - cmd.Flags().MarkHidden("environment-version") + cmd.Flags().IntVar(&environmentVersion, "environment-version", defaultEnvironmentVersion, "Serverless environment version to use for the session") cmd.Flags().BoolVar(&autoApprove, "auto-approve", false, "Skip confirmation prompts, installing IDE extensions and applying IDE settings without asking") diff --git a/experimental/ssh/cmd/setup.go b/experimental/ssh/cmd/setup.go index a97afa845fa..3069a34302f 100644 --- a/experimental/ssh/cmd/setup.go +++ b/experimental/ssh/cmd/setup.go @@ -12,11 +12,14 @@ import ( func newSetupCommand() *cobra.Command { cmd := &cobra.Command{ Use: "setup", - Short: "Setup SSH configuration for Databricks compute", - Long: `Setup SSH configuration for Databricks compute. + Short: "Setup SSH configuration for a Databricks dedicated cluster", + Long: `Setup SSH configuration for a Databricks dedicated cluster. -This command configures SSH to connect to Databricks compute by adding -an SSH host configuration to your SSH config file. +This command configures SSH to connect to a Databricks dedicated cluster by +adding an SSH host configuration to your SSH config file. After running setup, +you can connect with ` + "`ssh `" + ` directly. + +For serverless connections, use ` + "`databricks ssh connect`" + ` (no setup step needed). ` + disclaimer, } diff --git a/experimental/ssh/cmd/ssh.go b/experimental/ssh/cmd/ssh.go index b1425054359..99abaaf2388 100644 --- a/experimental/ssh/cmd/ssh.go +++ b/experimental/ssh/cmd/ssh.go @@ -20,9 +20,12 @@ func New() *cobra.Command { SSH commands let you setup and establish ssh connections to Databricks compute. Common workflows: - databricks ssh connect --cluster= --profile= # connect to a cluster without any setup - databricks ssh setup --name=my-compute --cluster= # update local ssh config - ssh my-compute # connect to the compute using ssh client + databricks ssh connect # connect to serverless compute + databricks ssh connect --cluster= # connect to a dedicated cluster + databricks ssh setup --name=my-compute --cluster= # update local ssh config for a dedicated cluster + ssh my-compute # connect using the ssh client (after setup) + +Use ` + "`databricks ssh connect --help`" + ` to see flags for serverless GPUs and serverless environment versions. ` + disclaimer, } From 408bc5da4657b98e39a10a4c47cbbb3158addf18 Mon Sep 17 00:00:00 2001 From: TanishqDatabricks Date: Fri, 22 May 2026 17:10:56 +0200 Subject: [PATCH 2/7] experimental/ssh: refine --help copy for connect, setup, and ssh commands Co-authored-by: Isaac --- experimental/ssh/cmd/connect.go | 17 ++++++----------- experimental/ssh/cmd/setup.go | 8 +++----- experimental/ssh/cmd/ssh.go | 13 +++++-------- 3 files changed, 14 insertions(+), 24 deletions(-) diff --git a/experimental/ssh/cmd/connect.go b/experimental/ssh/cmd/connect.go index d6681ab8ae8..a6e050f19d9 100644 --- a/experimental/ssh/cmd/connect.go +++ b/experimental/ssh/cmd/connect.go @@ -12,17 +12,12 @@ import ( func newConnectCommand() *cobra.Command { cmd := &cobra.Command{ Use: "connect", - Short: "Connect to Databricks serverless or dedicated compute via SSH", - Long: `Connect to Databricks compute via SSH. + Short: "Connect to Databricks compute via SSH", + Long: `Connect to your Databricks compute and workspace with ssh. -This command establishes an SSH connection to Databricks compute, setting up -the SSH server and handling the connection proxy. - -Connect to serverless (no cluster ID needed): +Connect to serverless: databricks ssh connect - databricks ssh connect --accelerator=GPU_1xA10 # serverless GPU - databricks ssh connect --environment-version=4 # custom serverless environment - databricks ssh connect --ide=cursor # launch Cursor remote window on connect + databricks ssh connect --accelerator= # AI Runtime Connect to a dedicated cluster: databricks ssh connect --cluster= @@ -47,7 +42,7 @@ Connect to a dedicated cluster: var environmentVersion int var autoApprove bool - cmd.Flags().StringVar(&clusterID, "cluster", "", "Databricks cluster ID (for dedicated clusters)") + cmd.Flags().StringVar(&clusterID, "cluster", "", "Databricks dedicated cluster ID") cmd.Flags().DurationVar(&shutdownDelay, "shutdown-delay", defaultShutdownDelay, "Delay before shutting down the server after the last client disconnects") cmd.Flags().IntVar(&maxClients, "max-clients", defaultMaxClients, "Maximum number of SSH clients") cmd.Flags().BoolVar(&autoStartCluster, "auto-start-cluster", true, "Automatically start the cluster if it is not running") @@ -75,7 +70,7 @@ Connect to a dedicated cluster: cmd.Flags().BoolVar(&skipSettingsCheck, "skip-settings-check", false, "Skip checking and updating IDE settings") cmd.Flags().MarkHidden("skip-settings-check") - cmd.Flags().IntVar(&environmentVersion, "environment-version", defaultEnvironmentVersion, "Serverless environment version to use for the session") + cmd.Flags().IntVar(&environmentVersion, "environment-version", defaultEnvironmentVersion, "Environment version for AI Runtime") cmd.Flags().BoolVar(&autoApprove, "auto-approve", false, "Skip confirmation prompts, installing IDE extensions and applying IDE settings without asking") diff --git a/experimental/ssh/cmd/setup.go b/experimental/ssh/cmd/setup.go index 3069a34302f..be9af601a70 100644 --- a/experimental/ssh/cmd/setup.go +++ b/experimental/ssh/cmd/setup.go @@ -12,12 +12,10 @@ import ( func newSetupCommand() *cobra.Command { cmd := &cobra.Command{ Use: "setup", - Short: "Setup SSH configuration for a Databricks dedicated cluster", - Long: `Setup SSH configuration for a Databricks dedicated cluster. + Short: "Setup SSH configuration for dedicated (single-user) clusters", + Long: `Setup SSH configuration for dedicated (single-user) clusters. -This command configures SSH to connect to a Databricks dedicated cluster by -adding an SSH host configuration to your SSH config file. After running setup, -you can connect with ` + "`ssh `" + ` directly. +After running setup, you can connect with ` + "`ssh `" + `. For serverless connections, use ` + "`databricks ssh connect`" + ` (no setup step needed). diff --git a/experimental/ssh/cmd/ssh.go b/experimental/ssh/cmd/ssh.go index 99abaaf2388..4115f50c279 100644 --- a/experimental/ssh/cmd/ssh.go +++ b/experimental/ssh/cmd/ssh.go @@ -15,17 +15,14 @@ func New() *cobra.Command { Use: "ssh", Short: "Connect to Databricks compute with ssh", Hidden: true, - Long: `Connect to Databricks compute with ssh. - -SSH commands let you setup and establish ssh connections to Databricks compute. + Long: `Connect to your Databricks compute and workspace with ssh. Common workflows: - databricks ssh connect # connect to serverless compute - databricks ssh connect --cluster= # connect to a dedicated cluster - databricks ssh setup --name=my-compute --cluster= # update local ssh config for a dedicated cluster - ssh my-compute # connect using the ssh client (after setup) + databricks ssh connect --ide=cursor # connect to serverless through Cursor + databricks ssh setup --name= --cluster= # update ~/.ssh/config so you can reconnect to a dedicated cluster + ssh # connect to dedicated cluster after setup -Use ` + "`databricks ssh connect --help`" + ` to see flags for serverless GPUs and serverless environment versions. +Use ` + "`databricks ssh connect --help`" + ` to see all available flags. ` + disclaimer, } From 555987cfc816f14300301d9038716be7e4a7108c Mon Sep 17 00:00:00 2001 From: TanishqDatabricks Date: Fri, 22 May 2026 17:14:50 +0200 Subject: [PATCH 3/7] Update connect.go --- experimental/ssh/cmd/connect.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/experimental/ssh/cmd/connect.go b/experimental/ssh/cmd/connect.go index a6e050f19d9..369777ce615 100644 --- a/experimental/ssh/cmd/connect.go +++ b/experimental/ssh/cmd/connect.go @@ -12,8 +12,8 @@ import ( func newConnectCommand() *cobra.Command { cmd := &cobra.Command{ Use: "connect", - Short: "Connect to Databricks compute via SSH", - Long: `Connect to your Databricks compute and workspace with ssh. + Short: "Connect to your Databricks compute and workspace via SSH", + Long: `Connect to your Databricks compute and workspace via SSH. Connect to serverless: databricks ssh connect From 47eafc5e5bbdafa0e124561e708a96401cad8529 Mon Sep 17 00:00:00 2001 From: TanishqDatabricks Date: Fri, 22 May 2026 17:15:47 +0200 Subject: [PATCH 4/7] Update ssh.go --- experimental/ssh/cmd/ssh.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/experimental/ssh/cmd/ssh.go b/experimental/ssh/cmd/ssh.go index 4115f50c279..fa234ea34aa 100644 --- a/experimental/ssh/cmd/ssh.go +++ b/experimental/ssh/cmd/ssh.go @@ -13,9 +13,9 @@ const disclaimer = `WARNING! This is an experimental feature: func New() *cobra.Command { cmd := &cobra.Command{ Use: "ssh", - Short: "Connect to Databricks compute with ssh", + Short: "Connect to your Databricks compute and workspace via SSH", Hidden: true, - Long: `Connect to your Databricks compute and workspace with ssh. + Long: `Connect to your Databricks compute and workspace via SSH. Common workflows: databricks ssh connect --ide=cursor # connect to serverless through Cursor From 685f6ca5ea2754b76dd57b2d12b742c39e826f6e Mon Sep 17 00:00:00 2001 From: TanishqDatabricks Date: Mon, 25 May 2026 21:57:54 +0200 Subject: [PATCH 5/7] Update connect.go --- experimental/ssh/cmd/connect.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/ssh/cmd/connect.go b/experimental/ssh/cmd/connect.go index 369777ce615..2c8f025c624 100644 --- a/experimental/ssh/cmd/connect.go +++ b/experimental/ssh/cmd/connect.go @@ -49,7 +49,7 @@ Connect to a dedicated cluster: cmd.Flags().StringVar(&connectionName, "name", "", "Connection name to reuse across sessions (serverless only)") cmd.Flags().StringVar(&accelerator, "accelerator", "", "Serverless GPU accelerator type (GPU_1xA10 or GPU_8xH100)") - cmd.Flags().StringVar(&ide, "ide", "", "Open a remote IDE window on connect (vscode or cursor)") + cmd.Flags().StringVar(&ide, "ide", "", "Open remote IDE window (vscode or cursor)") cmd.Flags().BoolVar(&proxyMode, "proxy", false, "ProxyCommand mode") cmd.Flags().MarkHidden("proxy") From d7da1cc9fbfc8de630e651bdf30df2c51d3f38dd Mon Sep 17 00:00:00 2001 From: TanishqDatabricks Date: Tue, 26 May 2026 11:18:34 +0200 Subject: [PATCH 6/7] Update connect.go --- experimental/ssh/cmd/connect.go | 1 + 1 file changed, 1 insertion(+) diff --git a/experimental/ssh/cmd/connect.go b/experimental/ssh/cmd/connect.go index 2c8f025c624..a503fc6c380 100644 --- a/experimental/ssh/cmd/connect.go +++ b/experimental/ssh/cmd/connect.go @@ -71,6 +71,7 @@ Connect to a dedicated cluster: cmd.Flags().MarkHidden("skip-settings-check") cmd.Flags().IntVar(&environmentVersion, "environment-version", defaultEnvironmentVersion, "Environment version for AI Runtime") + cmd.Flags().MarkHidden("environment-version") cmd.Flags().BoolVar(&autoApprove, "auto-approve", false, "Skip confirmation prompts, installing IDE extensions and applying IDE settings without asking") From 1d6e079a972543f3ee9f7daaa6ac7239a0a9abab Mon Sep 17 00:00:00 2001 From: TanishqDatabricks Date: Tue, 26 May 2026 16:06:58 +0200 Subject: [PATCH 7/7] replaced tabs with spaces and updated to Co-authored-by: Isaac --- experimental/ssh/cmd/connect.go | 2 +- experimental/ssh/cmd/ssh.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/experimental/ssh/cmd/connect.go b/experimental/ssh/cmd/connect.go index a503fc6c380..8ba6e8edd01 100644 --- a/experimental/ssh/cmd/connect.go +++ b/experimental/ssh/cmd/connect.go @@ -17,7 +17,7 @@ func newConnectCommand() *cobra.Command { Connect to serverless: databricks ssh connect - databricks ssh connect --accelerator= # AI Runtime + databricks ssh connect --accelerator= # AI Runtime Connect to a dedicated cluster: databricks ssh connect --cluster= diff --git a/experimental/ssh/cmd/ssh.go b/experimental/ssh/cmd/ssh.go index fa234ea34aa..50258922422 100644 --- a/experimental/ssh/cmd/ssh.go +++ b/experimental/ssh/cmd/ssh.go @@ -18,9 +18,9 @@ func New() *cobra.Command { Long: `Connect to your Databricks compute and workspace via SSH. Common workflows: - databricks ssh connect --ide=cursor # connect to serverless through Cursor - databricks ssh setup --name= --cluster= # update ~/.ssh/config so you can reconnect to a dedicated cluster - ssh # connect to dedicated cluster after setup + databricks ssh connect --ide=cursor # connect to serverless through Cursor + databricks ssh setup --name= --cluster= # update ~/.ssh/config so you can reconnect to a dedicated cluster + ssh # connect to dedicated cluster after setup Use ` + "`databricks ssh connect --help`" + ` to see all available flags.