Favicon of Spacedrive

Spacedrive

Spacedrive is an open-source Rust/TypeScript file explorer and virtual distributed filesystem for indexing, searching, and managing files across drives, NAS, an

Open Source Alternative to:
Spacedrive website screenshot
Spacedrive GitHub repository preview

Spacedrive is a cross-platform file explorer built on a virtual distributed filesystem written in Rust, with a TypeScript/Specta-generated client layer for desktop, web, and mobile. It's aimed at developers and power users who want a single, searchable view of files spread across local disks, NAS datasets, other Spacedrive nodes, and cloud buckets, without handing control of that data to a hosted service.

The project treats every storage location, a folder, a drive, a NAS dataset, a cloud bucket, or another Spacedrive node, as a "source" with the same record shape and operations. Each source gets a portable SQLite-backed store with an FTS5 index, so catalogs remain searchable even when the drive is disconnected or the source has moved to another machine. A Rust daemon owns indexing, identity, policy, and job execution; clients (desktop, web, mobile, CLI, SDKs, MCP server) all talk to the same typed operation registry over JSON-RPC.

Key features

  • Live indexing: watchers keep file metadata current so browsing a folder never triggers a rescan.
  • Cross-source search: one query runs across local, remote, cloud, and adapter sources at once.
  • Stable content identity: BLAKE3 hashing links copies of the same bytes across devices and sources, surviving moves and renames.
  • Duplicate detection: sampled hashes find candidates fast, full-byte comparison confirms matches before any destructive cleanup.
  • Operation previews: copy, move, and merge operations project their result against the index before touching a byte, so you can inspect the outcome first.
  • Durable jobs: long-running operations (copies, indexing, previews) become trackable jobs with progress, cancellation, and restart recovery.
  • Remote access and mounting: pair nodes over Iroh/QUIC to browse and operate authorized sources remotely, or mount a source into macOS, Windows, or Linux with on-demand byte streaming.
  • Extensibility: source adapters, file recognition, metadata fields, preview renderers, and jobs can be added as extensions without bloating the default install.
  • One API surface: desktop, web, mobile, CLI, generated SDKs, and an MCP server all call the same registered operations, so automation and agents get the same validate/preview/execute contract as a human clicking a button.

Ideal use cases

Spacedrive fits people managing files across several physical locations, multiple drives, a NAS, a few cloud accounts, and devices, who want one search and one set of organizational metadata instead of juggling separate tools per storage provider. It's also a reasonable base for building file-management automation or agent workflows that need a safe, previewable interface to real filesystem operations rather than raw shell commands.

It's a good fit if you want to keep ownership of your data (no hosted account, no vendor control plane) while still getting search, duplicate detection, and change history that cloud-native tools usually provide. It also suits developers interested in building source adapters or extensions for niche storage backends.

It is not a good fit if you need a polished, stable consumer product today: the project describes itself as heading toward a beta, and the nightly builds are unsigned, move with every commit to main, and can break schemas without migration paths. It's also not the right choice if you just want a simple local file manager with no cross-device or cross-cloud ambitions, since the architecture (daemon, typed operation registry, portable stores) is considerably more than that.

Installation

Two paths are documented: running a nightly prebuilt binary, or building from source.

Nightly binaries (macOS ARM64 and Linux x86-64) are published on the nightly release:

shasum -a 256 -c sd-macos-aarch64.sha256 sd-daemon-macos-aarch64.sha256   # sha256sum -c on Linux
chmod +x sd-macos-aarch64 sd-daemon-macos-aarch64
mv sd-macos-aarch64 ~/.local/bin/sd
mv sd-daemon-macos-aarch64 ~/.local/bin/sd-daemon
sd daemon install

On macOS, remove the quarantine flag before running: xattr -d com.apple.quarantine sd sd-daemon.

To keep sd on the latest nightly automatically:

sd config set update.channel nightly
sd update --yes
sd update install-timer

Building from source requires Rust 1.95+ (pinned to 1.97.1), Bun 1.3.4, Node 20, and just:

git clone https://github.com/spacedriveapp/spacedrive
cd spacedrive
./scripts/setup.sh              # .\scripts\setup.ps1 on Windows
bun install
cargo run -p xtask -- setup

Then run the daemon and a client:

just dev-daemon     # Rust daemon
just dev-desktop    # Desktop client
just dev-server     # Headless server and web interface
just dev-mobile     # Mobile client

The sd-ffmpeg crate links native FFmpeg libraries for video thumbnails; scripts/setup.sh installs the required dev packages. Run just test and just check before submitting changes.

Frequently asked questions

Share:

Stars
39.2K
Forks
1.4K
Last commit
6 days ago
Repository age
5 years
License
Apache-2.0
Self-hosted
Yes
Activity score
83/100
View Repository
Ad
Favicon

 

  
 

Similar to Spacedrive

Favicon

 

  
 
Favicon

 

  
 
Favicon