Code synchronization for remote development

Edit remote code with your local editor.
No more web IDEs, no more fragile SSHFS mounts, no more switching tools.

Learn more →
Transport-agnostic

Synchronization is supported between any pair of local, SSH-accessible, and Docker® container endpoints. You can even synchronize between two remote endpoints without ever having a local copy of the files.

Robustly cross-platform

Mutagen supports a broad range of platforms, handling their idiosyncrasies transparently and offering users full control over incompatibility handling.

Open-source and local

Mutagen is a open-source tool, not a service. Your files are only stored at the locations where they're synchronized and you stay in complete control of that synchronization.


Development-focused design

Unlike other file synchronization tools, Mutagen's out-of-the-box behavior is focused specifically on development scenarios. It comes with safe and portable defaults, with configurable behaviors for:

  • Permission handling
  • Conflict resolution
  • Symbolic link handling
  • Ignoring content
  • Filesystem watching
  • And more...

Configuration can be done on a global, per-session, or even per-endpoint basis.

Read more →
$ cat ~/.mutagen.toml
[sync]
mode = "two-way-resolved"
maxEntryCount = 50000
maxStagingFileSize = "10 GB"

[symlink]
mode = "posix-raw"

[watch]
mode = "portable"
pollingInterval = 5

[ignore]
default = [
    "ignore/this/**",
    "!ignore/this/that",
]

[permissions]
defaultFileMode = 644
defaultDirectoryMode = 0755
defaultOwner = "george"
defaultGroup = "presidents"
$  

Flexible topology

Mutagen supports a spectrum of synchronization modes with behaviors tailored to different development scenarios. These include both unidirectional and bidirectional modes, each with configurable conflict resolution. By combining different modes and configuration parameters, Mutagen can be used to create arbitrarily complex synchronization topologies.

two-way-safe two-way-resolved
one-way-safe one-way-replica
Read more →

Exacting performance

Mutagen uses a custom rsync implementation to facilitate differential transfers of files and filesystem snapshots. Coupled with low-latency filesystem watching, metadata caching, efficient reconciliation algorithms, and pipelined network operations, Mutagen has excellent performance even in low-bandwidth, high-latency setups.

Read more →

Offline persistence

Flakey connections and offline work aren't a problem.
Mutagen's algorithms are designed to be interrupted at any point in time, for any length of time, with synchronization continuing exactly where it left off once Mutagen is able to reconnect. And because Mutagen isn't a virtual filesystem, files don't disappear when you're offline.

Read more →

One-sided installation

Mutagen doesn't require any manual installation on remote synchronization endpoints. Instead, it ships with a broad range of small, cross-compiled "agent" binaries that it automatically copies to remote endpoints as necessary. Most major platforms and architectures are supported.

Read more →

Get started with Mutagen

Read documentation

Find more information about Mutagen's design and usage in the documentation. You can find quick start guides, usage examples, and information about advanced features.

Install Mutagen

Download the latest Mutagen release for your platform, either from a supported package manager or as a standalone binary.