Skip to content

Repository files navigation

Ask DeepWiki

WebDAV Client

A cross-platform WebDAV client for the web and desktop.

Use it in a browser or install the native desktop app on macOS or Windows. The same Vue 3 interface runs across platforms, while the desktop app adds direct WebDAV connections, OS keychain storage, and Finder / Explorer drag & drop.

First release: Web and desktop versions are ready to use. More features are planned.

Features

  • Browse and manage files on WebDAV servers
  • Web app and native desktop apps from the same codebase
  • macOS and Windows support
  • Direct WebDAV connections from the desktop app
  • Credentials stored in the OS keychain on desktop
  • Finder / Explorer drag & drop
  • CLI proxy for environments where browser access to WebDAV is restricted
  • Shared Vue 3 UI across platforms
  • TypeScript monorepo with platform-specific adapters
  • Optional embed into a host app (static assets + runtime config)

Screenshots

WebDAV Client

0 · Connect 1 · Browse
2 · Context menu & tags 3 · Preview
4 · Markdown editor 5 · Grid with previews
6 · Transfers 7 · Appearance
8 · Dual pane 9 · Dual pane previews
10 · Light theme

Download

Desktop builds are available on the GitHub Releases page.

Platform Download
macOS .dmg
Windows .exe installer
Web Run locally or deploy the web app

The desktop application does not require Node.js, npm, Rust, or a separate browser.

Windows

The recommended package is the NSIS installer. It installs the application and handles WebView2 if it is not already available.

macOS

The application is distributed as a .dmg.

Public macOS builds need to be signed and notarized by Apple. Unsigned builds may show a Gatekeeper warning.

Quick start

Web

Requirements: Node.js and npm.

npm install

npm run build -w @webdav-client/core
npm run build -w @webdav-client/platform-api
npm run build -w @webdav-client/proxy

npm run dev

Open:

http://127.0.0.1:5173

The development server includes the /api/dav proxy.

Embed into a host app (optional)

Build a host-oriented SPA (for example WebDAV FS APK):

npm run build:embed-assets
# → apps/web/dist-embed/

npm run copy:embed-assets -- /path/to/…/assets/client

Defaults come from apps/web/embed.webdavfs.json (uiBase: /~assets~/). The host can override them at runtime via /config-js.

For a generic static deploy, edit apps/web/embed.config.json and run:

npm run build:embed -w @webdav-client/web
# → apps/web/dist/

CLI proxy

Build the web app:

npm run build -w @webdav-client/web

Start the proxy:

npx tsx apps/cli/src/cli.ts serve --url http://your-webdav-server:8080/

Desktop development

The desktop app is built with Tauri 2.

Install Rust and the required Tauri platform dependencies.

Run the desktop app with hot reload:

npm install
npm run tauri:dev -w @webdav-client/desktop

Build a production desktop package:

npm run build:desktop

Build artifacts are generated in:

apps/desktop/src-tauri/target/release/bundle/

For desktop-specific notes, see apps/desktop/README.md.

Project structure

.
├── apps/
│   ├── web/           # Vite web app
│   ├── cli/           # CLI proxy
│   └── desktop/       # Tauri desktop app
│
└── packages/
    ├── core/          # WebDAV protocol and core logic
    ├── platform-api/  # Platform abstraction
    ├── platform-web/  # Browser implementation
    ├── platform-tauri/# Tauri implementation
    ├── proxy/         # Node.js WebDAV proxy
    └── ui/            # Shared Vue 3 UI

Development

Build all packages:

npm run build

Run the desktop app:

npm run tauri:dev -w @webdav-client/desktop

Roadmap

The next major feature planned is file synchronization for the desktop app.

License

Apache-2.0

About

A cross-platform WebDAV client file manager (web + Tauri desktop)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages