Manage Mutagen file-synchronization sessions from VS Code.
Self-contained by design
Better Mutagen downloads and manages its own copy of the mutagen binary, stored inside this extension's own install folder (<extension dir>/bin/) — it is never installed system-wide. Uninstalling the extension removes the binary with it: VS Code deletes the whole extension folder on uninstall, and a vscode:uninstall hook stops the Mutagen daemon first so nothing is left locked or orphaned on Windows.
Your sync session configuration/history (Mutagen's own daemon state under your user profile) is left untouched by uninstall — only the extension-managed binary and daemon process are cleaned up.
Features
Sync Sessions view in the Activity Bar: each session expands to show its alpha/beta endpoints, mode, successful cycles, creation time, and any conflicts/errors, all color-coded (green/yellow/red) by health.
Act on sessions (pause, resume, terminate, reset, flush, view details) via the context menu.
Aggregate status bar item — colored on warnings/errors, click for a quick-pick menu of sessions and actions.
Create Sync Session wizard: pick alpha/beta endpoints (local folder picker or manual path/URL for SSH/Docker targets), sync mode, ignores, and any extra mutagen sync create flags.
Hide/unhide sessions to declutter the view without terminating them (view title has a toggle to reveal hidden sessions again).
Export/Import Sessions: export selected sessions to a shareable mutagen project YAML file, and import one to recreate/start those sessions — a simple way to hand a sync setup to someone else.
Optional per-workspace project file (default .mutagen.yml, configurable) — if present, its sessions can auto-start when the workspace opens, using Mutagen's own mutagen project orchestration.
Automatic update checks: when mutagen.binary.version is "latest", the extension checks GitHub on activation and prompts you when a newer Mutagen release is available (with an option to skip that version). Pin a specific version and update checks are disabled — you get exactly that version. Changing the version setting reinstalls the requested release and removes the previous one, so only the newest (or explicitly chosen) version is ever installed.
All executed commands and their output are logged to the "Mutagen" output channel (Mutagen: Show Logs).
Settings
Setting
Default
Description
mutagen.binary.version
"latest"
Mutagen release to install ("latest" or a tag like "v0.18.1").
mutagen.binary.customPath
""
Use a manually installed mutagen executable instead of the extension-managed one.
mutagen.autoStartDaemon
true
Start the Mutagen daemon automatically on activation.
mutagen.projectConfigFile
".mutagen.yml"
Project file name (relative to the workspace root).
mutagen.autoStartProjectOnOpen
true
Auto-start the project file's sessions when the workspace opens.
mutagen.refreshIntervalMs
2000
Poll interval (ms) for the Sync Sessions view while it's visible.
Development
npm install
npm run compile # or: npm run watch
npm run lint # or: npm run lint:fix
Press F5 in VS Code to launch an Extension Development Host with the extension loaded. Run npm run package to produce a .vsix for local installation.
Code style (enforced by npm run lint): tabs for indentation, braces on their own line (Allman style), and a one-line JSDoc description above every function/class.