diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync-add.png b/docs/images/user-guides/desktop/coder-desktop-file-sync-add.png
new file mode 100644
index 0000000000000..35e59d76866f2
Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync-add.png differ
diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync-conflicts-mouseover.png b/docs/images/user-guides/desktop/coder-desktop-file-sync-conflicts-mouseover.png
new file mode 100644
index 0000000000000..80a5185585c1a
Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync-conflicts-mouseover.png differ
diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync-staging.png b/docs/images/user-guides/desktop/coder-desktop-file-sync-staging.png
new file mode 100644
index 0000000000000..6b846f3ef244f
Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync-staging.png differ
diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync-watching.png b/docs/images/user-guides/desktop/coder-desktop-file-sync-watching.png
new file mode 100644
index 0000000000000..7875980186e33
Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync-watching.png differ
diff --git a/docs/images/user-guides/desktop/coder-desktop-file-sync.png b/docs/images/user-guides/desktop/coder-desktop-file-sync.png
new file mode 100644
index 0000000000000..5976528010371
Binary files /dev/null and b/docs/images/user-guides/desktop/coder-desktop-file-sync.png differ
diff --git a/docs/images/user-guides/desktop/coder-desktop-workspaces.png b/docs/images/user-guides/desktop/coder-desktop-workspaces.png
index 664228fe214e7..c621c7e541094 100644
Binary files a/docs/images/user-guides/desktop/coder-desktop-workspaces.png and b/docs/images/user-guides/desktop/coder-desktop-workspaces.png differ
diff --git a/docs/manifest.json b/docs/manifest.json
index 4519767b071dd..54c4a61365013 100644
--- a/docs/manifest.json
+++ b/docs/manifest.json
@@ -193,7 +193,7 @@
"description": "Use Coder Desktop to access your workspace like it's a local machine",
"path": "./user-guides/desktop/index.md",
"icon_path": "./images/icons/computer-code.svg",
- "state": ["early access"]
+ "state": ["beta"]
},
{
"title": "Workspace Management",
diff --git a/docs/user-guides/desktop/index.md b/docs/user-guides/desktop/index.md
index 72d627c7a3e71..69a32837a8b87 100644
--- a/docs/user-guides/desktop/index.md
+++ b/docs/user-guides/desktop/index.md
@@ -1,4 +1,4 @@
-# Coder Desktop (Early Access)
+# Coder Desktop (Beta)
Use Coder Desktop to work on your workspaces as though they're on your LAN, no
port-forwarding required.
@@ -22,7 +22,7 @@ You can install Coder Desktop on macOS or Windows.
Alternatively, you can manually install Coder Desktop from the [releases page](https://github.com/coder/coder-desktop-macos/releases).
-1. Open **Coder Desktop** from the Applications directory. When macOS asks if you want to open it, select **Open**.
+1. Open **Coder Desktop** from the Applications directory.
1. The application is treated as a system VPN. macOS will prompt you to confirm with:
@@ -79,11 +79,11 @@ Before you can use Coder Desktop, you will need to sign in.
## macOS
-
+ 
## Windows
-
+ 
@@ -97,19 +97,19 @@ Before you can use Coder Desktop, you will need to sign in.
1. In your web browser, you may be prompted to sign in to Coder with your credentials:
-
+ 
1. Copy the session token to the clipboard:
-
+ 
1. Paste the token in the **Session Token** field of the **Sign In** screen, then select **Sign In**:

-1. macOS: Allow the VPN configuration for Coder Desktop if you are prompted.
+1. macOS: Allow the VPN configuration for Coder Desktop if you are prompted:
-
+ 
1. Select the Coder icon in the menu bar (macOS) or system tray (Windows), and click the **Coder Connect** toggle to enable the connection.
@@ -129,28 +129,80 @@ While active, Coder Connect will list the workspaces you own and will configure
To copy the `.coder` hostname of a workspace agent, you can click the copy icon beside it.
-On macOS you can use `ping6` in your terminal to verify the connection to your workspace:
+You can also connect to the SSH server in your workspace using any SSH client, such as OpenSSH or PuTTY:
```shell
- ping6 -c 5 your-workspace.coder
+ ssh your-workspace.coder
```
-On Windows, you can use `ping` in a Command Prompt or PowerShell terminal to verify the connection to your workspace:
+Any services listening on ports in your workspace will be available on the same hostname. For example, you can access a web server on port `8080` by visiting `http://your-workspace.coder:8080` in your browser.
+
+> [!NOTE]
+> Currently, the Coder IDE extensions for VSCode and JetBrains create their own tunnel and do not utilize the Coder Connect tunnel to connect to workspaces.
+
+### Ping your workspace
+
+
+
+### macOS
+
+Use `ping6` in your terminal to verify the connection to your workspace:
```shell
- ping -n 5 your-workspace.coder
+ ping6 -c 5 your-workspace.coder
```
-Any services listening on ports in your workspace will be available on the same hostname. For example, you can access a web server on port `8080` by visiting `http://your-workspace.coder:8080` in your browser.
+### Windows
-You can also connect to the SSH server in your workspace using any SSH client, such as OpenSSH or PuTTY:
+Use `ping` in a Command Prompt or PowerShell terminal to verify the connection to your workspace:
```shell
- ssh your-workspace.coder
+ ping -n 5 your-workspace.coder
```
+
+
+## Sync a local directory with your workspace
+
+Coder Desktop file sync provides bidirectional synchronization between a local directory and your workspace.
+You can work offline, add screenshots to documentation, or use local development tools while keeping your files in sync with your workspace.
+
+1. Create a new local directory.
+
+ If you select an existing clone of your repository, Desktop will recognize it as conflicting files.
+
+1. In the Coder Desktop app, select **File sync**.
+
+ 
+
+1. Select the **+** in the corner to select the local path, workspace, and remote path, then select **Add**:
+
+ 
+
+1. File sync clones your workspace directory to your local directory, then watches for changes:
+
+ 
+
+ For more information about the current status, hover your mouse over the status.
+
+File sync excludes version control system directories like `.git/` from synchronization, so keep your Git-cloned repository wherever you run Git commands.
+This means that if you use an IDE with a built-in terminal to edit files on your remote workspace, that should be the Git clone and your local directory should be for file syncs.
+
> [!NOTE]
-> Currently, the Coder IDE extensions for VSCode and JetBrains create their own tunnel and do not utilize the Coder Connect tunnel to connect to workspaces.
+> Coder Desktop uses `alpha` and `beta` to distinguish between the:
+>
+> - Local directory: `alpha`
+> - Remote directory: `beta`
+
+### File sync conflicts
+
+File sync shows a `Conflicts` status when it detects conflicting files.
+
+You can hover your mouse over the status for the list of conflicts:
+
+
+
+If you encounter a synchronization conflict, delete the conflicting file that contains changes you don't want to keep.
## Accessing web apps in a secure browser context