A cross-platform desktop application for managing Dynamicweb 10 solutions — file transfers, environment management, and remote file browsing, all without needing a terminal.
Get the latest version from the Releases page.
| Platform | Download |
|---|---|
| Windows (x64 — most PCs) | dw-desktop-*-x64-setup.exe |
| Windows (ARM64 — Snapdragon / Surface Pro X) | dw-desktop-*-arm64-setup.exe |
| macOS (Universal — Intel + Apple Silicon) | dw-desktop-*.dmg |
| Linux | .AppImage or .deb |
macOS note: The app is not yet notarized with Apple. On first launch, right-click the app and choose Open to bypass the Gatekeeper warning.
- Move files between your local machine and DW10 environments
- Browse and manage remote files visually
- Work across multiple environments (dev, staging, production)
- Handle large transfers with progress tracking and logs
-
Dual-pane file browser
Local files on one side, remote environment on the other -
Drag & drop transfers
Upload and download files with real-time progress -
Batch operations
Move entire folders or multiple files in one go -
Remote file management
Rename, delete, and copy files directly in the environment -
Multiple environments
Switch instantly between your DW10 setups -
Flexible authentication
API key, OAuth, or username/password -
Transfer history
Full log of everything that moved — useful for debugging and traceability -
Cross-platform
Runs on Windows, macOS, and Linux -
Theme support
Light, dark, or follow your OS
DW Desktop is ideal when you need to:
- Deploy files to a staging or production environment
- Pull files down for debugging or local development
- Quickly inspect or fix something directly on a remote instance
- Work across multiple environments without juggling credentials or tools
If you're working in a terminal, automating deployments, or running file operations from a CI/CD pipeline, the DynamicWeb CLI covers the same file workflows — plus queries, commands, and add-in installs — entirely from the command line.
# Upload files in a pipeline
dw files ./dist templates -i -r --output json \
--host your-solution.example.com \
--auth oauth \
--clientIdEnv DW_CLIENT_ID \
--clientSecretEnv DW_CLIENT_SECRETThe CLI supports OAuth client credentials for headless and CI/CD use, and returns structured JSON output that scripts can consume directly.
Download the app from the Releases page and install it.
Click + Add environment in the sidebar, then fill in:
- Name — a label for the environment (e.g. "My solution staging")
- Host — the URL of your DW10 solution (e.g.
https://mysite.example.com) - Local start folder (optional) — a default local folder to open for this environment
Click Next to reach the Authentication step. Three methods are available:
Uses the OAuth 2.0 Client Credentials flow — no user password stored, tokens are short-lived.
When to use: Preferred for all interactive use. More secure than API keys and easier to revoke.
How to set up in DW10:
- Go to Settings → System → Developer → OAuth Clients
- Click Add client
- Set Grant type to Client credentials
- Copy the generated Client ID and Client secret into the app
Full guide: OAuth Clients — Dynamicweb docs
A static token tied to a specific DW10 user account.
When to use: When OAuth is not available on your solution version, or for quick testing. Less flexible than OAuth — the key stays valid until manually deleted.
How to set up in DW10:
- Go to Settings → System → Developer → API Keys
- Click Add API key
- Assign it to a user with sufficient file permissions
- Copy the key into the app
Full guide: API Keys — Dynamicweb docs
Authenticates directly with a DW10 backend user account.
When to use: As a fallback when neither OAuth nor API keys are available. Not recommended for shared or long-running setups.
Contributions are welcome. The app is built with Electron + Vite + React + TypeScript.
- Node.js 18 or later
- npm (comes with Node.js)
git clone https://github.com/dynamicweb/dw-desktop.git
cd dw-desktop
npm installnpm run devThis starts the Electron app with hot-reload for the renderer process.
npm run typecheck# Windows
npm run build:win
# macOS
npm run build:mac
# Linux
npm run build:linuxIf the app fails to launch on Linux with a shared-library error, install the missing system packages:
Ubuntu 24.04+
sudo apt install -y libnspr4 libnss3 libasound2t64 libsecret-1-0Older Ubuntu / Debian
sudo apt install -y libnspr4 libnss3 libasound2 libsecret-1-0| Layer | Technology |
|---|---|
| Shell | Electron |
| Bundler | electron-vite |
| UI | React 19 + TypeScript |
| Styling | Tailwind CSS v4 |
| State | Zustand |
| Credential storage | keytar |
VSCode with the ESLint and Prettier extensions is recommended.

