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 createflags. - 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 ownmutagen projectorchestration. - Automatic update checks: when
mutagen.binary.versionis"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.