> ## Documentation Index
> Fetch the complete documentation index at: https://docs.domino.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Streamline Local Development with SSH

You can securely connect your local development tools to a remote Domino workspace using SSH. This allows you to interact with workspace files and computing resources directly from your local applications; improving productivity and enabling powerful remote workflows.

You can use SSH access with any local development tool, including:

* **VS Code** to browse and edit code files directly from your local IDE.

* **ParaView** to stream rendered visualizations from a remote workspace to your desktop client.

* Use the **Remote - SSH** extension if you import your VS Code extensions into **Cursor**.

This guide covers setup and connection steps for both tools.

## Prerequisites

To use SSH with Domino workspaces, make sure you have the following:

* Your Domino workspace is based on an SSH-enabled environment. For example, `openssh-server` is installed. The following docker instructions can be used to support a custom compute environment with SSH:

  ```dockerfile theme={null}
  USER root
  RUN apt update && \
   apt-get install -y openssh-server && \
   mkdir -p /var/run/sshd && \
   chmod 0755 /var/run/sshd
  USER ubuntu
  ```

  <Note>
    If you do not see the checkbox to enable SSH in your workspace, set `com.cerebro.domino.workbench.workspace.ssh.enabled` to `true`.
  </Note>

* `sshd` is running in the workspace. Domino automatically starts `sshd` when starting the workspace.

* You have installed the Dom CLI to authenticate and connect via SSH.

  * This Dom CLI is for authenticating SSH only, and is distinct from the [Domino Command Line Interface (CLI)](/6.3/reference/cli).

  * To install the Dom CLI:

    1. Launch a workspace. Under **Additional settings**, ensure that **Enable SSH access** is selected, then click **Launch**.

    2. Once the workspace is running, click the **Settings** icon in the left navigation pane.

    3. Under the **SSH connection** instructions, look for **Step 1**, then follow the **Dom CLI toolkit** link to install it.

* You have started a workspace and have the **Workspace ID** (available in the workspace settings pane or under **Show Details**).

* Your local machine supports SSH and the necessary development tools:

  * For **VS Code**: the **Remote - SSH** extension

  * For **ParaView**: a local installation of **ParaView Desktop**

* For most IDEs compatibility, make sure to include a Domino SSH configuration file into your local SSH configuration.

  * For Linux/Mac users, just add the line `Include ~/.domino/ssh/config` to your `~/.ssh/config` file.

## Connect with VS Code

Using VS Code’s **Remote - SSH** extension, you can access a Domino workspace directly from your local editor. This enables you to browse, edit, execute, and debug files.

Run the Domino connect command on your local machine (replace `<workspace_id>` and `<your-domino-url>` accordingly):

```shell theme={null}
dom connect <workspace_id> --domino-api-host=https://<your-domino-url> -l ubuntu
```

Follow the command’s instructions. It will return:

* An SSH command

* A path to a configuration file

Next, configure VS Code:

1. Copy the path to the config and include it in your `~/.ssh/config` file.

   1. Or you can add the `~/.domino/ssh/config` into the **Remote.SSH: ConfigFile** settings on the Remote SSH extension.

2. Open VS Code. From the sidebar, choose **Remote Explorer** > **SSH**.

3. Select your workspace from the list (as configured by the `dom connect` output).

You are now connected to your remote workspace within VS Code and can work as if the files were local.

The [VS Code documentation](https://code.visualstudio.com/docs/remote/ssh#_connect-to-a-remote-host) provides full instructions for connecting to a remote host.

## Connect with ParaView

[ParaView](https://www.paraview.org/documentation/) allows offloading rendering to a remote server and streaming visualization results to your local machine. Domino workspaces can serve as that remote backend.

1. Ensure your workspace environment has ParaView installed and SSH is enabled.

2. Start the ParaView server inside the workspace:

   1. In the environment’s pre-run script: `pvserver`

   2. Or manually with the terminal.

The default bind port is `11111`.

1. Establish an SSH connection from your local machine:

   ```shell theme={null}
   dom connect <workspace_id> --domino-api-host=https://<your-domino-url> -l ubuntu
   ```

2. Add port forwarding to expose the remote ParaView server locally. If you’ve included this config in your default SSH file, the `-F` flag is optional:

   ```shell theme={null}
   ssh -L 11111:localhost:11111 <workspace-id> -F /path/to/ssh/config
   ```

3. Connect from your local ParaView Desktop:

4. Go to **File** > **Connect** > **Add Server**.

5. Fill in the following:

   1. **Server Name**: any name

   2. **Server Type**: Client / Server

   3. **Host**: `localhost`

   4. **Port**: `11111`

6. Click **Configure** > **Startup Type: Manual** > **Save**.

7. Select the server and click **Connect**.

You are now visualizing remote data with local interactivity.

## Connect with PyCharm

Run the Domino connect command on your local machine (replace `<workspace_id>` and `<your-domino-url>` accordingly), and add the `--port` argument to specify a custom local port:

```shell theme={null}
dom connect <workspace_id> --domino-api-host=https://<your-domino-url> -l ubuntu --port 2223
```

Follow the command’s instructions. It will return:

* An SSH command

* A path to a config file. Make sure this file is included in your local SSH configuration file.

Next, configure PyCharm project:

1. Open PyCharm and create a new Project under **Remote Development** > **SSH**.

2. Set **Username** to the workspace linux user (same as the `-l` argument of `dom connect`, for example `ubuntu`).

3. Set **Host** to the `<workspace_id>`.

4. Set **Port** to the one you specified in the `--port` argument of `dom connect`, for example `2223`.

5. Follow the wizard steps to connect and open your files.

Some considerations:

* Make sure to use the same `--port` next time you wish to connect to the same workspace so that you can use the same PyCharm configuration.

* If you need to access multiple workspaces at the same time, use different `--port` values for each so you can reference them in different PyCharm configurations.

## Custom TLS certificate authority

If your Domino instance is using custom CAs in the TLS certificate signatures, make sure you also install the certificates to your local environment.

On Mac you can use `sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain your_certificate.crt`. On windows you need to import the certificate into the Trusted Root Certification Authorities store using the Certificate Manager tool.

## Next steps

* [Learn how to manage compute environments](/6.3/platform-capabilities/core-concepts/compute-environments/manage-compute-environments) in Domino, whether you need to create an environment, use one provided by Domino, or modify an existing environment.

* [Enable package persistence in an environment](/6.3/platform-capabilities/core-concepts/workspaces/use-package-persistence) to save time by keeping installed packages across workspace sessions.
